一、接线配置
二、软件配置
2.1 在QGroundControl中配置飞控(让飞控识别传感器)
参数名:SENS_TFMINI_CFG
选择串口:将该参数的值设置为TFmini Plus所连接的物理串口(例如,连接到TELEM2则选择 TELEM2)
注意:无需单独设置波特率,传感器驱动已将其固定
2.2修改MAVROS配置文件(让机载计算机接收数据)
2.2.1找到配置文件:在机载计算机上,找到MAVROS的插件配置文件 px4_pluginlists.yaml。
若为二进制安装(apt),文件通常位于:
/opt/ros/<ROS版本>/share/mavros/launch/px4_pluginlists.yaml若为源码安装,文件通常位于你的工作空间下,例如:
~/mavros_ws/src/mavros/mavros/launch/px4_pluginlists.yaml2.2.2编辑配置文件:
sudo vim /opt/ros/melodic/share/mavros/launch/px4_pluginlists.yaml2.2.3取消插件黑名单:
在文件中找到 plugin_blacklist 部分,将 - distance_sensor - rangefinder这两行注释掉
三、重启MAVROS并验证数据
3.1重启MAVROS节点:为让配置生效,需要重启MAVROS。
roslaunch uav_control_fsm px4.launch3.2查看数据话题:在终端中执行以下命令,检查是否出现了距离传感器的话题:
rostopic list | grep distance_sensor能看到 /mavros/distance_sensor/rangefinder_pub 之类的话题。
3.3打印数据内容:执行以下命令,查看传感器数据:
rostopic echo /mavros/distance_sensor/rangefinder_pub如果一切正常,终端会持续输出包含 range 字段的距离信息。
四、调整数据发布频率
如果默认的10Hz数据频率不能满足你的需求,可以通过MAVLink命令动态调整。
rosrun mavros mavcmd long 511 132 <间隔微秒> 0 0 0 0 0 参数说明: 511:MAVLink命令ID,代表设置消息间隔。 132:DISTANCE_SENSOR 消息的ID。 <间隔微秒>:消息间隔,单位为微秒。例如,10000 微秒 = 10ms = 100Hz。示例:将发布频率设置为50Hz(间隔20000微秒):
rosrun mavros mavcmd long 511 132 20000 0 0 0 0 0五、注意事项
高度数据源:请确保飞控的 EKF2_HGT_MODE 参数没有被设置为 Range sensor,这样TFmini的数据就不会被用于飞控的定高,只作为纯数据源通过MAVROS对外发布。
故障排查:如果执行 rostopic echo 后没有数据,可以先在QGC的 MAVLink控制台(Mavlink Console) 中输入 listener distance_sensor 命令。如果此命令也没有输出,说明问题出在飞控与传感器的连接或配置上,请返回第一步检查;如果有输出,则问题出在MAVROS配置上,请返回第二步检