# 技术说明

### 技术说明

![lADPD2eDNwep1wbNBI7NBeY\_1510\_1166](/files/7voRUIvsCDG0SkDjKe9I)

SOLVER HV水下机器人使用Chibios实时操作系统，是一个安全、操作便捷、高扩展性、全开源的成熟水下机器人系统。ROVMAKER的硬件结合Ardusub成熟的开源软件，建造一台水下机器人从未如此简单。

### 主要特性 <a href="#toc20145301" id="toc20145301"></a>

* 姿态稳定和精确的反馈控制：基于多轴无人机系统，Ardusub固件具有准确的反馈控制
* 定深模式 使用Ardusub支持的深度传感器，Ardusub可以进行厘米级的深度控制。
* 航向锁定模式 在没有操作指令的情况下Ardusub默认自动保持航行锁定。
* 相机云台 可以通过摇杆控制舵机或伺服电机驱动的相机云台。
* 照明控制 可以通过手柄控制水下照明灯的亮度。
* 无需编程 用户可以不需要任何编程更改即可匹配大多数框架配置。而且可以通过parameters更改几乎所有参数设置。
* 支持多种主流的水下机器人框架布局和电机配置。
* 软硬件上具有高度的扩展性和定制化。
* 集成姿态航向参考系统（Attitude and Heading Reference System）和惯性导航系统Inertial Navigation Filter (EKF)。
* 可用户自定义和扩展的框架配置系统。
* 包括用于控制操作和调参的成熟地面站软件。
* 针对MAVLink协议兼容，支持多种开发工具。
* 传感器和航行数据记录。

完整的水下机器人系统中包括一些必不可少的部件，以下是一个简单的清单：

\- \[支持的ROV框架] 包含推进器和支持正反转的电调

\- 飞控，如3DR的PixHawk

\- 用来电力载波或者网线通讯的线缆

\- 安装有 QGroundControl 地面站的电脑

\- USB 摇杆或者手柄遥控器

\- 深度传感器

### 硬件概览 <a href="#toc42450572" id="toc42450572"></a>

我们把水下机器人的硬件部分大概分为三类：

地面站：需要遥控器和电脑

水下机器人：带有主控制器的机体

脐带缆：RC和WiFi信号在水中传播十分困难，需要线缆进行通讯，脐带缆通常使用零浮力线和电力载波通讯。

ROV

搭建完整的SOLVER水下机器人或其他兼容机器人，Ardusub很高程度的支持多数推进器驱动和配置库，用于多种水下机器人的推进器布置。

飞控

飞控负责ROV的控制，飞控具有板载的陀螺仪、加速度计、指南针用于感知设备的状态。飞控采集传感器信息，控制推进器、灯光、舵机等。借助 DroneCode ，Ardupilot本已支持非常多的硬件，Ardusub也提供这些支持。在3D Robotics的 PixHawk 上已经完全适配和支持，一些其他的硬件同样也可以使用：

\- PixHawk ，Pixhawk 2 ，Pixhawk Mini - 来自 3D Robotics

\- PixRacer - 来自 AUAV

\- Navio+/Navio2 - 来自 Emlid

\- Erle Brain, PXFmini - 来自 Erle Robotics

\- BBBmini - BeagleBone Black扩展板

这些硬件都需要至少8个PWM输出，而且可能并不完全支持ArduSub，目前仅Pixhawk经过完全的测试和支持。

QGC地面站软件和飞控的连接

一般情况下使用电力载波进行通讯，如果不使用载波通信可以网线直连。ROVMAKER的电力载波模块支持300米线缆长度的通信距离，可以无电通讯。网线直连的距离受到限制，多芯网线浮力线也比较昂贵。用以上方法配置好IP地址后，无需多余操作，只需打开QGC，即自动连接到装载了Ardusub固件的飞控。

PIX和树莓派的连接

将PIX侧面的microUSB用数据线连接到树莓派任意一USB端口即可。

地面站

