前言
使用ubuntu下载ros、px4似乎是一件十分繁琐以及困难的事情,但是本人经过了参考大量链接,成功安装好后,发现这件事情其实并非难事。许多安装指导链接发布于一两年前,也许在当时确实是一个好方法,但时至今日,很多操作步骤已然删繁就简,成为一件易事了。
序、PX4初始环境依赖安装与问题
- 在使用apt安装的过程中(包括之后ROS的安装),如果出现难以解决的依赖问题,可以使用aptitude install(没有aptitude的话,使用sudo apt install aptitude 安装),如sudo aptitude install ros-kinetic-desktop,它会依次推荐依赖解决方案,觉得可行就按y,不可行就按n。当然这个工具也不是万能的,如果它也解决不了依赖问题,还是需要靠自己分析解决。
- 有时候apt报错,提示“有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?”,这时按照提示进行操作即可。
- 注意仔细检查依赖都装成功没有,之前有些开发者遇到的编译过程中出现'pthread_create'未定义的引用,就是因为少装了依赖。
问题:Ubuntu20版的新问题;默认python3;之前的python直接改成python3
sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev python-pip python3-pip gawk
pip3 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml
pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse
以上代码都是针对于ubuntu18.04环境下使用,20.04会提示无pip2,直接改为pip3安装即可(20.04依赖库里再无python2)
●如果出现如下报错情况,可先更新 setuptools 和 pip
pip install --upgrade setuptools #若未报错不需要输入这两行命令
python -m pip install --upgrade pip
一、ROS下载与配置
ubuntu 20.04环境下ROS+PX4+RPG ROS DVS+DV-gui 安装_ch&sky的博客-CSDN博客_ubuntu20.04安装px4
1.ROS直接使用鱼香ros的一键安装指令:(比较简单)
wget http://fishros.com/install -O fishros && . fishros
分别选择:1 (会同时完成换源和安装) 版本问题可了解后续使用的版本匹配问题:Ubuntu 16.04对应Kinetic,18.04对应Melodic,20.04对应Noetic,Kinetic以前的发行版不支持
3 初始化 rosdep
4 (如上)
7(很推荐的IDE,VS环境的配置在后面会说)
测试安装是否成功:
2、想要了解每个过程参见:
ROS官网:Installation/Ubuntu - ROS Wikihttp://wiki.ros.org/Installation/Ubuntu
仓库/Ubuntu - 社区帮助维基https://help.ubuntu.com/community/Repositories/Ubuntu
3、ROS入门学习
【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程_哔哩哔哩_bilibili
【古月居】古月·ROS2入门21讲 | 带你认识一个全新的机器人操作系统_哔哩哔哩_bilibili
二、Gazebo安装;mavros安装
仿真平台基础配置 · 语雀
1、gazebo重新下载配置
1.1、Gazebo包括Gazebo本身和ROS的插件,需要分别安装。首先卸载之前的Gazebo
1.2、我们对Gazebo的ROS插件做了修改,因此需要源码编译。
1)首先装依赖
2)然后编译(如果编译时还缺其他的依赖,同上方法安装),
由于需要用到XTDrone的文件,需要先完成XTDrone源码下载。
3)编译成功后执行如下两条指令,判断gazebo_ros是否安装成功
Gazebo有很多开源的模型文件,我们将一些需要的模型文件上传到附件中,供大家下载:
--> 请点击models.zip(632.9 MB)
需将该zip文件提取到(解压)~/.gazebo
中。其中,.gazebo为隐藏文件,可通过按ctrl+H显示隐藏文件
此时在~/.gazebo/models/路径下可以看到很多模型。如果不做这一步,之后运行Gazebo仿真,可能会缺模型,这时会自动下载,Gazebo模型服务器在国外,自动下载会比较久。
2、MAVROS安装
2.1创建一个工作空间(按照古月居ros入门21讲中的第九讲创建一个catkin_ws文件)
sudo apt-get install python-catkin-tools
mkdir -p ~/catkin_ws/src
mkdir -p ~/catkin_ws/scripts
cd catkin_ws && catkin init # 使用catkin_make话,则为cd catkin_ws/src && catkin_init_workspace
2.2 在catkin_ws路径下执行以下代码
catkin init
wstool init src
2.3 执行完成后继续执行
sudo apt-get install python-catkin-tools python-rosinstall-generator -y
rosinstall_generator --rosdistro noetic mavlink | tee /tmp/mavros.rosinstall
2.4安装MAVROS(注意版本问题)
注意,mavros-extras一定别忘记装,否则视觉定位将无法完成
Ubuntu 16.04对应Kinetic,18.04对应Melodic,20.04对应Noetic,Kinetic以前的发行版不支持
## 看ROS版本
sudo apt install ros-noetic-mavros ros-noetic-mavros-extras
sudo apt install ros-kinetic-mavros ros-kinetic-mavros-extras # for ros-kinetic
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配置
安装最新版mavros(按上面的安装就好)
rosinstall_generator --upstream-development mavros | tee -a /tmp/mavros.rosinstall
2.5 创建工作区
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4
rosdep install --from-paths src --ignore-src -y
2.6 安装地理图书馆数据、构建源代码
./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
catkin build
2.7 确保从工作区安装程序(注:执行下列代码后,rosrun将会失效。)
source devel/setup.bash
仿真平台基础配置 (yuque.com)(以此为主)
ubuntu20.04安装ros1与px4、mavros、QGroundControl
三、PX4拉取与配置
1、下载PX4源代码
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
网络问题下载不下来;解决方法:
1)直接拷贝别人下好的代码;或则自己下载好。(下一步更新子模块还是会遇到问题。)
2)虚拟机科学上网;(这个要怎么设置??) 参见:(22条消息) 虚拟机科学上网原理与设置_fushengxiaoyao的博客-CSDN博客
3)换源:(21条消息) Ubuntu更换国内源(apt更换源)_墨痕诉清风的博客-CSDN博客_ubuntu换源
靠、、是不是可以考虑一下大部分VPN都是有Ubuntu里的版本。。没有也可以找一个、、
不科学上网太难了。
2、完成下载后,进入目录 PX4-Autopilot
更新子模块(验证PX4下载是否完全):(直接用别人下好了所有子模块的可以不更新)
git submodule update --init --recursive
如果出现无法更新的情况:用以下命令删除所有子模块,重新更新:
git status // 查看git库状态,刚下完成的应该是干净的
git submodule sync // 查看所有同步子模块
git submodule deinit --all -f // 强制删除所有子模块
git submodule update --init --recursive // 下载更新所有子模块
git status // 查看 无文件要提交,干净的工作区
ll // 查看 总用量 260(版本变化可能会有不一样)
git submodule update --init --recursive // 验证一下
3.运行ubuntu.sh以安装所有工具链:
终端输入(终端路径为主目录下)
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
出现权限不够:
sudo bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
安装报错:
解决方案:
错误:找不到scipy==1.7.1的匹配分发 - 问答 - 腾讯云开发者社区-腾讯云 (tencent.com)
自己下载:
pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
然后重启电脑
网不好会出问题,之后编译会通不过,多下载几次。
仿真能过就好;实际的编译不使用实物就不强求了、、、、
4、环境配置验证:编译运行测试
在完成上述环境的搭建之后,就可以开始仿真和固件的编译了,打开终端输入
(注意:如果此处使用的是虚拟机的话需要注意扩大分配的内存最小需分配4G)
cd PX4-Autopilot
make px4_fmu-v3_default
make px4_sitl jmavsim
make px4_fmu-v5_default
make px4_sitl gazebo
编译报错:查看报错问题,确实哪个模块?? 直接找到对应路径删除文件夹,
然后重新:(缺哪个补哪个。。)
git submodule update --init --recursive
Ubuntu20.04或18.04下PX4(pixhawk)源码编译环境配置教程,及构建代码各种错误解决办法_Iamsonice的博客-CSDN博客
错误2:Configuring incomplete, errors occurred!
原因还是因为编译环境还未安装齐全再次输入(可多次运行以免安装不齐全)
cd ..
bash ./PX4-Autopilot/Tools/setup/ubuntu.sh
错误3:You may need to install it using: pip3 install --user empy
原因还是因为编译环境还未安装齐全Python3,类似的错误(pip3 install --user numpy
、pip3 install --user toml、pip3 install --user packaging...等)按照提示终端输入
pip3 install --user empy
(如出现错误多是网络原因多尝试几次即可)
四、建立ROS与PX4的通信配置
1、环境配置(PX4+MAVROS)
ubuntu 20.04环境下ROS+PX4+RPG ROS DVS+DV-gui 安装_ch&sky的博客-CSDN博客_ubuntu20.04安装px4
仿真平台基础配置 (yuque.com) (以此为主)
打开一个终端,输入:
gedit ~/.bashrc
将下列代码复制粘贴:(前面有重新下载过gazebo,留意路径问题)
source ~/catkin_ws/devel/setup.bash
source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/sitl_gazebo
source ~/catkin_ws/devel/setup.bash
source ~/PX4-Autopilot/Tools/simulation/gazebo/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo/sitl_gazebo
上面代码第二行为ubuntu20.04环境下的路径,18.04需要根据自己情况对路径进行修改
保存并退出之后输入:
source ~/.bashrc
验证PX4+MAVROS是否配置完成:
cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch
rostopic echo /mavros/state
若connected: True,则说明MAVROS与SITL通信成功。如果是false,一般是因为.bashrc里的路径写的不对,请仔细检查。
---
header:
seq: 11
stamp:
secs: 1827
nsecs: 173000000
frame_id: ''
connected: True
armed: False
guided: False
manual_input: True
mode: "MANUAL"
system_status: 3
---