我正在尝试编写一个C ++程序,无需使用GPS坐标即可将无人机(DJI Matrice 100)从A点移动到B点,因为我正在不存在GPS信号的地方对其进行测试。
我使用配备向导和歧管的DJI Matrice 100无人机。
我分析了DJI_SDK_DEMO,但都使用了GPS坐标。
谢谢!
答案 0 :(得分:0)
基于ROS版本,我认为您仍然需要GPS一些信号。如果您查看dji SDK ros SDK here的Wiki,然后找到dji_sdk/local_position
,则会根据GPS信号发布本地位置。您可以在源代码here的GPSConvertENU
函数中查看如何完成此操作。如果您需要在室内进行里程计,则可能必须添加其他传感器(视觉里程计),例如为您发布更多信息的指南。如果您拥有A3 / N3,则DJI还有另一个主题TOPIC_POSITION_VO
,您可以阅读有关here的更多信息
希望这会有所帮助
答案 1 :(得分:0)
我设法找到了问题的答案。
如果未激活GPS,则Matrice 100不想飞行,因此即使没有GPS信号,也仍需要连接。 在这样的环境中,控制无人机的唯一方法是使用虚拟RC。 文档可以在这里找到:https://developer.dji.com/onboard-sdk/documentation/Protocol-Documents/virtual-rc-protocol.html
还有一些示例:https://github.com/dji-sdk/Onboard-SDK-ROS/blob/3.2/dji_sdk_demo/src/client.cpp#L505