ArduSub设计使用QGroundControl (QGC)作为地面站，QGC是一个开源的多平台上位机，适合各种形态的无人机。地面站和ROV通过载波线缆或网线连接到树莓派，通过QGC 可以更改各种参数配置，显示实时拍摄画面。

地面站软件为 QGroundControl，地面站电脑的性能尤为重要，会影响传输速度和稳定性，请尽量选择性能较高的电脑。支持以下操作系统：

\- Windows 10

\- Mac OSX

\- Ubuntu 14.04 ／16.04

QGC地面站可以使用游戏手柄或者摇杆控制ROV，和大多数USB手柄兼容，QGC经测试支持以下遥控器：

\- 微软无线Xbox 360 / Xbox One手柄

传感器和扩展设备

在基础的IMU和指南针的基础上，Ardusub支持MS5837深度传感器，与飞控进行iic通讯。用于"定深模式Depth Hold mode"和深度信息获取。还包括水面GPS（水面下无法使用）

其他设备在进行单独的信息处理后可以和主控进行通讯，因此有极大的扩展可能性。允许用户增加各种传感器和附件，可以更改用户界面进行控制附件，如声纳，三维扫描，液体密度传感器等，pwm输出口更可以用于机械臂舵机的控制。

SOS漏水检测

Ardusub可以读取漏水传感器信息，漏水时进入自我保护模式。

电池

建议初级用户使用机载电池的方式，地面远程供电系统在以后的版本中会有所更新。电池的选择主要有以下几点：

\- 电压：电压可以根据电调的最大承受电压选择3.7v的锂电池组，6s是一个不错的选择，能够充分发挥推进器的性能。（航模电池中，6s中s指电池节数，即6组电池，每组满电为4.2v，额定3.7v。）

\- 容量：电池容量用mAh表示，数值越大容量越大，一般情况下10000mAh可以支持接近2-3个小时的操作时间。

\- 放电倍率：在航模电池中，倍率用C表示,表示电池的放电能力。放电倍率和mAh／1000相乘，即该电池的最大放电电流大小。例如，10C倍率的10000 mAh的电池，放电达到100Amps。通常，放电倍率可以选择”15Amps × 推进器个数"最佳。

协处理器

协处理器一般有两个主要功能：处理并传送视频，通过零浮力线缆和地面站通讯。目前Ardusub只支持Raspberry Pi 3作为协处理器，并需要装载Ardusub固件。

摄像头

树莓派兼容的csi摄像头目前都可以使用，H.264也可以支持。在最新的Ardusub版本中可以使用USB摄像头。

推进器和电调

Ardusub设计为无刷电机使用，无刷电机通过电调驱动。所有电调必须能够正反转控制推进器。

### 软件概览 <a href="#toc42450573" id="toc42450573"></a>

Ardusub的软件有三个部分：

\- Ardusub：是水下机器人飞控的核心程序，负责整体的运动控制。

\- QGroundControl: 地面站软件。

\- 协处理控制器：树莓派是负责处理视频和通信部分。

以下是系统简图：

![](/files/t9mVGJeriwSBUtPLW1XU)

支持的布局

Ardusub很高程度的支持多数推进器驱动和配置库，用于多种推进器布置，以下配置为上视图，绿色和蓝色为相反的正反桨叶。目前支持的框架布局如下：

![](/files/TXXClPXXjIxpwSEzYzCx)

水下机器人的框架配置在QGC地面站中"Frame"一栏。如果你需要自定义自己的框架配置，可以通过设置"parameter"中"FRAME CONFIG"自定义配置，如果更换了布局选择，请重启PIX设备以启用，详细请查阅开发者章节。

### 应用场景 <a href="#toc20145306" id="toc20145306"></a>

ArduSub的强大功能使广泛应用成为可能，从观察级设备到执行级设备都能胜任。无论是ROV还是AUV，其使用场景有无限的可能性，粗略举例：

* 水下观察和探索
* 考古和记录
* 水下摄影
* 教育教学
* 海洋设备检查
* 水体采样和测量
* 水下机器人竞赛
* 科研及学术研究

