PX4环境搭建记录(ROS+Gazebo+mavros+PX4+QGC)
全过程记录PX4环境搭建(ROS+Gazebo+Mavros+PX4+QGC)
本人飞控专业在读,近段时间在老师的建议下,开始搭建PX4环境配置。因为并没有之前相关环境配置的经验,所以走了不少弯路,在此 感谢我的室友伙伴的一起努力和老师的辛苦指导。
注:本文基于的系统是Ubuntu18.04,在VMware上运行,此两者的安装请各位读者自行参考相关链接。
环境搭建
- 在PX4配置中本人参考了以下这个链接
- PX4环境配置
ROS环境安装
依赖安装
- 注意,不要一直使用一个终端进行配置,下面的都是,建议每配置完一个环境就重新新建一个终端。
- 打开终端
sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
pip2 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse
ROS安装
配置Ubuntu源码库
打开Ubuntu系统的九个点,类似windows系统的开始选项,找到“软件和更新”这个选项卡
点击软件和更新
设置sources.list
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'
设置key
sudo apt install curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
报错则输入
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
安装ROS
sudo apt update sudo apt install ros-melodic-desktop
设定环境
- echo “source /opt/ros/melodic/setup.bash” >> ~/.bashrc
source ~/.bashrc```
构建软件包依赖关系
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential sudo apt install python-rosdep
sudo rosdep init
出现错误
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.cd /etc sudo gedit hosts
ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initializesudo rm /etc/ros/rosdep/sources.list.d/20-default.list
启动ROS
roscore
出现此环境则为安装成功
新建工作空间
此空间为ROS所有,方便后续步骤安装
mkdir -p ~/catkin_ws/src mkdir -p ~/catkin_ws/scripts cd catkin_ws/src catkin_init_workspace cd .. catkin_make
Gazebo安装
卸载之前安装的gazebo
sudo apt-get remove gazebo* sudo apt-get remove libgazebo* sudo apt-get remove ros-melodic-gazebo* #kinetic noetic对应修改
设置计算机以接受来自package.osrfoundation.org的软件
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'cat /etc/apt/sources.list.d/gazebo-stable.list#如果出现deb http://packages.osrfoundation.org/gazebo/ubuntu-stable xenial main表示没问题
设置密钥
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - sudo apt-get update
安装gazebo指令
sudo apt-get install gazebo9=9.1*
安装后终端输入gazebo,若能出现gazebo则为安装成功,界面如下
-
安装gazebo与ROS插件
sudo apt install ros-melodic-gazebo9-* sudo apt install ros-melodic-gazebo-*
测试
roscore rosrun gazebo_ros gazebo
界面如上张图片
MAVROS安装
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras # for ros-melodic wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh sudo chmod a+x ./install_geographiclib_datasets.sh sudo ./install_geographiclib_datasets.sh #这步需要装一段时间,请耐心等待PX4配置 #注意,我们安装的ROS环境为ROS1,所以选择melodic方式安装,#后面的内容为注释,只需要运行终端代码即可
PX4配置
- 这一块的步骤参考的是上文所说的第二个链接。
注意:由于GitHub网址国内访问太慢,所以 我们采用gitee网站的方式
git clone https://gitee.com/bingobinlw/Firmware.git
这一步下载过后打开Firmware文件夹,勾选显示隐藏文件
找到如图所示选中的文件,双击打开
[submodule "mavlink/include/mavlink/v2.0"]path = mavlink/include/mavlink/v2.0url = https://gitee.com/bingobinlw/c_library_v2.gitbranch = master
[submodule "src/drivers/uavcan/libuavcan"]path = src/drivers/uavcan/libuavcanurl = https://gitee.com/bingobinlw/uavcan.gitbranch = px4
[submodule "Tools/jMAVSim"]path = Tools/jMAVSimurl = https://gitee.com/bingobinlw/jMAVSim.gitbranch = master
[submodule "Tools/sitl_gazebo"]path = Tools/sitl_gazebourl = https://gitee.com/bingobinlw/sitl_gazebo.gitbranch = master
[submodule "src/lib/matrix"]path = src/lib/matrixurl = https://gitee.com/bingobinlw/Matrix.gitbranch = master
[submodule "src/lib/ecl"]path = src/lib/eclurl = https://gitee.com/bingobinlw/ecl.gitbranch = master
[submodule "boards/atlflight/cmake_hexagon"]path = boards/atlflight/cmake_hexagonurl = https://gitee.com/bingobinlw/cmake_hexagon.gitbranch = px4
[submodule "src/drivers/gps/devices"]path = src/drivers/gps/devicesurl = https://gitee.com/bingobinlw/GpsDrivers.gitbranch = master
[submodule "src/modules/micrortps_bridge/micro-CDR"]path = src/modules/micrortps_bridge/micro-CDRurl =https://gitee.com/bingobinlw/micro-CDR.gitbranch = px4
[submodule "platforms/nuttx/NuttX/nuttx"]path = platforms/nuttx/NuttX/nuttxurl = https://gitee.com/bingobinlw/NuttX.gitbranch = px4_firmware_nuttx-8.2
[submodule "platforms/nuttx/NuttX/apps"]path = platforms/nuttx/NuttX/appsurl = https://gitee.com/bingobinlw/NuttX-apps.gitbranch = px4_firmware_nuttx-8.2
[submodule "cmake/configs/uavcan_board_ident"]path = cmake/configs/uavcan_board_identurl = https://gitee.com/bingobinlw/uavcan_board_ident.gitbranch = master
[submodule "platforms/qurt/dspal"]path = platforms/qurt/dspalurl = https://gitee.com/bingobinlw/dspal.git
将上面代码文件拷贝覆盖选中的文件的内容,并点击保存。
更新子模块组
- 在Firmware文件夹内打开终端
git submodule update --init --recursive
安装必要的python依赖
新开一个终端
cd ~/Firmware bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools
编译PX4配置
make px4_sitl_default gazebo
新建终端,修改bashrc路径
sudo gedit ~/.bashrc
- 将打开的文件在最下面添加以下路径代码,然后保存- ```source ~/catkin_ws/devel/setup.bashsource ~/Firmware/Tools/setup_gazebo.bash ~/Firmware/ ~/Firmware/build/px4_sitl_defaultexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmwareexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo```- ```
source ~/.bashrc
注意自己的PX4安装包是什么名字,路径配置就填什么,如果自己的px4配置包是PX4_Firmware,就需要将本人的路径代码中的Firmware改成PX4_Firmware
此命令能够使环境变量正确加载
新建终端运行以下命令
cd ~/Firmware roslaunch px4 mavros_posix_sitl.launch
成功如图所示
并运行以下代码
rostopic echo /mavros/state
此命令是检查mavros和PX4之间的通信是否正确,在终端显示 connected:true表示正确无问题,若显示false,则表示bashrc文件路径配置不正确,需要检查一遍路径。成功如图所示
QGC地面站安装
安装链接
https://docs.qgroundcontrol.com/en/getting_started/download_and_install.html
注意这个链接需要在Ubuntu系统中打开,并且下载在Ubuntu系统中
根据官网所给出的链接进行安装
打开终端,分别输入以上代码,然后运行
点击蓝色字体QGC进行下载
在下载好的QGC安装包文件夹位置打开终端,运行下一条命令
chomd +x ./QGroundControl.Applmage
最终实现效果如图所示
- 至此,仿真平台配置完成。以上所有代码都跑过一遍,安装有效。
- PX4的环境配置了很久,因为会出现各种各样的问题,最后总结问题大概会出现在以下几点
- PX4源码尽量直接git clone GitHub网址或者gitee网站。本人之前直接利用PX4安装包去Ubuntu解压,效果有,但是最后的mavros通信不成功。
- 有些需要配置环境路径,需要一点耐心。如果出现错误,可以从错误地方直接复制到网上参考有关链接。
- 本次记录心得结束,感谢各位观看
PX4环境搭建记录(ROS+Gazebo+mavros+PX4+QGC)相关推荐
- TensorRT 环境搭建记录
TensorRT 环境搭建记录 文章目录 TensorRT 环境搭建记录 1.TensorRT介绍 2.使用TensorRT总目标 3.Centos下TensorRT环境搭建(Ubuntu一样) 4. ...
- 极简darknet环境搭建记录
<极简darknet环境搭建记录> darknet的环境搭建已经非常简单了,但是偶尔的一点小坑,可能会浪费一些时间,比如编译的时候使用CUDA报错,或者没找到OpenCV-简单记录一下 ...
- MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04)
MIT Mini Cheetah–开源代码仿真环境搭建记录(Ubuntu20.04) 一.安装依赖包 sudo apt install mesa-common-dev freeglut3-dev co ...
- Linux环境搭建记录——GitLab安装
Linux环境搭建记录 GitLab安装 GitLab安装 更多GitLab详细信息请参考:GitLab官方文档 分步指南 获取GitLab资源 可以访问 https://mirrors.tuna.t ...
- Linux环境搭建记录——Jenkins安装
Linux环境搭建记录 Jenkins安装 Jenkins升级 Jenkins插件离线安装 构件Jenkins项目 Jenkins安装 更多Jenkins详细信息请参考:Jenkins官方文档 分步指 ...
- ubuntu16.04下px4环境搭建与固件编译
px4官网提供了一个批处理方式搭建px4开发环境,十分好用,按照官网步骤 1 sudo usermod -a -G dialout $USER 2 登出再登入使命令生效 3下载几个脚本,不需要每个都下 ...
- linux ubuntu安装pytorch(深度学习环境搭建记录,无sudo权限)踩坑全记录
一些牢骚:深度学习没怎么学习几次,搭建环境已经把我搞秃了哈哈哈. 之前在网上找到的搭建环境的步骤,我没有root权限,很多操作都不行(比如运行.run文件,cuda 和cudnn的安装和修改也需要ro ...
- Windows下Qt编写Android应用程序的环境搭建记录
目录 前言 配置开发环境 安装JDK1.8 安装SDK 安装NDK Qt配置OpenCV C++&Java混合编程 结语 前言 由于要在手机上实现一些应用,例如部署目标检测模型.添加单目测距定 ...
- 一、PX4环境搭建和编译(Ubuntu 16.04、ROS kinetic)
Ubuntu16.04 ROS:kinetic 源于:官网PX4开发指南(v1.10.0)<master> https://dev.px4.io/v1.10/zh/ 稍微参考一下这个网站: ...
最新文章
- ASP.NET页面包含另外一个页面
- 学习python需要什么基础-学习python需要什么基础
- java 继承的内存分配_图解Java继承内存分配
- 漫谈度量学习(Distance Metric Learning)那些事儿
- 用tensorflow实现yolov3
- bcd编辑工具Linux,​快启动pe系统工具之BCD编辑工具各个功能详细介
- 使用replace pioneer批量修改文件名
- NGS基础 - 参考基因组和基因注释文件
- .html与.htm为网页后缀的区别
- JavaScript基础和记背内容 Day1
- Latex Error: File ended while scanning use of \@xdblarge
- 好看的流程审批html,审批流程(加班)驳回(流程被删除).html
- UNIX环境高级编程-#include “apue.h“
- 惠普怎样启动计算机上的无线功能,如何打开hp无线网卡?如何打开惠普笔记本电脑无线网卡...
- android ppt的动画效果怎么做,Android 仿 PPT 进入动画效果合集
- 明尼苏达量表结果分析_MMPI明尼苏达多项人格测验量表分析
- CDATA 数据处理
- 【Linux编程】UVC摄像头采集与显示(V4L2编程)
- [SDOI2012]拯救小云公主
- Jquery 里的节点遍历(next(),perv(),nextAll(),prevAll())
热门文章
- 设计模式-观察者模式(Observer)-Java
- 小程序中无法播放阿里云的视频点播
- 请不要拿ipad和手机、上网本相提并论
- 软考和PMP哪个含金量更高点?
- 优化版本 穿越火线(CF) FPS AI 自瞄 代码 权重 数据集(下面有链接)
- 明日方舟抽卡模拟器wiki_明日方舟tag模拟器wiki
- 此计算机中未配置默认浏览器,Win10设置默认浏览器
- 怎么用计算机的计算器转换进位制,怎么用电脑计算器将带小数的二进位制转换为十进位制...
- python win32转pdf 横版_Python调用Win32com实现批量Office转PDF
- asp+html加密最终版,ASP后门之终极伪装+在线琳法ASP加密解密网站安全 -电脑资料...