氓知吃吃 2021-07-14 15:36 采纳率: 0%
浏览 25

Acfly 偏航后如何朝机头方向飞行

我使用的是Acfly EDU
我目前的代码如下:

img
想让飞机偏航后朝机头方向飞40厘米
但无人机仍按原先的坐标系移动
据说是因为转向还没完成,无人机就已经开始移动了,需要使用计数延时。
请问应该如何改动才能让无人机在转动一定角度后朝机头方向飞行一定距离啊

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-03-15 15:47
    关注

    参考GPT和自己的思路:

    你的代码中使用了 set_yaw_rate 和 set_rc_data 方法来控制飞机的偏航与飞行。如果想让飞机偏航后朝机头方向飞行一定距离,可以使用以下方法进行修改:

    1. 在 set_yaw_rate 方法后添加计数延时

    首先,你可以在 set_yaw_rate 方法后添加一个计数延时,让飞机先完成偏航的旋转。可以通过测试不同的延时时间来确定最佳的延时时间,以确保飞机能够转向到指定的角度。例如,在 set_yaw_rate 方法后添加一个 200ms 的计数延时:

    # 偏航飞机
    yaw_rate = 60
    ac.set_yaw_rate(yaw_rate)
    time.sleep(0.2)
    
    # 飞行
    throttle = 40
    ac.set_rc_data("throttle", throttle)
    
    1. 使用 set_yaw 方法代替 set_yaw_rate 方法进行控制

    另一种方法是使用 set_yaw 方法代替 set_yaw_rate 方法,从而更精确地控制飞机的偏航角度。先在 set_yaw 方法中设置目标角度,然后使用一个循环不断检测当前的偏航角度是否达到目标角度,如果达到,则开始飞行。

    # 设置目标角度
    target_yaw = ac.get_yaw() + 45
    
    # 偏航飞机
    yaw_rate = 60
    ac.set_yaw_rate(yaw_rate)
    
    # 循环检测偏航角度是否达到目标角度
    while abs(ac.get_yaw() - target_yaw) > 5:
        time.sleep(0.1)
    
    # 开始飞行
    throttle = 40
    ac.set_rc_data("throttle", throttle)
    

    以上两种方法都可以让飞机在偏航后朝机头方向飞行一定距离,选择哪种方法取决于实际情况与编程习惯。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月14日

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题