ls -l /dev/ | grep ttyUSB来检查设备是否插入以及硬件绑定是否正确。mav,一般mav0设置为飞控硬件接口Telem1,mav1设置为飞控硬件接口Telem2。我们通常将Telem1用作飞机和地面站通信(接Xbee设备)。所以一般用Telem2上接USB转TTL的板子和机载电脑通信,这里forward参数设置1,Mode改为onboard,波特率设置921600或者115200(两个波特率都试试,因为是线直接连接的,波特率可以设置高一点)若mavros采用空中无线传输,波特率请设置为57600。roscd mavros & cd launch查看mavros px4.launch文件端口号/dev/ttyUSB0:921600或者/dev/:921600 ,或者波特率改为115200终端出现 High IMU detected等等字样说明检测到飞控的IMU了。已经可以正常通信了。
roslaunch vision_to_mavros t265_all_node.launch,此时应该可以获取到/mavros/vision_pose/pose中消息。mavros-extras这个包,方法有两种,最简单的是sudo apt-get install ros-noetic-mavros-extras,复杂点的是源码安装的。有了这个包才能将视觉位姿信息传输给飞控(这个问题在kun飞机中很重要)。上述问题根源在于vision_pose_estimation这个包在mavros_extras。因为源码安装的包一定会包含这个 mavros_extras package,所以可以顺利开启这个plugin。无论哪种方法,在开启mavros时候,产生如下输出,说明vision_pose_estimation这个plugin加载成功了。[ INFO] [1682320781.289735374]: Plugin vision_pose_estimate loaded
[ INFO] [1682320781.347487110]: Plugin vision_pose_estimate initialized
[ INFO] [1682320781.349274770]: Plugin vision_speed_estimate loaded
[ INFO] [1682320781.375493995]: Plugin vision_speed_estimate initialize
ekf2_aid_mask中使用vision,hgt_mode使用vision/mavros/local_position/pose是否有消息。