ardupilot开发 --- A8mini云台相机 篇

在这里插入图片描述

0. 一些概念

  • 如何控制云台?
  • 如何控制快门 ?

1. 云台

  • 控制相机转动的机构叫做云台;
  • 最多支持 3 axis 的云台;

2. SIYI 相机 ZR10, ZR30, A8mini

注意:ArduPilot 4.3.1 及以上版本;

2.1 与飞控的接线

串口连接
下面是ZR10, ZR30 and A8 的接线示意图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将 RX, TX and GND 与飞控的串口连接,云台相机的电源单独供电(电压如上图),不使用串口的供电;

2.2 参数配置

以串口2为例:

  • SERIAL2_PROTOCOL = 8
  • SERIAL2_BAUD = 115
  • MNT1_TYPE to = 8
  • CAM1_TYPE to = 4,当 ardupilot version >= 4.4 时
  • CAM_TRIGG_TYPE to = 3 ,当 ardupilot version <= 4.3 时
  • MNT1_PITCH_MIN to -90 最小俯仰角
  • MNT1_PITCH_MAX to 25 最大俯仰角
  • MNT1_YAW_MIN to -135 最小偏航角
  • MNT1_YAW_MAX to 135 最大偏航角

云台和相机的控制通道配置:
注意:siyi云台不支持roll 轴的控制!!

  • MNT1_RC_RATE to 90 (deg/s) ,云台角速度
  • RC6_OPTION = 213 (“Mount Pitch”) ,俯仰控制
  • RC7_OPTION = 214 (“Mount Yaw”) ,偏航控制
  • RC8_OPTION = 163 (“Mount Lock”) 控制云台的heading是保持不动还是跟随飞机机体,即follow和lock;
  • RC9_OPTION = 9 (“Camera Trigger”) ,拍照
  • RC9_OPTION = 166 (“Camera Record Video”) ,录像
  • RC9_OPTION = 167 (“Camera Zoom”) to zoom in and out ,变距
  • RC9_OPTION = 168 (“Camera Manual Focus”) to adjust focus in and out,手动对焦
  • RC9_OPTION = 169 (“Camera Auto Focus”) to trigger auto focus,自动对焦

3. 云台/相机的控制模式

  • Retract Mode
    MNT1_DEFLT_MODE=0;
    云台的roll, pitch, yaw 由这几个参数决定:MNT1_RETRACT_X, MNT1_RETRACT_Y, MNT1_RETRACT_Z ;

  • Neutral Mode
    MNT1_DEFLT_MODE=1;
    云台的roll, pitch, yaw 由这几个参数决定:MNT1_NEUTRAL_X, MNT1_NEUTRAL_Y, MNT1_NEUTRAL_Z ;

  • MAVLink Targeting
    MNT1_DEFLT_MODE=2;
    云台的roll, pitch, yaw 由 MAVLink commands 决定:

  • RC Targeting
    MNT1_DEFLT_MODE=3
    云台的roll, pitch, yaw 由 RCx_OPTION(遥控器) 决定,例如 RC6_OPTION = 213 (“Mount Pitch”) ;

  • GPS Point
    MNT1_DEFLT_MODE=4
    same as MAVLink targeting but the gimbal points at a specific location. Users never need to actively set the gimbal to this mode;

  • SysId Target
    MNT1_DEFLT_MODE=5
    the gimbal points at another vehicle with a specified MAVLink system id. Users never need to actively set the gimbal to this mode and there are no known GCSs that support setting the system id;

  • Home Location
    MNT1_DEFLT_MODE=6
    the gimbal points at home (normally its takeoff location);

可通过参数 MNT1_DEFLT_MODE 来设置模式;
或者通过地面站来设置模式:

在这里插入图片描述

### ROS2中思翼云台相机的集成与使用 要在ROS2环境中成功集成并使用思翼云台相机,需结合已有的开源项目和技术文档进行适配。以下是关于如何实现这一目标的具体说明。 #### 1. 环境准备 在开始之前,确保已经安装了必要的依赖项以及配置好了ROS2环境。这包括但不限于`ros2-desktop-full`及其相关工具链[^2]。此外,还需要确认思翼云台相机支持的标准通信协议(如串口或网络接口),以便后续开发工作能够顺利开展。 #### 2. 控制节点设计 针对思翼云台相机的功能需求,可以参考现有基于ROS2的海康网络摄像机控制方案的设计思路[^3]。具体来说: - **创建自定义消息类型** 定义一组新的ROS2消息文件来描述云台的角度位置、速度以及其他参数设置。这些消息将作为服务端和客户端之间传递数据的基础单元。 - **编写驱动程序插件** 开发专门用于操作思翼硬件设备的C++/Python类库模块,并将其封装成标准形式的服务或者动作服务器(Action Server),从而允许其他部分轻松调用相应功能。 ```cpp // Example of a simple service callback function written in C++ void setPantiltPosition(const std::shared_ptr<example_interfaces::srv::SetFloat>& request, std::shared_ptr<example_interfaces::srv::SetFloat_Response> response){ float pan_angle = request->data; float tilt_angle = another_request_variable; // Assume this is defined elsewhere sendCommandToCamera(pan_angle, tilt_angle); response->success = true; } ``` 上述代码片段展示了一个基本的服务回调函数示例,其中包含了接收来自用户的输入请求并将之转化为实际命令发送给物理装置的过程[^1]。 #### 3. 数据流处理 为了实现实时预览图像效果的同时还能获取额外的信息比如姿态估计结果等,则需要建立完整的数据管道机制。这里推荐采用如下策略: - 利用Image Transport框架传输未经压缩过的原始图片帧; - 结合CV Bridge转换OpenCV Mat对象至sensor_msgs/Image格式; - 如果涉及三维空间坐标计算的话还可以引入geometry_msgs/PoseStamped等相关主题发布位姿更新事件。 另外值得注意的是,在多线程环境下运行多个订阅者可能会引起同步问题,因此建议合理安排优先级顺序以减少潜在冲突风险[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值