ArduPilot 这么优秀的代码,提供了一套很方便的SITL仿真开发模式。在git clone代码的时候,已经将相关的东西下载下来了。问题是如何进行使用。
首先要安装mavproxy 这个软件,pymavlink --mavlink封装的python module,后面也可以采用这个脚本给仿真加上自己的程序。这点和ROS/MAVROS 的模式类似。(ROS是C++编程,多线程是没有问题的,python是伪多线程)
其中指令有多点,./sim_vehicle.py --vehicle=ArduCopter --frame=heli --tonealarm --rgbled --console --map --out=172.18.52.221:14550
不过可以采用./sim_vehicle.py --help来进行查询。 上面的例子是可以将生成的内容通过172.18.52.221的14550端口发送出去,采用的是UDP形式。我这里采用的是在同一个局域网的地面站进行查看的。地面站的操作方法,我在前面的博客中已经提及到了。
我采用的是直升机的仿真。对于直升机而言,在准备好之后需要有一个操作,就是
- rc 8 1000
- rc 3 1000
- arm throttle
- rc 8 1700
- rc 3 1700
这样就完成了直升机的起飞。当然,也可以采用远程mission planner来设置航点,让飞机飞过去。
每次仿真之后会在当前文件夹下生成一个log文件,位于log文件夹下。这个文件可以通过地面站转换成matlab可以识别的.mat文件,然后绘制相应的曲线图,方便科研。
另一方面,每一次连接地面站飞行之后,地面站都会生成一个log文件保存下来ÿ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)