我想尝试使用基于demo_flight_control
demo_flight_control的dji_sdk_ROS
示例的软件。
为了移动无人机,使用了功能调用setTarget
。为了验证无人机将到达setTarget
函数指定的正确位置,对x,y,z进行了一些边界控制。
在演示代码中,x,y和z的边界为50厘米。因此,如果无人机在三个方向x,y,z的50厘米范围内,则它会到达正确的最终位置。
我的问题涉及到这些界限:它们足够大以控制现实生活中的无人机吗?
我的无人机是具有正常gps的dji矩阵100。
答案 0 :(得分:1)
我认为应该没事。无人驾驶飞机有界线,可以在接近目标时降低其速度。我不确定M100使用哪种控制策略,但是如果您在模拟器中对其进行测试,您会注意到,随着无人机速度的提高,在将其稳定在目标位置之前,过冲量会增加。 (我还发现最终位置不太准确,您可能需要一些方法来实现精确的位置控制方法。)
我在程序中采用了相同的功能,边界为50cm,并且看起来效果很好。
编辑:
自从我看过示例以来已经有一段时间了,但是如果我没记错的话,本地笛卡尔位置是根据GPS传感器更新来计算的。 GPS位置本身与IMU传感器的测量结果融合在一起,但我离题了。您可以通过提供的功能从GPS位置计算出本地位置,该功能可以为您提供从目标到无人机的位置偏移。 根据您的控制标志(我在地面框架中使用水平和垂直速度),您将控制速度应用于无人机,并不断检查其位置是否在目标位置附近(如果不是)您可以再次计算偏移量并连续应用速度。边界检查可让您在接近目标位置时立即停止无人机。如果查看示例代码,则会注意到0速度已发布到控件发布者的所有轴上。