我试图创建多个 mav 代理实例,但我对此一无所知。我的问题是关于如何在sitl 的单个地图中加载两个arducopter。我正在学习坐骑设置,我想知道是否可以在一张地图中加载两个 arducopter?
4 回答
我已经成功地使用Dronkit-SITL
和进行了集群/植绒模拟QGroundControl
。问题是 SITL TCP 端口在ArduPilot
固件中是硬编码的。如果你想用多辆车进行模拟,你将不得不分别修改ArduPilot
每辆车的源代码并从源代码编译。
例如,5 辆汽车的集群模拟需要 5 种使用不同 TCP 端口编码的不同汽车固件。此外,应稍微调整模拟eeprom.bin
以使其正常工作(甚至适合真实车辆)。
基本上,监控 TCP 端口应该可以正常工作Dronekit-SITL
,Mavproxy
因此在Mavproxy
.
更多细节可以在我的 Github repo 中找到(尽管自述文件很长)。希望能帮助到你!
您是否正在尝试做与 swarms 相关的事情?在 ardupilot 网站中,他们提到了以下内容:
使用 SITL 就像使用真车一样。
我认为这是不可能的,但最好在Ardupilot 论坛社区中发布您的问题。
我喜欢这个主意,它会非常有用。
来自MAVProxy 文档:
MAVProxy 旨在每个实例控制 1 辆车。控制多辆车需要对 MAVProxy 进行大量重新设计,并且目前不在“待办事项”列表中。
但是,对在地图上显示(而不是控制)多辆车的支持非常有限。这应仅被视为一项实验性功能,因为它是为特定应用(2016 UAV Challenge)开发的,其中需要在一张地图上显示两架无人机。
如果您只需要在一张地图中查看它们,那么那里的说明应该适合您。
您不能在 Mavproxy 上的一个 MAP 中运行两辆车。您可以做的是运行两个模拟器并在 Mission Planner 或 QGC 上跟踪它们。
要运行两个 unstance,您需要指定不同的实例编号。
python3 ardupilot/Tools/autotest/sim_vehicle.py -j4 -v ArduCopter -M --map --console --instance 40 --out=udpout:127.0.0.1:14550
python3 ardupilot/Tools/autotest/sim_vehicle.py -j4 -v ArduCopter -M --map --console --instance 50 --out=udpout:127.0.0.1:14551
注意实例 40 和 50 ...还要注意out=udpout端口14551和14550