mavros 功能包提供了 一台能够运行ros的机载电脑、支持MAVLINK协议的飞控和支持MAVLINK的地面站这三者之间的通讯功能。
MAVROS 是 ROS 与 MAVLink 协议之间的 有"官方" 支持的ROS功能包。
它当前正在扩展以启用 fast-RTPS messaging , 包括将 PX4 uORB 消息 转换为常见 ROS 话题的代码。
用自己的话说,MAVROS就是,一座连接 安装有ros的电脑与安装飞控的飞机的之间的桥,而以MAVLINiK就是其中通过的方式
这里有一些官网等教程的链接:
官网:px4-mavros
github:mavlink / mavros
官网:mavlink
目录
MAVROS的安装(源码方式安装)
1.安装依赖项工具
2.创建工作空间并初始化
3.安装Mavlink
可能出现问题:
4.安装MAVROS
5.创建工作区和部门
6.安装GeographicLib数据集:
7.构建源
8.确保从工作空间使用setup.bash或setup.zsh
MAVROS功能包可以用源代码或二进制方式安装。
(这是ROS功能包常见的两种安装方式,源代码安装可以修改源码,二进制方式安装则不行,只能直接调用源码)
建议有ROS基础的开发者使用源代码方式安装。
所以,这里也不提供二进制的安装方式了
你需要利用ROS的Python工具,如wstool (for retrieving sources), rosinstall, and catkin_tools (building) for this installation.
按照以下命令来安装:
sudo apt-get install python-catkin-tools python-rosinstall-generator -y
虽然可以使用 catkin_make 来编译MAVROS包(功能包), 但首选方法还是使用 catkin_tools , 因为它是一种更通用、更 "友好" 的编译工具。
mkdir -p ~/mavros_catkin_ws/src
cd ~/mavros_catkin_ws
catkin init
wstool init src
如果这是你第一次使用wstool,你需要初始化你的代码文件夹。
wstool init ~/catkin_ws/src
# We use the Kinetic reference for all ROS distros as it's not distro-specific and up to date
#这句话的意思应该是:在所有的ROS发行版中,我们选择Kinetic这个版本作为参考,到现在为止,这个版本也不是特殊的发行版,你可以换成别的
rosinstall_generator --rosdistro kinetic mavlink | tee /tmp/mavros.rosinstall
问题出在:raw.githubusercontent.com打不了(一开始我还以为啥代理出问题了,最后找了一圈,改了好多发现原来是这个问题)
网上有好多人说:raw.githubusercontent.com地址DNS污染
这个连接大家可以浏览一下:解决raw.githubusercontent.com地址DNS污染:https://www.jianshu.com/p/bbd79e0444ea
问题解决:
1.查询raw.githubusercontent.com网站的ip地址(查询地址:https://githubusercontent.com.ipaddress.com/raw.githubusercontent.com)
2.打开/etc/hosts文件然后增加raw.githubusercontent.com网站的ip地址
sudo gedit /etc/hosts
3.然后把查询到的ip地址写进去,写法参考我这个:
199.232.68.133 raw.githubusercontent.com
问题解决后,上面的这个指令输入以后输出:
这个意思不是已经完成的意思,一开始我还以为是完成了,傻乎乎的。
这个告诉你现在的版本是多少,然后你要自己去 git clone
如果你不知道这个什么意思的话,我们先放着,假设自己还不知道这个事情......
我们直接挑选稳定版本来下载:
注意,最好在src文件夹里面下载包
rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall
成功输出:
本来这里是按照github那个网址来的,但是速度太慢了,为了提高速度,我把库导入到了gitee的自己仓库里面
大家可以按照这个网址来克隆:https://gitee.com/zhuleilei33/mavros.git
注意要退回到工作空间的目录
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4
rosdep install --from-paths src --ignore-src -y
要是上面的那个MAVLink和我一样傻傻的未安装的话,在这里就会安装了
GeographicLib是一小组C ++类,用于在地理,UTM,UPS,MGRS,地心和本地笛卡尔坐标之间执行转换,以进行重力(例如EGM2008),大地水准面高度和地磁场(例如WMM2020)的计算,以及解决测地线问题。
(库可以从使用NETGeographicLib包装库的.NET应用程序中使用。)它是由所提供的核心功能的合适替代 geotrans。
官网:./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
资料和亲自尝试:sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
我这里的输出是已经存在了,可能我以前已经下过一次了。
catkin build
在这个过程中,卡了好几次,我以为要死机了,但是等一下又发现这个应该是假死机,等一下又可以了:
#Needed or rosrun can't find nodes from this workspace.
#这句话的意思就是说你不这么做的话,你就无法运行这个工作空间里面的节点
source devel/setup.bash
与其这样,不如直接一次性搞定:
gedit ~/.bashrc
然后把这句话加入到里面:
source ~/mavros_catkin_ws/devel/setup.bash
OK,这样MAVROS就安装完毕了!!!
哈哈哈哈哈啦啦啦啦啦了,离成功越来越近了...................