目录
平台环境
ubuntu18.04
ROS melodic
nvidia agx xavier
imu: xsens G-7
相机:ZED
XAVIER的USB接口说明
总共有3个USB接口,其中2个typeC,一个typeA
注意:我的xavier的typeA接口很松,接上ZED后,线缆扯动到接口后很容易造成接触不良进而导致ZED节点挂掉!
以下展示了xavier PCB板子的正反面图:
各传感器的ROS驱动
1、microstrain 3dm gx系列imu驱动
注意要根据imu型号选对驱动
区别:
- gx5系列的imu驱动放在github上,直接下载源码编译安装(ROS wiki还未将此版本驱动更新进来)
https://github.com/ros-drivers/microstrain_mips
- microstrain_3dm_gx3_45是3dm_gx3_45(融合了GPS)的专用驱动
- microstrain_3dmgx2_imu同时支持3DM-GX2 and 3DM-GX3系列 http://wiki.ros.org/microstrain_3dmgx2_imu
2、xsens MTi系列 imu 驱动
区别
http://wiki.ros.org/xsens_driver
扩展版本,功能多,支持对IMU进行更多的参数配置
Compared to the other MTi drivers (lse_xsens_mti and xsens_mti), this one can handle other configurations than the default and the GPS module of the MTi-G. It is also a clean rewrite of the communication protocol easier to maintain (and possibly extend) than the old vendor based multi-layered architecture.
http://wiki.ros.org/xsens_mti_driver
官方版本,功能较少
https://www.xsens.com/software-downloads
- Xsens MTi node(早已不更新维护了)
http://wiki.ros.org/lse_xsens_mti
3DM-GX5-25 AHRS
https://www.microstrain.com/inertial-sensors/3dm-gx5-25
通过dmsg指令查看imu及zed传感器设备信息
输入dmsg,显示imu基本信息,说明Imu接入的usb端口是可以被识别出来的(与下文的用mtdevice.py自动检测imu接口失败相矛盾?)
下面为zed相机信息:
配置imu驱动文件
主要修改2个地方,看情况可能还需要修改第3个地方
- device设置为设备文件名
- 波特率设置为115200
- 如果主控性能差,IMU启动需要等待较长时间,默认的0.002s太短了,需要修改长一些例如0.2s
xsens imu启动常见问题
已经排除了接口设备名称错误问题,确定xsens接上xavier的3个usb接口的任何一个都会被映射为/dev/ptmx;
TO DO:需要继续排查xsens超时无法启动原因?
1、时间超时问题
针对xavier,已经将launch文件中的timeout超时阈值设置到了2秒钟,还是无法成功启动imu
2、未发现设备问题
为了说明问题,这里特意将launch文件中device设备名修改为其他没有接imu的接口名称
3、自动搜索确定合适的接口
按照xsens_driver官网说明,可以通过mtdevice程序来自动搜索主控上与imu连接的那个端口。
遗憾的是,跑出来的结果是没有发现与imu连接的接口!
矛盾&TO DO:此处没有检测到Imu连接到xavier了,但上文2却未报错“未发现/dev/ptmx设备文件”的错误,
那xsens无法正常启动的原因到底是不是接口问题呢?还需要进一步的排查
配置ZED相机驱动文件
总结
- ZED相机直接或者间接(通过typeC转typeA线缆,甚至通过USB扩展槽)插在任意一个USB接口上,中/dev路径下都显示为vedio0,都可以正常启动相机
- xsens imu直接或间接插在任意一个USB接口上,中/dev路径下都显示为ptmx
- TO DO:xsens imu无法正常启动(提示时间超时)问题需要继续排查