基於ROS的無人機軟件在迴路仿真(SITL)基礎配置
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 \
genromfs
以及:
pip install \
pandas \
jinja2 \
pyserial \
cerberus \
pyulog \
numpy \
toml \
pyquaternion
2.安裝機器人操作系統(ROS)
對於Ubuntu 18.04 LTS,其匹配的ROS版本爲Melodic,安裝過程參考ROS官網教程:
http://wiki.ros.org/melodic/Installation/Ubuntu
3.安裝MAVROS
終端執行:
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
4.配置PX4 Firmware
終端執行:
git clone https://github.com/PX4/Firmware.git
mv Firmware PX4_Firmware
cd Firmware
git checkout v1.9.2
make px4_sitl_default gazebo
編譯成功的話,可以看到一架無人機出現在仿真環境Gazebo中,如下圖:
5.修改環境變量
終端執行:
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
6.ROS launch
終端執行:
roslaunch px4 mavros_posix_sitl.launch
可以看到:
打開一個新終端,執行:
rostopic echo /mavros/state
當看到輸出connected: True
,即說明MAVROS已經成功連接,仿真的準備工作就基本完成了。
---
header:
seq: 230
stamp:
secs: 231
nsecs: 444000000
frame_id: ''
connected: True
armed: False
guided: True
manual_input: False
mode: "AUTO.LOITER"
system_status: 3
---
7.使用QGC來控制無人機
這裏我們簡單地使用GUI來控制無人機的起飛,檢驗我們配置的效果: