1 概述
Xsens工业级运动跟踪器(MTi)的官方ROS驱动程序可以在MT软件套件的Linux安装包(2019.0及更高的版本)中找到。解压缩下载的安装包,执行mtsdk_linux-x ## _ ####.#.sh
,并找到xsens_ros_mti_driver
文件夹。
注意:
- 执行.sh需要
sudo
超级管理员权限 xsens
文件夹默认安装在/usr/local/xsens
xsens_ros_mti_driver
文件夹在/usr/local/xsens
下
执行.sh时可能遇到以下问题:
‘uudecode’ could not be found. It is usually installed with the ‘sharutils’ package
解决办法:
sudo apt-get install sharutils
有关ROS节点和XDA库的完整文档,请访问:[MTSDK folder]/doc/xsensdeviceapi/doc/html/index.html
。
2 支持的设备
此ROS驱动程序得到了积极支持和维护,以便与最新一代MTi兼容。
- MTi 1-series (including MTi-7)
- MTi 10-series
- MTi 100-series (including MTi-G-710)
3 工作流程
MTi节点仅从MTi设备接收数据并将其发布到ROS,它无法配置设备。要配置MTi,您可以使用MT Manager,Xsens Device API(XDA),低级通信协议或扩展MTi节点。
Xsens MTi驱动程序使用Public Xsens Device API进行扫描,连接,数据包解析和日志文件处理。此驱动程序的实现是在C/C ++中完成的,因此您可以在不同的平台上构建和运行它。您还可以通过扩展XdaInterface类来使用Public XDA配置MTi,有关如何执行此操作的详细信息,请查看MT Software Suite的MT SDK文件夹中的“公共XDA接收数据示例”。
在解压的Linux安装包MT_Software_Suite_linux-x64_2019.0.1
中,解压mtmanager_linux-x64_2019.0.1.tar.gz
,执行
./MT_Software_Suite_linux-x64_2019.0.1/mtmanager/linux-x64/bin/mtmanager
这样就会打开MT Manager,怎么配置就自己去探索吧。
4 要求
- MT SDK from Xsens MT Software Suite 2019.0.1 or later
- ROS Kinetic or Melodic
- C/C++ Compiler: GCC 5.4.0 or MSVC 14.0
- C++11
5 运行Xsens MTi节点
配置您的MTi设备以使用MT Manager或MT SDK示例代码输出所需数据(例如方向输出)。
将MT SDK中的xsens_mti_driver
文件夹复制到catkin工作区的src
文件夹中。确保在文件和目录中将权限设置为o+rw。有关创建catkin工作空间环境的详细信息,请参阅创建catkin工作空间。
1.从catkin工作区构建xspublic:
pushd src/xsens_ros_mti_driver/lib/xspublic && make && popd
2.构建Xsens MTi驱动程序包:
catkin_make
3.source工作空间:
source devel/setup.bash
4.启动Xsens MTi驱动程序,显示示例(应启用方向数据):
roslaunch xsens_mti_driver display.launch
会自动打开Rviz,移动xsens,观察Rviz中的模型运动是否准确。经测试,还是很准确的。
重新打开一个终端,执行以下命令:
rostopic echo /imu/data
可以看到输出了角速度,加速度和方位。
6 配置Xsens MTi节点
要更改Xsens MTi节点的配置,您可以编辑xsens_mti_node.yaml
文件。可以配置以下参数:
- 用于查找已定义的MTi设备的设置
- 日志文件记录选项
- 发布者队列大小
- 消息发布者
7 发布的话题
-
imu/data (sensor_msgs/Imu)
orientation, angular velocity and linear acceleration -
imu/acceleration (geometry_msgs/Vector3Stamped)
acceleration - imu/angular_velocity (geometry_msgs/Vector3Stamped) angular velocity -
imu/mag (geometry_msgs/Vector3Stamped)
magnetic field -
imu/dq (geometry_msgs/QuaternionStamped)
quaternion from device -
imu/dv (geometry_msgs/Vector3Stamped)
linear acceleration from device -
imu/time_ref (sensor_msgs/TimeReference)
timestamp from device -
filter/quaternion (geometry_msgs/QuaternionStamped)
quaternion from filter -
filter/free_acceleration (geometry_msgs/Vector3Stamped)
linear acceleration from filter -
filter/twist (geometry_msgs/TwistStamped)
velocity and angular velocity -
temperature (sensor_msgs/Temperature)
temperature from device -
pressure (sensor_msgs/FluidPressure)
pressure from device -
gnss (sensor_msgs/NavSatFix)
latitude, longitude, altitude and status -
tf (geometry_msgs/TransformStamped)
transformed orientation
8 故障排除
我没有这里提到的遇到问题,就不在赘述了,如果遇到,请移步。