DiffBot is an autonomous 2wd differential drive robot using ROS Noetic on a Raspberry Pi 4 B. With its SLAMTEC Lidar and the ROS Control hardware interface it's capable of navigating in an environment using the ROS Navigation stack and making use of SLAM algorithms to create maps of unknown environments.
These changes implement the Adafruit BNO055 IMU directly connected to the sbc (Rpi in my case) using I2C. The IMU data and motor encoder based odom is fused in robot_localization to create a much more robust odom.
Some of the changes in this PR are tangential and were just me trying various settings to clear problems with transform timings and "extrapolation into the future" errors. Those can be ignore or tweaked as appropriate. The key changes are in diffbot_control/config, ros-imu-bno055/launch, robot_localization/params, diffbot_description/urdf, and the diffbot_bringup/launch files that now also start the IMU and robot_localization, specifically: bringup_with_laser_imu.launch and bringup_all.launch.
Hope you find this useful. Thanks again for diffbot.
These changes implement the Adafruit BNO055 IMU directly connected to the sbc (Rpi in my case) using I2C. The IMU data and motor encoder based odom is fused in robot_localization to create a much more robust odom.
Some of the changes in this PR are tangential and were just me trying various settings to clear problems with transform timings and "extrapolation into the future" errors. Those can be ignore or tweaked as appropriate. The key changes are in diffbot_control/config, ros-imu-bno055/launch, robot_localization/params, diffbot_description/urdf, and the diffbot_bringup/launch files that now also start the IMU and robot_localization, specifically: bringup_with_laser_imu.launch and bringup_all.launch.
Hope you find this useful. Thanks again for diffbot.