默认已经安装好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/
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
sudo apt install ros-melodic-gazebo-ros-pkgs
还有需要将https://github.com/osrf/gazebo_models下载后放入~/.gazebo/models/
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
#报错如下
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
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
make px4_sitl_default gazebo gazebo #1.91版本,具体可以 make +tab键查看
出现ERROR [param] Parameter COM_CPU_MAX not found.
错误不影响。
编译完后自动运行gazebo界面,关掉即可。
注意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=""
一个终端运行:
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*
一个很不错的教程https://www.yuque.com/xtdrone/manual_cn/basic_config_1.11