Ubuntu 16.04 ROS Kinect 安装 mavros实现无人机外部控制

Ubuntu 16.04 ROS Kinect 安装mavros

  • 二进制文件安装mavros
  • 源码编译安装
    • 安装依赖
    • 创建工作空间
    • 安装mavlink
    • 下载mavros
    • 补全依赖
    • 安装GeographicLib
    • 编译
    • 添加环境变量
  • 使用

做无人机有一段时间了,下面讲一下无人机运用ros进行外部控制的mavros功能包的安装过程。
用的飞控是Pixhawk 4 ,飞控的固件是PX4。对于APM的固件也可以用,理论上来说对于使用mavlink协议的无人机都可以使用mavros功能包,只是对于PX4和APM固件的支持比较好。这个功能包的使用范围广,对于ARM和x86架构的处理器都可以运行。
mavros的作用就是一个连接ros和飞控的一个桥梁。
安装方法有两种任选一种就可以。

二进制文件安装mavros

通过二进制安装相对来说比较简单,但是扩展性比较差,如果后面要更改mavros的一些东西就不推荐用这种方式安装。
apt-get直接安装

sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras

还需要安装一个GeographicLib库才可以运行

wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod +x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh

源码编译安装

以下是我个人比较推荐的一种安装方式,对以后的无人机开发很方便。

安装依赖

sudo apt-get install python-catkin-tools python-rosinstall-generator -y

创建工作空间

接下来为mavros创建一个工作空间

mkdir -p ~/mavros_ws/src
cd ~/mavros_ws
catkin init
wstool init src

安装mavlink

kinetic版本以外的ros也可以安装,改一下版本就可以了

rosinstall_generator --rosdistro kinetic mavlink | tee /tmp/mavros.rosinstall

下载mavros

可以选择稳定版和最新版,下面的命令选择一个执行即可
稳定版

rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall

最新版

rosinstall_generator --upstream-development mavros | tee -a /tmp/mavros.rosinstall

补全依赖

-j4改为你电脑的CPU核数

wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4
rosdep install --from-paths src --ignore-src -y

安装GeographicLib

sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh

编译

这个过程有可能比较长。

catkin build

添加环境变量

将环境变量添加到.bashrc,方便以后使用。

echo "source ~/mavros_ws/devel/setup.bash" >>  ~/.bashrc

使用

安装完成过后就可以使用了。
mavros可以通过串口、tcp、udp多种方式连接到飞控。
下面介绍一下通过串口的方式连接到mavros,对于通过tcp、udp方式在后面的为pixhawk添加WiFi的教程里面会有介绍。
通过一个USB转串口模块连接飞控的串口二,飞控的串口二为高速串口,在进行外部控制mavros运行的时候和飞控会有很多的数据传输,所以需要高速串口才可以。
USB转串口在淘宝上很多,买一个波特率支持大一点的,要至少支持921600.我用的是下面这种。
Ubuntu 16.04 ROS Kinect 安装 mavros实现无人机外部控制_第1张图片
在飞控将飞控上端口的TX和USB转串口上的RX接在一起,飞控上端口的RX和USB转串口上的TX接在一起,GND也接在一起共地减少噪声。对于飞控的引脚的定义查阅飞控的手册即可。
接好线过后把飞控的SYS_COMPANION 参数设置为Companion Link (921600 baud, 8N1)
参数设置好了过后把线连接到电脑上,我们会在、/dev/ttyUSB下面看到这个设备。
运行mavros

roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:921600

对于这个USB端口好可能会变,这个可以参考我之前的博客用udev的方式解决这个问题。
接下来就可以根据mavros的ros话题说明编写程序了

你可能感兴趣的:(无人机)