2

如何命令 Arducopter 进入guided_nogps 模式?我计划在 gps 被拒绝的环境中操作,虽然其他帖子表明这可以通过guided-nogps 实现,但我看不到如何设置该模式。使用 Dronekit (python) vehicle.mode = VehicleMode("Guided_NoGPS") 返回一个错误,表明没有这种模式。

Mavlink 也拒绝承认该模式。

我的设置是运行 Arducopter 的 Pixhawk 和 Raspberry Pi 伴侣。DroneKit-SITL 上的固件是 v3.5 dev 和 v3.4(我为此编译了自己的 v3.4 二进制文件)。

其他一切都很好(例如,通过 set_attitude_target 进行控制,感谢这篇文章如何通过 DroneKit 设置直升机姿态 - SET_ATTITUDE_TARGET 不工作) - 我只需要能够进入室内!

另外 - 在发布 Arducopter v3.4控制没有 GPS 的运动之前,我确实在这篇文章中注意到可能需要光流传感器。这个要求实现了吗?

再次感谢!

欢迎所有建议。

感谢斯奎尔特的帮助。我创建了一个函数来改变飞行模式(20):

def set_mode(flightmode):
# create the MAV_CMD_DO_SET_MODE command
msg = vehicle.message_factory.command_long_encode(
    0, 0,    # target system, target component
    mavutil.mavlink.MAV_CMD_DO_SET_MODE, #command
    0, #confirmation
    flightmode,
    0, 0, 0, 0, 0, 0 )
# send command to vehicle
vehicle.send_mavlink(msg)

消息正确接收但未成功(返回结果 3)。我不确定的一件事是参数 2,规范表明它是特定于平台的。我放了 0,因为我不确定如何处理 Arducopter。

再次,欢迎任何建议,非常感谢!

4

2 回答 2

1

尝试将模式设置为 20。这是模式的内部表示。看起来dronekit-python 还不知道这一点。

正常引导模式需要光流,而不是guided_nogps。但是,guided_nogps 不允许发送速度或位置请求,只能发送角度。

于 2016-11-30T17:45:42.853 回答
0

我知道这个问题有点老了,但我找到了答案。更新您的 MAVProxy 和 PyMAVLink 安装。

pip install -U pymavlink mavproxy

DroneKit 将在没有可用新模式的情况下自动安装它们的旧版本。你想要PyMAVLink >= 2.2.4MAVProxy >= 1.6.1。

于 2017-09-17T20:21:25.867 回答