### 设备搭载 <a href="#toc42450575" id="toc42450575"></a>

#### 单自由度机械手 <a href="#toc42450576" id="toc42450576"></a>

此次投标产品配备单自由度机械手，机械手是水下机器人进行水下作业的最重要工具，根据驱动方式的不同可以分为电驱和液压两类；根据功能数量可以分为单功能、二功能、五功能和七功能几类。

根据不同的任务，水下机器人可以配置1或2个机械手进行水下作业。本次投标设备搭载单自由度机械手，重量轻，体积小，强度大，15Kg夹取力，开合角度96mm,耐压深度300m可以水下替代人员完成打捞作业。

![](/files/YGInLTUmyqZjlAOVJNrH)

![](/files/Ipl2Y7z7iH6njPZYWQLK)

#### 前视声呐 <a href="#toc42450577" id="toc42450577"></a>

选用Tritech Gemini720im前视多波束声呐，是世界上最小的多波束成像声呐。

![](/files/1gKJrYeW8qe9LOXesxbc)

![](/files/j3LRTl6sB38qV0YZL7l7)

声呐参数如下表：

| 工作频率  | 720Hz        |
| ----- | ------------ |
| 角度分辨率 | 2.34°，0.7°有效 |
| 测量范围  | 0.2-50m      |
| 换能器数量 | 128          |
| 水平角度  | 90°          |
| 垂直角度  | 20°          |
| 距离分辨率 | 8mm          |

### 所投产品装配使用说明书 <a href="#toc42450578" id="toc42450578"></a>

#### 连接手柄和手柄校准 <a href="#toc20145318" id="toc20145318"></a>

