Ubuntu20.04+ROS1+PX4+Gazebo仿真(三)环境配置
随风-随梦
编辑于 2024年06月24日 11:41
收录于文集
共4篇

一、ROS安装

二、PX4源代码配置

三、测试

四、MAVROS安装,mavros 功能包提供了 一台能够运行ros的机载电脑、支持MAVLINK协议的飞控和支持MAVLINK的地面站这三者之间的通讯功能

一、ROS安装

1、采用鱼香ROS的一键安装:wget http://fishros.com/install -O fishros && sudo bash fishros

2、选择1,一键安装

3、换源1和1

4、这里选择安装ROS1-notice版本,Ubuntu20.04仅支持ROS1 的notice版本

5、安装完成

6、再次运行:wget http://fishros.com/install -O fishros && sudo bash fishros

选择一键安装rosdep,安装ROS依赖,选择3

7、安装完成之后根据提示,更新rosdep:rosdepc update

8、此时ROS已经安装完成可以打开终端测试:

第一个终端输入:roscore

第二个终端输入:rosrun turtlesim turtlesim_node

第三个终端输入:rosrun turtlesim turtle_teleop_key

二、PX4源代码配置

1、安装git工具:sudo apt install git

2、克隆源代码及子模块(需要科学上网,自行搜索):git clone --recurse-submodules --branch v1.12.3 https://github.com/PX4/PX4-Autopilot.git 

v1.12.3可以更换你需要的版本,如1.13.3/1.14.0等等。

3、cd PX4-Autopilot进入PX4-Autopilot根目录,

更新子模块:git submodule update --init --recursive

返回上一层目录:cd ..

安装工具链,依赖包:bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

4、有报错和警告(环境变量的警告和numpy版本的错误),先暂时不管,让程序运行完成。

5、等待程序运行完成,解决该错误和警告

gedit ~/.bashrc打开.bashrc文件,在底部添加一行:export PATH="$PATH:/home/gb/.local/bin"

保存退出

输入更新numpy:pip install --upgrade numpy

6、安装ant:sudo apt install ant

7、安装 OpenJDK:sudo apt install default-jdk

三、测试

1、进入px4目录:cd PX4-Autopilot

编译环境测试:make px4_sitl gazebo

2、第一次运行会很慢,编译很久,占用内存很大,这时候前面配置的swap分区就起了作用。

我第一次等了一上午,原来就是卡住了,如果内存给的太少,可能也会卡着,这里会需要很久耐心等待。

3、等了50分钟,但是报错了,先Ctrl+c退出

4、克隆gazebo模型

使用官方克隆总是出错,或者中途中断,之前并没有,可能是个偶然事件:git clone https://github.com/osrf/gazebo_models

一直克隆不上可以使用我的个人仓库(东西是一样的,只是源头变了):git clone https://gitee.com/suifengsuimeng/gazebo_models.git

5、再次运行成功:make px4_sitl gazebo

6、输入commander takeoff起飞失败(螺旋桨转了两下停了),显示没有数据连接,导致故障保护被激活,直接返航了。

可以不用管,下载地面站,连接之后就可以了

四、地面站QGroundControl安装

1、进入地面站官网一步步来就可以:https://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html

2、默认下载在Download中,cd进去,运行地面站就可以了

3、此时打开新的终端,运行px4仿真:make px4_sitl gazebo

正常会自动连接成功,可以直接点击起飞,然后滑动解锁

四、安装MAVROS

采用二进制安装

1、安装:sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras

2、安装 GeographicLib 的数据集:

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(这一步需要几分钟的时间,我这次用了5分钟,之前有久的用时10分+,可以耐心等待一下)

环境变量配置:

打开.bashrc文件:sudo gedit ~/.bashrc

将下面内容添加到底部:

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

保存退出