安装ROS+MAVROS并实现offboard control例程

一、
首先电脑上已经配置好了PX4的编译环境以及gazebo9
ubuntu 版本:16.04
PX4 Firmware: v1.9.2
安装ROS+MAVROS并实现offboard control例程_第1张图片
PX4与ROS各部分关系
安装ROS+MAVROS并实现offboard control例程_第2张图片

二、安装ROS
根据ubuntu版本,安装ROS Kinetic版本

1.安装ROS+MAVROS并实现offboard control例程_第3张图片2. 使用清华的镜像源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

3.添加keys

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

4.安装
这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在软件包管理器里看到的软件列表,都是通过update命令更新的。

sudo apt-get update

这里选择桌面版安装,包括了ROS, rqt, rviz, and robot-generic libraries

sudo apt-get install ros-kinetic-desktop

5.环境设置

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

这里的目的是将/opt/ros/kinetic/setup.bash添加到.bashrc这个隐藏文件中,目的是每打开一个终端都自动配置好ROS环境,不用手动配置。
使用source命令使其马上生效,不用重新登录

6.构建软件包的依赖项

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

初始化rosdep

sudo apt install python-rosdep
sudo rosdep init
rosdep update

这两步一般会出现问题,例如

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

几乎都是网络问题,可以设置代理,有的人说连手机热点或者打开错误中的网址,自己新建一个一样的文件再rosdep update
安装ROS+MAVROS并实现offboard control例程_第4张图片
总之这个过程还是挺麻烦的。

printenv | grep ROS看一下环境变量
安装ROS+MAVROS并实现offboard control例程_第5张图片没啥毛病,下面就跟着官网创建一个工作空间

$ mkdir -p ~/catkin_ws/src
$ catkin_make

会出现devel和include两个文件夹
source devel/setup.bash
使这个workspace在你环境的最顶层

再查看一下环境变量,应该有两个

$ echo $ROS_PACKAGE_PATH
/home/<youruser>/catkin_ws/src:/opt/ros/kinetic/share

三、MAVROS

看mavros的github官网安装

sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod 777 ./
sudo ./install_geographiclib_datasets.sh

这里wget需要有代理,再配置一下proxychains,用proxychains4命令就可以了

四、外部控制节点

在catkin工作空间中,建立一个ROS包

 cd ~/catkin_ws/src
 catkin_create_pkg offboard roscpp mavros geometry_msgs

我们将外部控制例程offboard_node.cpp放入刚刚生成的src目录下
并且修改CMakeLists.txt
安装ROS+MAVROS并实现offboard control例程_第6张图片最后

$ cd ~/catkin_ws
$ catkin_make

仿真


make px4_sitl_default gazebo

roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"

rosrun offboard offboard_node

等待一小会后,结果:
安装ROS+MAVROS并实现offboard control例程_第7张图片rostopic echo /mavros/state
安装ROS+MAVROS并实现offboard control例程_第8张图片

补充

Gazebo本身是独立于ROS的,因此还需要安装ROS的Gazebo插件:

sudo apt install ros-kinetic-gazebo9-*

并且修改~/.bashrc内容 在最后加上

source ~/catkin_ws/devel/setup.bash 
source ~/test/Firmware/Tools/setup_gazebo.bash ~/test/Firmware/ ~/test/Firmware/build/px4_sitl_default

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd) 
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$(pwd)/Tools/sitl_gazebo

运行 roslaunch px4 mavros_posix_sitl.launch
Gazebo启动再使用rostopic echo /mavros/state观察是否连接成功
安装ROS+MAVROS并实现offboard control例程_第9张图片

可以把下面echo屏蔽掉 否则每次打开终端都会出现这个

你可能感兴趣的:(PX4)