本文主要是介绍Xsens 在ROS环境下读取数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Xsens 在ROS环境下读取数据
- 1 Xsens 参数配置
- 2 Xsens ROS环境下读取数据
- 2.1 安装ROS二进制包
- 2.2 Xsens修改rule文件
- 2.3 启动节点
- 参考资料
1 Xsens 参数配置
软件可以在官网上进行下载[1], 参数配置软件在windows和linux下都可以使用。
可在配置页面对数据上传频率进行配置:
磁力计的校准是在另外一个叫做Magfield Mapper的软件中校准的:
磁力计标定注意事项:
1、旋转时候严重南北方向转动3个轴
2、磁力计标定以后(原理干扰)磁力计输出模长基本一致,xsens MTI-30 大概会有0.02的波动
2 Xsens ROS环境下读取数据
2.1 安装ROS二进制包
sudo apt-get install ros-kinetic-xsens-driver sudo chmod 777 /dev/ttyUSB*
启动xsens_imu节点
roslaunch xsens_driver xsens_driver.launch
在 xsens_driver.launch 文件中可以对三轴加速度/三轴陀螺仪/四元数的协方差矩阵进行设置
2.2 Xsens修改rule文件
如果不希望每次都修改串口的权限可以使用 ls-usb 显示你的串口芯片, 比如我使用的是PL2303的芯片,ID号为067b
接下来,新建一个xens.rules 文件
# set the udev rule , make the device_port be fixed by rplidar
#
KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0777", SYMLINK+="xsens"
把 xens.rules 拷贝到 /etc/udev/rules.d
sudo mv xens.rules /etc/udev/rules.d
修改xsens的launch文件把设备ID改写为 xsens
roscd xsens_driver/launch
sudo gedit xsens_driver.launch
修改xsens_driver.launch参数为:
<arg name="device" default="xsens" doc="device file of the IMU"/>
这样更换USB口以后就不需要手动设置为ttyUSB0了,但是这个方法也有一个缺点,那就是如果其他模块也使用了这个USB转串口的芯片时候也会把它识别为 sens 的标签。
2.3 启动节点
roslaunch xsens_driver xsens_driver.launch
利用rostopic echo 就可以打印看到IMU的数据
实际测试中发现吧IMU的频率设置为200Hz以后ROS节点就读取不到数据了,目前还不知道如何解决。
参考资料
[1] https://content.xsens.com/mt-software-suite-download
欢迎大家点赞在评论区交流讨论(cenruping@vip.qq.com) O(∩_∩)O*
或者加群交流(1149897304)
这篇关于Xsens 在ROS环境下读取数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!