ubuntu18.04安装px4仿真

ubuntu18.04安装PX4仿真

默认已经安装好ROS-melodic和对应的gazebo9
过程参考链接: (https://www.freesion.com/article/42811010840/.
https://www.guyuehome.com/7672
https://docs.qgroundcontrol.com/master/en/
https://docs.px4.io/master/en/

1.安装依赖

sudo apt install -y \
ninja-build \
exiftool \
python-argparse \
python-empy \
python-toml \
python-numpy \
python-yaml \
python-dev \
python-pip \
ninja-build \
protobuf-compiler \
libeigen3-dev \
pip install \
pandas \
jinja2 \
pyserial \
cerberus \
pyulog \
numpy \
toml \
pyquaternion
sudo apt-get install libgstreamer-plugins-base1.0-dev

2.ROS自带的gazebo版本低,可以运行下面指令升级。

sudo apt install ros-melodic-gazebo-ros-pkgs

还有需要将https://github.com/osrf/gazebo_models下载后放入~/.gazebo/models/

3.MAVROS安装

1.直接使用apt安装
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
./install_geographiclib_datasets.sh #这步需要装一段时间,请耐心等待

如果第一步出现无法定位软件包,先检查版本与系统版本是否一致,如果没问题,可以添加一些源并更新,尝试阿里源和清华源。

sudo gedit /etc/apt/sources.list

写入以下内容保存
deb http://cz.archive.ubuntu.com/ubuntu trusty main universe
deb http://archive.ubuntu.com/ubuntu bionic main multiverse restricted universe
deb http://archive.ubuntu.com/ubuntu bionic-security main multiverse restricted universe
deb http://archive.ubuntu.com/ubuntu bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security restricted

如果该脚本下载不下来,可以使用这个脚本

sudo /opt/ros/melodic/lib/mavros/install_geographiclib_datasets.sh
2.mavros的apt安装方式下,后面测试通讯出现如下问题的解决方案
#报错如下
Client [/rostopic_5927_1502794795953] wants topic /mavros/state to have datatype/md5sum [mavros_msgs/State/9e3d873fae342c8f48a8bd64c53d991e],
 but our version has [mavros_msgs/State/63d9a29b6abd9e0beeba06109556d062]. Dropping connection.

卸载

sudo apt-get remove ros-melodic-mavros ros-melodic-mavros-extras

然后使用官网的源码方式安装稳定版即可
https://dev.px4.io/v1.9.0/en/ros/mavros_installation.html

4.PX4配置

git clone https://github.com/PX4/Firmware
mv Firmware PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.11.0-beta1
git submodule update --init --recursive

执行脚本

 cd PX4_Firmware
 bash
 bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools

5.编译

make px4_sitl_default gazebo gazebo  #1.91版本,具体可以 make +tab键查看

出现ERROR [param] Parameter COM_CPU_MAX not found.错误不影响。
编译完后自动运行gazebo界面,关掉即可。

6.环境变量

注意source具有覆盖的功能,尽量往后放

sudo gedit ~/.bashrc
添加
source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo
# 禁用在线模型查找 可以防止上一步编译最后的报错无法从网站解析模型
#但此报错不影响什么使用,所以这句话可以不加
export GAZEBO_MODEL_DATABASE_URI=""

8.通讯测试

一个终端运行:

cd ~/PX4_Firmware
roslaunch px4 mavros_posix_sitl.launch

再开一个运行:

rostopic echo /mavros/state

若不报错且出现connected: True,则说明正确。
若出现话题不匹配的版本错误(如下),则返回第三步,使用第二种源码编译的方法安装mavros

Client [/rostopic_5927_1502794795953] wants topic /mavros/state to have datatype
/md5sum [mavros_msgs/State/9e3d873fae342c8f48a8bd64c53d991e],
 but our version has [mavros_msgs/State/63d9a29b6abd9e0beeba06109556d062]. Dropping connection.

如果出现进程死亡的错误(如下)

[gazebo-3] process has died [pid 9348, exit code 134, cmd /opt/ros/melodic
/lib/gazebo_ros/gzserver -e ode /home/xxx/PX4_Firmware/Tools/sitl_gazebo/worlds/indoor1.world 
__name:=gazebo __log:=/home/xxx/.ros/log/92763544-533d-11eb-8714-5800e34bbf0b/gazebo-3.log].

则先关闭然后运行killall gzserver命令,再次启动launch文件。如果还不行,可以尝试更新gazebo版本。

sudo apt install ros-melodic-gazebo9*

7.px4上层仿真

一个很不错的教程https://www.yuque.com/xtdrone/manual_cn/basic_config_1.11

你可能感兴趣的:(linux,ubuntu)