Xsens 在ROS环境下读取数据

在这里插入图片描述

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

欢迎大家点赞在评论区交流讨论([email protected]) O(∩_∩)O*

或者加群交流(1149897304)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/crp997576280/article/details/109614558