APM联合gazebo进行固定翼仿真
2023-12-19 22:51:50
一、事情起因
由于项目使用的是固定翼飞机,然后又要求使用的是APM固件,所以之前对PX4固件就需要从新来过。
1.1 APM的飞行模式
固定翼常见的飞行模式
- MANUAL:手动模式
等效于不加飞控直接使用遥控器控制飞机。 - FBWA:fly by wire_a
这是固定翼中最常用的模式;
遥控器摇杆控制飞机横滚和俯仰的角度,摇杆回中后飞机自动维持零位姿态;
方向舵还是手动控制;
油门还是通过遥控器手动控制,飞机不会自动调整油门以维持高度(如果油门过大或者过低,即使俯仰姿态角为0,高度依然有可能发生变化)。 - FBWB:fly by wire_b
与FBWA类似,但是飞机会主动维持高度;
横滚控制与FBWA一样,是由遥控器控制目标横滚角;
遥控器升降摇杆控制飞机的高度,摇杆回中后飞机会自动调整升降舵以维持当前高度;
遥控器油门摇杆控制的是目标空速。 - Stablize:增稳模式
APM官方文档明确表示不建议使用此模式,推荐使用FBWA。 - TAKEOFF:起飞模式
飞机将爬升到“TKOFF_ALT”参数定义的高度,然后开始盘旋。
参考文章,最好请参考官方文章
二、仿真环境配置
配置请你参考前面一篇文章:点击这里
2.1 配置过程中问题出现及其解决办法
(1)
#终端输如下行命令报错
gazebo --verbose zephyr_ardupilot_demo.world
报错:无法找到world文件
解决办法:
sudo gedit /usr/share/gazebo/setup.sh
sudo gedit /usr/share/gazebo-9/setup.sh
将export GAZEBO_MODEL_DATABASE_URI=http://gazebosim.org/models修改为:
export GAZEBO_MODEL_DATABASE_URI=http://models.gazebosim.org/
然后:
cd ~/ardupilot_gazebo/models
打开终端
wget http://models.gazebosim.org/manifest.xml
(2)map和终端不显示
原因:mavproxy未安装好,参考官方链接安装参考地址
解决办法:
sudo apt-get install python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python-pygame
pip3 install PyYAML mavproxy --user
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
常见错误请参考链接](https://blog.csdn.net/Dojinz/article/details/134872301)
2.2 固定翼gazebo模型构建
在上一个文章中,我们构建自己的gazebo模型,然后进行编译,但是那个没有包含固定翼模型,所以我们需要更换。
git clone https://github.com/SwiftGust/ardupilot_gazebo
cd ardupilot_gazebo
mkdir build
cd build
cmake ..
make -j4
sudo make install
更换之前里面的模型如下所示:
上述就是全部的环境配置
2.3 APM固件编译
接下来可以按照BUILD.md中的进行waf编译。
确保~/.bashrc的环境变量都设置好了,没有就请你参考我的第一篇文章点击这里
./waf configure --board sitl
./waf plane #编译的是固定翼,你也可以选择四旋翼(copter)
运行仿真:
sim_vehicle.py -v ArduPlane -f gazebo-zephyr --map --console -I0
换另外一个终端
gazebo --verbose zephyr_ardupilot_demo.world
开始起飞:
#切换到takeoff模式
mode takeoff
#解锁油门
arm throttle
固定翼会默认起飞到10m高度进行circle动作。
文章来源:https://blog.csdn.net/m0_49586319/article/details/135094185
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!