BNO085
ROSMower has been equipped with an Adafruit BNO085 IMU, which comes with some build-in sensor fusion algorithm. By this, we don’t need to fuse data by our own.
I mounted the sensor at the rear end of PCB box. It connects to NVidia Jetson or RaspberryPI by I2C interface. To do so connect the sensor like this
Sensor Pin | GPIO 40 pin header Jetson/PI4 |
---|---|
VCC 3.3V | Pin1, 3.3V |
SDA | Pin3, SDA1 |
SCL | Pin5, SCL1 |
GND | Pin9, GND |
I2C hints
you can use i2cdetect -y -r 1
command to find device address. However default address will be 4A.
Installation instructions
If you use ROS noetic, you can simply install necessary driver provided by adafruit with this command sudo pip3 install adafruit-circuitpython-bno08x
Additional steps for melodic
If you use ROS Melodic, some additional steps needs to be taken. This is caused by different Python versions between Meldoic and Noetic. First install
sudo apt-get install python3-catkin-pkg-modules
Adafruit provides detailled instructions on how to [install circuit python found here] (https://learn.adafruit.com/circuitpython-libraries-on-linux-and-the-nvidia-jetson-nano/initial-setup)
After that, you need to switch back your python environment to Python 2 using this command sudo update-alternatives --config python