机载处理器(树莓派、Jetson TX2及个人pc等均适用)配置ROS+mavros开发环境 (Pixhawk飞控测试)

需要事先准备的:

树莓派:

(1)一块装了Ubuntu16.04 mate系统的树莓派(我的是3代,别的平台没有测试过),

(2)键盘、显示器等需要操作树莓派终端的工具(或者已经配置好远程终端或者远程桌面),

(3)网络环境,

(4)USB转串口转换器(解决树莓派串口使用问题,配置串口的话较麻烦),

(ps.要加强散热,树莓派cpu比较菜,配置环境过程中若芯片温度过高系统很容易崩掉的2333,我当时多搬了一台风扇专门来吹)

Jetson TX2:

(1)刷好系统的Jetson tx2,(Ubuntu16.04)

(2)可操作tx2终端的工具,

(3)网络环境,

个人PC:

(1)usb转串口或者数传,

(2)网络环境,


一、安装ROS(kinetic版本)

这一步按照ROS官网教程即可,

原网网址:http://wiki.ros.org/kinetic/Installation/Ubuntu

1、允许"restricted"、"universe" 和 "multiverse"三种安装方式,直接在图形化界面的设置里软件源那里打勾即可。或者看这里Ubuntu官方教程:follow the Ubuntu guide

2、设置电脑使其可以接受来自packages.ros.org的软件包:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

3、添加密钥:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

4、更新:

sudo apt-get update

5、安装全套的ros-kinetic-desktop-full:

sudo apt-get install ros-kinetic-desktop-full

(也可以按部分安装,具体见官网,这里为了方便也就直接装了全部的)

6、初始化rosdep:

sudo rosdep init
rosdep update

7、配置ROS工作环境:

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

(这里是配置终端环境的、若要设置成开机即自启可把source这句话添加到/etc下面的profile里)

8、安装构建包的依赖关系:

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

ROS安装到这里就结束了,如果中间遇到什么错误了去官网看看有解决办法


二、安装mavros:

1、修改用户权限

把用户添加到用户组"dialout":

sudo usermod -a -G dialout $USER

至关重要!!!之前我忘记了这一步,然后在启动mavros时遇到错误:

error: Cannot open /dev/ttyUSB0: Permission denied

原因:权限不够,开始安装时忘记修改把用户添加进组内,权限问题。

解决办法:执行上面命令。

2、安装mavros

MAVROS可以通过源文件或者二进制文件安装,官网推荐使用源文件安装,但是我推荐用二进制文件安装。

方法一:二进制文件安装:
sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras ros-kinetic-control-toolbox

(下面这两步不做可能会报错,所以尽量执行下)

cd /opt/ros/kinetic/lib/mavros
sudo ./install_geographiclib_datasets.sh
方法二:源文件安装:

1、建立一个mavros工作空间。

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

2、安装MAVROS需要用到ROS python工具

安装MAVROS需要用到ROS python工具wstool,rosinstall和catkin_tools,尽管在安装ROS时可能已经安装过这些工具,但是再运行这些命令也没啥影响:

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

注意:尽管可以使用catkin_make也可以构建这些包,但是推荐使用catkin_tools,因为它更加友好,功能更加全面,反正就是厉害。

如果这是第一次使用wstool,那么需要初始化你的源空间:

wstool init ~/mavros_ws/src

3、好现在准备构建:

(1)首先获取源码:

rosinstall_generator –upstream mavros | tee /tmp/mavros.rosinstall

要想获取最新的就执行下面这个,两个选一个就行了。

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

 (2)然后获取最新发布的mavlink软件包:

获得mavlink包:

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

 (3)设置工作区并安装:

wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y
cd  ~/mavros_ws/src/mavros/mavros/scripts/
sudo  ./install_geographiclib_datasets.sh

 (4)最后构建一下就好了:

catkin build

(如果说中途说缺什么依赖按照提示装就行了,以后在这个工作空间里构建的话用catkin build工具而不是catkin make)


三、机载处理器修改launch文件(更方便)

修改默认值,这样的话就直接启动launch文件($  roslaunch mavrospx4.launch)即可。

sudo vim /opt/ros/kinetic/share/mavros/launch/px4.launch

看到文件后,找到默认波特率配置一行,修改串口波特率为/dev/ttyUSB0:921600

921600是官方建议的波特率。之所以采取机载树莓派串口直连的方式连接是解决回传数据丢包的问题的。用数传的话由于现有的垃圾数传波特率(57600)的限制丢包率达到98%……而树莓派通过串口直连的话可以做到起码在20Hz的发布频率下不丢包。

(ps.因为树莓派本身的串口有问题,貌似是默认的连接树莓派内的蓝牙模块的。配置一波的话比较麻烦2333,然后就直接用了usb转串口。不同人的情况可能不同,具体修改的时候ls一下/dev,找到要找的具体设备然后在配置里修改即可)

树莓派与pixhawk飞控连接时,树莓派外侧第四根引脚TXD与飞控板串口2(飞控波特率在地面站改,貌似只能修改串口2的,串口1貌似默认57600)中从左到右数第三个RXD连接,树莓派外侧第四根引脚RXD与飞控板串口2中从左到右数第三个TXD连接。(我就因为连错了然后坑了好多次……)


四、测试mavros:

在树莓派上插上usb转串口,然后执行

roslaunch mavros px4.launch

观察输出,一般没报错、进程停止就ok了。

 

后面的博客将介绍建立一个简易的外部控制offboard包。







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