无人机PX4飞控ROS应用层开发:MAVROS 功能包介绍与飞控消息汇总(一)
概述
这个软件包提供了针对各种自动驾驶仪(如PX4,Ardupilot)使用 MAVLink 通信协议的通信驱动程序。 此外,它还提供了用于地面控制站(例如 QGroundControl)的 UDP MAVLink 桥接功能。
通常与PX4的offboard模式联合使用 Offboard控制背后的想法是能够使用在自动驾驶仪外运行的软件来控制 PX4 飞控, 这是通过 Mavlink 协议完成的。
其中硬件部分连接模式大部分如下: 在飞行器上部署一台小型将计算机,用 UART 转 USB 适配器连接飞控
ROS (机器人操作系统) 是一个通用的机器人库,可以用于为 PX4 自动驾驶仪创建强大的无人机应用程序。
MAVROS安装
MAVROS可以通过源码或者二进制安装。
二进制安装
通过下面指令进行二进制安装
sudo apt-get install ros-${ROS_DISTRO}-mavros ros-${ROS_DISTRO}-mavros-extras ros-${ROS_DISTRO}-mavros-msgs
其中ROS_DISTRO
需要根据ROS的本部换成 kinetic、noetic
然后需要安装 GeographicLib ,通过如下指令 先下载 文件 install_geographiclib_datasets.sh
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
执行这个文件
./install_geographiclib_datasets.sh
从飞控端通过MAVROS可以拿到的信息
通过在gazebo中启动 px4 ,并启动mavros ,来测试 通过MAVROS可以从飞控端获取的信息
在gazebo中启动px4
roslaunch px4 posix_sitl.launch
启动mavros指令
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"
高度信息(mavros/altitude)
话题名称: mavros/altitude
频率 :10HZ
消息类型:mavros_msgs/Altitude
消息体定义:
std_msgs/Header header
float32 monotonic
float32 amsl
float32 local
float32 relative
float32 terrain
float32 bottom_clearance
解释
- amsl (above mean sea level)平均海平面以上
- local 本地坐标系下的
- relative 相对地面的(应该加上对地测距才会有)
实例数据
gazebo中无人机在地面 > header: seq: 752 stamp: secs: 78 nsecs: 528000000 frame_id: "map" monotonic: 488.1638488769531 amsl: 488.08782958984375 local: 0.1731969118118286 relative: -0.0031573623418807983 terrain: nan bottom_clearance: nan
通过QGC 让其起飞 QGC显示高度为9.3m
点击无人机PX4飞控ROS应用层开发:MAVROS 功能包介绍与飞控消息汇总(一)——古月居可查看全文