访问 [http://rovmaker.org](http://rovmaker.org/) 网站下载页，下载并安装对应手柄驱动，打开手柄电源或者直接使用usb数据线连接至电脑。第一次打开QGC并连接手柄或者更换新的手柄，需要校准手柄摇杆和配置按键功能。这将让QGC能够正确匹配摇杆操作并获取摇杆的最大和最小行程范围。

遥控器有四种模式，类似于左右手的区别，模式和校准数据的映射有关。请先选择模式后进行遥控器的摇杆校准。（一般使用Mode1即可，模式改变的是摇杆对应功能，所以更换模式需要重新校准行程。）

最新版本的QGC请按照以下方法校准：

（操作过程中，软件右上角也会有提示，小白点位置即需要移动到的位置。左右摇杆显示可能相反，即显示左摇杆则进行右摇杆的动作。）

1\. 在设置的Joystick栏中点击 "Calibrate" 然后点击 "Next"。

2\. 软件会提示移动某一摇杆的轴到最大或最小，按照以下移动校准。

3\. 显示移动Throttle时: 移动右边的摇杆向上／向下

4\. 显示移动Yaw时: 移动右边的摇杆向右／向左

5\. 显示移动Roll时: 移动左边的摇杆向右／向左

6\. 显示移动Pitch时:移动左边的摇杆向上／向下

7\. 松手回中，校准完成，显示校准成功。

#### 按键配置 <a href="#toc20145319" id="toc20145319"></a>

所有提供的按键功能都可以映射到手柄按键，这一步必须操作进行配置，因为并没有默认配置。

每一个按键不仅能配置独立的一种功能，当"shift"按键被配置，相当于电脑键盘的 "shift"按键，可以用于复用同一个按键作为其他功能，按住"shift"同时按下设定键，可触发设定键的"shift"所设定的功能。

在设置的"Joystick" 栏目中，可以随意配置每个按键的功能。当按下手柄的某一个按键时，屏幕上对应的按键会高亮显示，然后在高亮的下拉菜单中选择想要配置的按键功能。不同的手柄和操作系统按键配置可能不一样，不需要完全和图示中标记的一样。

注意，如果使用罗技或者Xbox手柄，按下手柄的"mode"时，会触发手柄自带的其他功能，如果有其他功能，务必禁用此按键。如果使用Xbox手柄，需要安装 "X-input" 驱动。![](/files/Nb1o2U6Pb29O1EwUxpCC)

手柄按键的特别功能：

roll\_pitch\_toggle：按下后，控制机器左右自旋的摇杆功能变化为控制机器左右倾斜（控制潜浮的两个推进器转速转向的变化）。再次按下此按键后摇杆功能恢复正常。

input\_hold\_toggle：按下后，会保持摇杆的位置持续输出，摇杆的当前被设置为默认输出，可以保持摇杆动作，此时仍然可以控制推进器，再次按下后解除，默认中位为停转。

#### 设置电流和电压检测 <a href="#toc20145320" id="toc20145320"></a>

在"Power"栏中，选择合适的设置。请选择"Analog Voltage and Current"，输入所使用的电池容量，选择 "Power Module 90A"，电池容量的单位为"mAh"，SOLVER的电池容量为10400。![](/files/ffqFMvJ4duINIRbOeiml)

控制模式有很多种，例如手动模式，自稳定模式，深度保持模式等。在"Flight Modes"栏default模式中选择手动模式 "Manual"，后面依次"Stabilize"和"DepthHold"模式。

设置好手柄按键后，可以通过手柄按键在几个模式中切换。![](/files/SLm3k9hr01Kqkp24OEmc)

目前支持9种不同的控制模式，有些模式只有在传感器使能下可用。同一时间只能在一种模式下。

Manual 模式即手动模式，此模式下遥控器的输入被直接输出到推进器，不进行任何自稳定，ArduSub (version 3.5+) 总是将手动模式作为开机初始模式。

Stabilize即自稳模式，这个模式在 Manual 手动模式基础上增加了自稳和航向锁定，始终保持遥控器所指令的最后航向（保持水下机器人头部所指方向，并不是定点，会自发地一定程度地左右漂移旋转进行定向），自稳模式有一定的对抗浪涌水流的作用。

Depth Hold 深度保持模式，在 Stabilize 自稳模式基础上，增添了对深度的保持，水下机器人会保持在遥控器控制信号控制到的最后所在深度。深度保持模式必须要搭载有深度传感器才能使用。

Position Enabled Modes模式，此模式需要搭载有提供位置信息的传感器，注意 GPS在水下无法使用。

Position Hold位置保持模式，会在无航行指令时保持水下机器人所在位置和指向，可以反复设定不同的定点位置。

Auto 自动模式，水下机器人会自动执行预先设置的航行任务。遥控器指令在此模式下会被忽略， 如果需要干预自动执行的任务，可以用遥控器disarm锁定，或者更换模式都可以中止任务。

Circle中心点环绕模式，会使水下机器人在指定的中心点以指定直径始终指向圆心画圈航行。

Guided指点航行模式，水下机器人会朝向地面站动态设定的地图位置运动。 使用地图中的 "Click to Navigate Here" 设定位置。

Acro (Acrobatic) 模式，是隐藏的一个秘密模式：杂技模式。这个模式下保持角速率稳定。

#### 相机云台设置 <a href="#toc20145322" id="toc20145322"></a>

选择"Camera" 栏目。 "Gimbal Tilt" 用于设置相机云台控制。在 "Output channel"选择云台舵机所插入的飞控pwm输出通道，"Input channel"中选择如"RC8" ， "RC1到RC8"和Aux输出"RC9到RC12"中未被使用的通道都是可以选择的有效输出通道，在 "Gimbal Settings" 中"Type" 下选择 "Servo" 。关于Channel口的编号定义请参阅前面章节的pix接线说明。![](/files/I9Gd14hJwllGoy2SUTm2)

如果需要，可以选择 "Stabilize"功能，会开启云台的 "auto-stabilization" ，云台会根据机器的旋转角度进行自稳定，保持视角方向不变。此选项通常不选，水下控制需要第一视角的画面反馈。

默认的RC输出通道对应功能如下，此处的RC1-RC11代表遥控器的默认通道，需要对应设置选择，同时设置RC通道和Channel后手柄输出才会对应pix所连接的通道：

| 输出通道 | 对应功能           |
| ---- | -------------- |
| RC1  | Pitch          |
| RC2  | Roll           |
| RC3  | Throttle       |
| RC4  | Yaw            |
| RC5  | Forward        |
| RC6  | Lateral        |
| RC7  | Reserved       |
| RC8  | Camera Tilt    |
| RC9  | Lights 1 Level |
| RC10 | Lights 2 Level |
| RC11 | Video Switch   |

#### 灯光设置 <a href="#toc20145323" id="toc20145323"></a>

灯光的控制是通过PWM信号控制的，例如连接 RCIN9 输入，包含灯光控制信号输出。在参数中找到RCx\_FUNCTION， 其中 x 是输出通道，通道需要和灯光输出通道一致，如设置为 RCIN9。

例如，照明灯如果连接在channel 7通道设置 RC7\_FUNCTION 到RCIN9 操作如下：

![](/files/3uJzw8iOIOwSXjRgcpVK)

#### 设置电机转向 <a href="#toc20145324" id="toc20145324"></a>

因为桨叶正反和安装方向等，电机的转向需要检查是否准确并更改设置。参数名称为MOT\_1\_DIRECTION ，用于电机 1-8 的转向调整，参数数据为 normal 或 reverse。

确保其他设置都已经完成，再进行以下步骤的转向调节：

1\. 控制模式设置为"Manual"手动模式。

2\. 按下手柄所设置的 Arm 按键解锁设备。

3\. 移动控制前进的 "forward"摇杆，检查对应参与前进方向力的推进器桨叶转向是否推力向后，此时水流会向后推，在空气中风向为前进方向的反方向。如方向相反则设置为相反。

4\. 移动控制潜浮和平移等摇杆，相同地，检查其他推进器方向。如方向相反则设置为相反。

推进器的编号如图：![](/files/Kmvr2ue5Fb2FtxeiYkku)

如果你自定义了框架配置，编译上传后，应该不需要此步骤验证。

#### 失效保护 <a href="#toc20145325" id="toc20145325"></a>

当既定的设置条件被触发会启动失效保护，每个失效保护触发条件都可以单独配置。一些失效保护附加的设置允许自定义调整触发条件,比如最大可接受的压力或温度。

当设置条件被触发，失效保护只会启动一次。在失效保护中，如果解锁检查通过，水下机器人可以被解锁。控制模式在失效保护不阻止更改的情况下才可以被更改。如果失效保护条件被清除，故障保护动作会再次检测安全设置条件。

举例几种常用的设置条件：

**漏水 Leak**

当漏水检测 Leak Detector 被识别已经漏水，失效保护条件会被立刻确认。

当漏水保护传感器报告2次识别不漏水，失效保护会被清除。

**内部气压 Internal Pressure**

当密封舱(WTE)舱内气压被检测达到参数配置中FS\\\_PRESS\\\_MAX 所设置的压力两次，此设置条件会被确认。

当舱体内部气压小于设置阀值，此失效保护会被立刻清除。

**内部温度 Internal Temperature**

当密封舱(WTE)舱内温度被检测达到参数配置中 FS\\\_TEMP\\\_MAX所设置的压力两次，此设置条件会被确认。

当舱体内部温度小于设置阀值，此失效保护会被立刻清除。

#### 密封性测试方法 <a href="#toc20145326" id="toc20145326"></a>

请查阅密封性测试套件使用说明，额定300米深度，更深的下潜请进行测试后再操作。

#### 充电与电池使用 <a href="#toc20145327" id="toc20145327"></a>

SOLVER HV套件包含的充电器为5a充电电流锂电池充电器，可以用于6s锂电池的快速安全充电。套件中的锂电池为14000mah容量6s锂电池，电池带有充放电保护和平衡，额定的持续放电电流可以达到40a几乎不发热，给扩展负载预留了很多的空间，可以轻松搭载大电流负载。

由于锂电池已经通过水密接插件连接到电子舱，可以根据水密接插件的引脚定义直接使用电子舱的水密接插件充电。此外锂电池舱可以快速拆卸更换，可以直接对锂电池舱进行充电。

充电时，将充电器一段插入市电，另一端插入锂电池的水密接插件插头公头。

请一定注意充电头的缺口位置对准水密接插件的防反插柱，打火和反接都会破坏接插件或充电器。充电器的指示灯充电过程中显示红色，充满后变绿。充电时常从无电到满电约一个小时，充电过程中请有人在一旁，禁止持续无人长时间充电，避免事故发生。

一般情况下满电的锂电池可以工作2-3个小时，具体时长依使用情况和负载情况会有所变化。

电池和设备在不使用或运输时一定要将水密接插件的堵头插紧牢固，由于接头直接连向电池触碰导电物体会产生危险，尤其不能无堵头接触水，电极会在短时间内氧化损坏。

#### 调节配重和姿态 <a href="#toc20145329" id="toc20145329"></a>

请参照硬件装配章节关于配重块和固体浮力材料安装部分的说明。

负载的增加会改变设备的浮力状态，需要重新进行调节。一般情况下浮力材料不要减少，8块需要全部安装到位，这一部分主要用于调节姿态并具有一定的浮力调节作用。但在加装负载时需要注意，所安装的负载请事先通过增加浮力使其达到零浮力状态，或安装到设备后共同调节。

浮力部分最好于设备的中心上部，配重部分最好于设备的最底部，最终使设备在水中时只有不到一厘米漏出水面并且姿态平稳，此时ROV具有轻微的正浮力（接近零浮力）。

#### 下潜前的检查 <a href="#toc20145330" id="toc20145330"></a>

水下使用带电设备一定要非常小心，需要反复进行安全检查，包括水密接插件的安全接插（注意使用堵头），安全扣的锁紧。桨叶没有完全的安全保护，请避免旋转的桨叶接触身体。

**首先需要检查密封性，在以下情况下需要重新检查：**

1.更换密封圈或法兰后；

2.拆卸舱体和穿线螺丝等有关密封的零件后；

3.陆运货船空运等颠簸运输后；

4.长时间未使用后。

**检查机械固定：**

1.视觉检查所有的螺丝是否安装牢固；

2.推拉各部件检查是否晃动；

3.拧紧有松动的螺丝；

4.检查线缆的扣件是否扣紧，线缆和水密接插件母线的连接处不抗拉，此部分通过u型扣环固定到机器，受力转移到线缆和机器的框架上。

**检查水密接插件：**

1.未使用的接插件需要用堵头密封好；

2.水密接插件需要拧上锁扣；

3.水密接插件如果产生不顺滑难以插入请涂抹润滑硅脂；

4.注意接插件是否插反。

检查各部分工作是否正常：

1.参照软件配置部分启动并连接地面站软件后，检查摄像头图像流畅程度；

2.按下所设置的手柄各按键功能，检查是否对应并生效；

3.按下手柄所设置的arm按键后，移动摇杆检查电机的转动是否顺畅正确，灯光和云台控制是否正确。

#### 密封圈更换 <a href="#toc20145331" id="toc20145331"></a>

SOLVER所使用的氟胶密封圈具有优异的性能，但密封圈在长时间使用后仍然需要更换。

建议在每200小时使用或半年后进行更换，更换后注意密封圈需要均匀涂抹润滑硅脂，保证密封圈表面和安装处没有任何杂质和灰尘。

#### 回收 <a href="#toc20145332" id="toc20145332"></a>

下水后的回收因具有脐带缆会更加便捷。回收过程如不需要进行操作，可以锁定电机并关闭灯光节约电源。拉动线缆进行回收，线缆整齐绕到线盘上。为了防止缠绕和阻挡可以浮到水面后再收线。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rovmaker.org/chan-pin-shou-ce/solver-shi-yong-shou-ce/ji-shu-shuo-ming.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
