• 首页
    • 旋翼飞行器
    • 固定翼飞行器
    • 无人车UGV
    • 飞艇
    • 潜航器
    • 天线跟踪器
    • Mission Planner地面站
    • APM Planner 2
    • MAVProxy
    • 配套计算机
    • 开发人员
  • 下载
    • Mission Planner地面站
    • APM Planner 2
    • 高级用户工具
    • 开发人员工具
    • 固件
  • 社区
    • 支持论坛
    • 在 Facebook 上
    • 开发人员聊天室(Discord)
    • 开发人员语音(Discord)
    • 联系我们
    • 参与
    • 商业支持
    • 开发团队
    • 无人机系统培训中心
  • 商店
  • 关于
    • 历史
    • 许可证
    • 商标
    • 致谢
    • 维基编辑指南
    • 合作伙伴计划
开发 标志
  • 许可证(GPLv3)
  • AP_ 外围设备
  • 下载代码/使用 Git
  • 编写代码
  • 编辑器和集成开发环境
  • 学习代码
    • 导言
    • 图书馆简介
    • 图书馆草图示例
    • 传感器驱动程序
    • 穿线
    • UART 和控制台
    • RC 输入和输出
    • 存储和 EEPROM 管理
    • 文件系统
    • EKF
    • 旋翼飞行器 - 《载具法》介绍
    • 旋翼飞行器 - 姿态控制
    • 旋翼飞行器 - 添加参数
    • Copter - 添加新的飞行模式
    • Copter - 安排新代码间歇运行
    • 旋翼飞行器 - 电机库
    • Copter - 位置控制和导航
    • 旋翼飞行器 - 物体规避
    • Copter - 添加自定义姿态控制器
    • 罗孚 - 添加新的驾驶模式
    • 罗孚 - L1 导航控制器
    • 平面 - 结构概述
    • 添加新日志信息
    • 添加新的 MAVLink 信息
    • 添加新的 MAVLink 云台
  • 模拟 & 测试
  • 调试
  • Linux 上的 ArduPilot
  • 支持代理
  • 贡献代码
  • MAVLink 接口
  • CAN 和 DroneCAN/UAVCAN
  • 配套计算机
  • ROS1/ROS2
  • Lua 脚本
  • 移植到新的飞行控制器
  • OEM 定制
  • 安全固件
  • 远程 ID
  • 高级硬件信息
  • MAVProxy 开发人员 GCS
  • 为 GCS 开发人员提供的资源
  • RTF 载具开发人员信息
  • 团队如何工作
  • 活动
  • 培训中心
  • GSoC
  • 2021 年开发者大会
  • 2022 年路线图
  • 维基编辑指南
  • USB ID
  • 用户警报
  • 涉及 ArduPilot 的学术作品
  • 附录


个人 合作伙伴 SWAG 商店
开发
  • 学习 ArduPilot 代码库
  • 为新的 MAVLink 云台添加支持
  • 在 GitHub 上编辑

为新的 MAVLink 云台添加支持¶

本页介绍 ArduPilot 如何与支持 MAVLink 的云台进行交互。它更多地是指导云台制造商如何在对 ArduPilot 进行最少代码修改的情况下使其云台与 ArduPilot 配合使用。

"这款" SToRM32 万向节 是一个很好的参考,因为它支持 MAVLink。

云台应支持的信息¶

  1. 万向节应在串行端口上监听一个 心跳 信息。一般情况下,它可以假定收到的第一个心跳信息来自载具,但为了确定起见,您可以检查 "类型 "字段,以确保它是合理的(例如,MAV_TYPE = 1 表示固定翼,2 表示四旋翼,但 6 表示 GCS,应忽略)。

    该心跳将包含飞行器的系统标识(system-id)和组件标识(component-id)。万向节应采用相同的系统id,但今后所有信息都应使用 MAV_COMP_ID_GIMBAL(即 154)的组件id。事实上,只要不是零,也不是载具或载具上任何其他设备的组件 ID,就可以使用任何唯一的组件 ID。

  2. 万向节应发送 心跳 以大约 1 赫兹的频率从串行端口发送信息

    • 系统标识(system-id)和组件标识(component-id)应如上所述。

    • "类型 "应为 MAV_TYPE_GIMBAL(即 26)。

    • "(飞行)控制器 "不使用,因此可以设置为任何值,包括 MAV_AUTOPILOT_GENERIC(即 0)。

    • "base_mode "和 "custom_mode "没有被使用,因此可以设置为任何值(也许 0 是最好的值)

    • 一旦云台准备好接受姿态目标,"system_status "应设置为 "MAV_STATE_ACTIVE"(飞行器状态激活)。

  3. 为支持从地面站读取/写入参数值,云台应执行这些信息:

    • 参数读取请求 - 如果万向云台接收到此信息,且 "target_system "和 "target_component "值与万向云台的系统标识和组件标识匹配,则应响应一个 PARAM_VALUE 消息,其中包含 "param_id "字段指定的参数值(只是一个枚举,万向节可以为其每个内部参数指定任何枚举)。

    • 参数请求列表 - 通过发送 PARAM_VALUE 万向节内每个参数的信息。

    • 参数设置 - 对此,系统会将内部变量设置为 "param_value "字段中的值。

  4. ArduPilot 将通过 MAVLink 向云台发送角度请求,请求将以下列形式到达 命令长 命令 "字段设置为 MAV_CMD_DO_MOUNT_CONTROL(即 205)的报文。

    • 参数 #1 包含所需的螺距(单位:度

    • 参数 #2 包含所需的滚动角度

    • 参数#3 包含所需的偏航度,但要注意偏航度是相对于载具前方而言的,因此 "0 "表示正前方,"90 "表示向右,"-90 "表示向左。

  5. 如果云台需要载具提供额外的数据,可以使用 请求数据流 留言

    • 载具的目标系统和组件 ID。

    • "req_stream_id "可以是 MAV_DATA_STREAM 枚举中的任何值。一些有用的值如下

      • MAV_DATA_STREAM_POSITION 将导致载具发送 global_position_int 信息包括纬度、经度、高度、速度(3d)和航向)。

      • MAV_DATA_STREAM_EXTRA1 将发送 MSG_ATTITUDE 其中包括滚转、前平移/俯仰、偏航的欧拉角

测试¶

要测试系统,您可以将云台连接到 Pixhawk,就像连接 SToRM32 云台一样。尤其要检查 "通过Mission Planner地面站进行设置(MALVink 协议)" 节。

上一页 下一页

有关本页面的问题、事项和建议可在 论坛.问题和建议可在论坛或 Github 问题跟踪.

知识共享许可协议© 版权 2024 年,ArduPilot 开发团队。