上一篇讲到使用I2C连接Jetson Nano和MPU6050并使用python读取,本次基于roscpp连接读取IMU数据
RTIMULib
RTIMULib是本次使用的IMU库,支持多种常见的IMU模块,可以使用SPI或I2C连接,有C++和Python接口,并包含融合算法(Kalman和RTQF),有校准功能,有ROS包。
这里是RTIMULib支持的IMU列表:
MPU-9150
MPU-6050 (Treated as MPU-9150 without magnetometers)
MPU-9250(I2C and SPI).
STM LSM9DS0
STM LSM9DS1
L3GD20H + LSM303D (used on the Pololu AltIMU-10 v4)
L3GD20 + LSM303DLHC(used on the Adafruit 9-dof)
L3GD20H + LSM303DLHC(used on the new Adafruit 10-dof IMU)
Bosch BMX055
Bosch BNO055 Note: will not work reliably with RaspberryPi/Pi2 due to clock-stretching issues.
The LSM9DS1( supplied by XECDesign)
支持的压力/温度传感器列表:
BMP180
LPS25H
MS5611
MS5637
支持的湿度传感器列表:
HTS221
HTU21D
- 首先安装RTIMULib库
RTIMULib2的github连接
git clone https://github.com/jetsonhacks/RTIMULib.git
cd RTIMULib/RTIMULib
mkdir build
cd build
cmake ..
make -j4
sudo make install
- 安装ROS包
rtimulib_ros
cd robo_ws
git clone https://github.com/cccedric/rtimulib_ros.git
可以在config/RTIMULib.ini中设置相关参数,比如IMU型号,I2C总线,采样频率等
遇到报错
"Failed to open I2C port - Failed to read fifo count Failed to open I2C bus 1"
是因为ros包没有权限访问I2C总线
sudo chmod a+rw /dev/i2c-*
- Launch
catkin_make --pkg rtimulib_ros
roslaunch rtimulib_ros rtimulib_ros.launch
订阅topic查看:
rostopic echo /rtimulib_ros/imu
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)