如何在Dronekit上使用Arducopter设置GUIDED_NOGPS模式?

时间:2016-11-30 13:55:56

标签: dronekit-python dronekit

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

Mavlink也拒绝承认该模式。

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

其他一切都很有效(例如通过set_attitude_target控制感谢这篇文章How to set copters Attitude via DroneKit -- SET_ATTITUDE_TARGET not working) - 我只需要能够进入室内!

另外 - 在Arducopter v3.4 Controlling movement without GPS发布之前,我在这篇文章中注意到可能需要光学流量传感器。这个要求是否成功了?

再次感谢!

欢迎所有建议。

感谢Squilter的帮助。我创建了一个更改flightmode(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,规范表明它是特定于平台的。因为我不知道如何处理Arducopter,我把0放了。

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

pip install -U pymavlink mavproxy

DroneKit会在没有新模式的情况下自动安装它们的旧版本。您希望 PyMAVLink> = 2.2.4 MAVProxy> = 1.6.1。