1

我有 Dronekit 与 SITL sim 一起正常工作,但是对于我的项目,我希望能够控制直升机的姿态。显然我可以在 ALT_HOLD 模式下通过 RC override 来做到这一点,但是我不喜欢这种方法。

我一直在尝试使用 Mavlink 消息 SET_ATTITUDE_TARGET (#82),但是当我将消息发送到 sim 时,没有任何反应。我已经能够设置速度和位置,并且工作正常。

这是我的功能:

def att_msg_mode():
    print "=========== Building Message"
    veh1.mode = VehicleMode("ALT_HOLD")
    msg = veh1.message_factory.set_attitude_target_encode(
    0,
    0,                #target system
    0,                #target component
    0b11100010,       #type mask
    [.9438,0,0,.17364], #q
    0,                #body roll rate
    0,                #body pitch rate
    0,                #body yaw rate
    0)                #thrust
    time.sleep(1)
    veh1.send_mavlink(msg)
    veh1.flush()
    print "=========== Message Sent"

有人可以帮我吗?

4

3 回答 3

4

SET_ATTITUDE_TARGET现在可以在guided_mode中使用。您甚至可以使用mavproxy态度命令对其进行测试。

于 2017-06-28T21:25:52.690 回答
0

SET_ATTITUDE_TARGET现已实施,并将与 ArduCopter 3.4 一起发布

于 2015-10-26T20:11:36.117 回答
-1

无法直接设置姿态,因为直升机在引导模式或自动模式/任务中都不支持该命令)。引导模式下支持的命令列表在此处,AUTO 命令在此处

你可以做的是设置偏航。另一种可能有效的(hacky)方法是设置 ROI,因为这会将相机(通常是整车)指向目标。

这听起来像是一个合理的要求 - 也许创建一个请求并解释为什么这对您有用?

于 2015-07-13T22:57:19.703 回答