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

一、
电脑上已经配置好了PX4的编译环境以及gazebo9
ubuntu 版本:16.04
PX4 Firmware: v1.9.2
在这里插入图片描述
PX4与ROS各部分关系
在这里插入图片描述

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

1.在这里插入图片描述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
/etc/ros/rosdep/sources.list.d
总之这个过程还是挺麻烦的。

printenv | grep ROS看一下环境变量
在这里插入图片描述没啥毛病,下面就跟着官网创建一个工作空间

$ 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

在执行上面这个脚本的时候,发现总是有问题,GeographicLib 库依旧没有安装(也就是上面脚本的作用,超链接里有上传好的库文件,也可以自己下载)。
找到/usr/share/GeographicLib目录下,发现文件夹都是空的,有可能是网络配置问题没有下载成功,可以在网上自己把这个库下载下来,然后复制过去就行了。Mavros里需要geoids gravity magnetic这三个库。

https://download.csdn.net/download/zmwww/12701102

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

四、外部控制节点

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

 cd ~/catkin_ws/src
 catkin_create_pkg offboard roscpp mavros geometry_msgs

我们将外部控制例程offboard_node.cpp放入刚刚生成的src目录下
并且修改CMakeLists.txt
在这里插入图片描述最后

$ cd ~/catkin_ws
$ catkin_make

仿真


make px4_sitl_default gazebo

roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

rosrun offboard offboard_node

等待一小会后,结果:
在这里插入图片描述rostopic echo /mavros/state
在这里插入图片描述

补充

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观察是否连接成功
在这里插入图片描述

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

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值