水下机器人开发
前言:基于bluerov框架的水下机器人系列开发笔记
1、需求分析
水下机器人的实际需求可归纳:
各个模块内容:
使用如下方案完成需求:
英伟达核心板TX2,TX2扩展板,pixhawk飞控,电调,无刷电机,舵机,摄像头,其它扩展模块(如机械臂)
2、实现方案
对各个部分实现方案的描述从硬件和软件两个方面进行描述
2.1 控制部分——硬件
控制部分硬件连接图
2.1.1 TX2开发板与pixhawk飞控
TX2开发板与pixhawk飞控的连接为串口通信方式
基于这款开发板,可以比较方便的直接使用板载的USB接口,与pixhawk飞控的USB接口连接实现串口通信。
!!!原生TX2的Ubuntu系统没有对USB转串口的驱动
。
2.1.2 pixhawk飞控与电调
水下机器人的动力源为电机,使用的推进器型号为T100。机器人共搭载8个这样的电机,4个水平安置,4个竖直安置,运动通道上控制上下移动和左右转向,使用飞控的输出口为Main1至8。水下机器人电调具有控制电机正反转功能,控制方式采取开环控制,电机没有转速反馈。
2.2 控制部分——软件
整体采用开源机器人操作系统ROS实现机器人分布式控制,以硬件连接为基础进行软件环境搭建。
手动控制方面:QGC地面站结合bluerov的pixhawk飞控固件,可实现遥控手柄对水下机器人的控制。
自动控制方面:通过ROS多机通信方式,发送用于控制的topic信息,如速度、位置等用于改变水下机器人状态的tocpic可实现机器人自动控制。
2.3 通信部分——硬件
2.3.1 通信硬件连接
这里主要涉及的硬件连接是电力载波模块的连接。
完成电力载波模块连接后,水下端与地面端可实现局域网通信。
2.4 通信部分——软件
主要区分飞控数据与指令传输和视频流传输
2.4.1飞控数据与控制指令传输
建立在水下端mavros节点与地面端QGC地面站的连接之上,通过此方式,实现两者交互
mavros作为飞控主要节点,完成飞控数据转发和QGC地面站交互任务
2.4.2 视频流传输
2种方式
一、通过ROS读取网络摄像头并完成节点发送,使用地面端开启ROS下image节点进行显示
二、开启VNC服务,通过远程桌面形式访问,在水下端开启image节点进行显示
2者方式均可,但VNC服务都需要开启,因为水下端无法将自身桌面运行情况,进行直观反馈,不便于地面端查看调试,VNC远程桌面可以兼顾视频流获取与调试。