使用ArduCopter作为SITL运行dronekit-python。当在set_position_local_ned_encode中指定速度(仅)时,无人机会移动几秒钟并停止。
这都发生在示例代码(guided_set_speed_yaw.py)和一个非常小的测试程序中,该程序仅在适当的init之后执行set_position。所有示例中的所有其他部分似乎都可以正常工作。
所有在Fedora上运行。我没有将此列为错误或与此相关的任何问题。任何想法或指示都表示赞赏。
答案 0 :(得分:2)
ArduCopter 3.3-rc9增加了3秒的速度超时。这是为了防止连接丢失导致飞行。要继续沿同一方向飞行,只需重复发送相同的数据包。
答案 1 :(得分:0)
对于将来的读者,the solution from Bentoy13的确切定义是:
从Copter 3.3开始,应该每秒重新发送速度命令(如果没有收到命令,则车辆将在几秒钟后停止)。在Copter 3.3之前,该命令是持久的,只有在收到下一个移动命令时才会中断。
然后通过Ardupilot:
如果在大约3秒钟内未收到新消息,则车辆将从Copter 3.3停止行驶。在Copter 3.3之前,该消息仅需要发送一次,并且速度保持活动状态,直到接收到下一个运动命令为止。示例代码适用于两种情况!