具体步骤如下:

# 1.更新并安装git
sudo apt-get update
sudo apt-get install git
sudo apt-get install gitk git-gui
# 2.clone repo
cd ~/
git clone https://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submodule update --init --recursive
# 3.install some required packages
Tools/environment_install/install-prereqs-ubuntu.sh -y
. ~/.profile

成功后应该是这样的,此后就可以进行仿真了。

无人机仿真系统架构_git

接下来可以按照BUILD.md中的进行waf编译。

# 编译SITL
./waf configure --board sitl
./waf copter
这里记录一下我遇到的一个关于Mavproxy的问题。
这个

无人机仿真系统架构_ubuntu_02


从APM官方git中,下载安装Mavproxy即可,注意之后将build/scripts2.7/中的文件拷贝到~/.local/lib/python2.7/site-packages/MAVProxy-1.8.18.dist-info/scripts/下,问题解决。

附加:查看可用的板子命令

./waf list_boards

结果如下:

无人机仿真系统架构_git_03

# 4.Add some directories to your search path (Facultative)
# 把下面语句加入~/.bashrc文件中
export PATH=$PATH:$HOME/ardupilot/Tools/autotest
export PATH=/usr/lib/ccache:$PATH
# 然后使用点命令重新载入
. ~/.bashrc

接下来:

无人机仿真系统架构_git_04


2)开始SITL simulator

# 1.启动SITL仿真
cd ardupilot/ArduCopter
# 以下语句擦出缓存,并且采用默认配置
sim_vehicle.py -w 
# ctrl+c推出并且按下
sim_vehicle.py --console --map

# 附加:安装并更新pymavlink和mavproxy
pip install --upgrade pymavlink MAVProxy --user

默认配置时会弹出一个窗口,取消后再sim_vehicle.py --console --map之后会有三个窗口,表示SITL成功运行啦。如下:

无人机仿真系统架构_linux_05

3)使用gazebo仿真器
APM_Gazebo官方教程 得先git clone ardupilot_gazebo

# 1.安装并更新gazebo,原文建议用gazebo9;推荐在ubuntu18.04下操作啦
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt update

sudo apt install gazebo9 libgazebo9-dev
# 以下打开一个gazebo新world
gazebo --verbose

# 虚拟机中若遇到问题
echo “export SVGA_VGPU10=0” >> ~/.bashrc # 关闭硬件加速
source ~/.bashrc #执行以下终端配置文件,其实最好重启终端

# 2.Plugin installation
git clone https://github.com/khancyr/ardupilot_gazebo
cd ardupilot_gazebo
mkdir build
cd build
cmake ..
make -j4
sudo make install

# 3.启动仿真器
cd ~/ardupilot_gazebo
gazebo --verbose worlds/iris_arducopter_runway.world

# another terminal
cd ~/ardupilot/ArduCopter
../Tools/autotest/sim_vehicle.py -f gazebo-iris --console --map

启动APM在gazebo中的SITL,如下:

无人机仿真系统架构_linux_06

分别是map和Xterm、显示面板三个窗口。在终端可以输入命令:

mode guided # 引导模式
arm throttle # 解锁油门
takeoff 10 #起飞至10m高度
# ...更多命令参考官方教程...

2.APM仿真使用

APM的指令暂时没找,记录一下常用的指令。更多内容可以参考最上方给出的传送门。

官方demoOctomapPlanner官方git主页,官方在ubuntu16.04测试,基于opencv3,我在18.04虚拟机上做的,基于opencv4.1.1。

# 1.参考OctomapPlanner readme进行编译与安装
# ...
# 此处略去一大堆第三方库的安装。
# ...

git clone https://github.com/ardupilot/OctomapPlanner
cd OctomapPlanner
mkdir build
cd build
cmake ..
make
cp -r ../models/* ~/.gazebo/models/


# 2.使用
# 2.1 terminal 1 启动gazebo
cd ~/OctomapPlanner/
gazebo --verbose worlds/iris_gas_station_demo.world
# 2.2 terminal 2 启动APM SITL仿真
sim_vehicle.py -v ArduCopter -f gazebo-iris
# 输入以下指令起飞:
mode guided
arm throttle
takeoff 1 
# 输入help即可查看更多命令及使用方法。

# 3 terminal 3 启动项目节点
./build/main_node

正常进入gazebo如下:

无人机仿真系统架构_git_07

启动项目节点后如下,将弹出视差图窗口,并且无人机自主移动。

无人机仿真系统架构_bash_08

自主规划路径:

无人机仿真系统架构_bash_09

之后,我发现它自杀了,哈哈哈

无人机仿真系统架构_ubuntu_10

记录一个问题,arm throttle之后会自动加锁,暂时不知道为何。

无人机仿真系统架构_linux_11