一、建造航行器的框架
(1)选择合适的框架
构建 ArduSub 水下潜航器的第一步是从中选择一个潜航器“框架”,用于安装和定位推进器。一些框架使用较少的推进器,而其他一些则具有更好的操控性(平移、俯仰 / 滚动稳定性)。
ArduSub 包含一个高级电机库,可以配置任何配置的电机。该库用于实现多种支持的框架配置。
所有配置都是从俯视图显示的。绿色推进器表示逆时针螺旋桨,蓝色推进器表示顺时针螺旋桨(或反之—要是完全反着来也是可行的)。当 ESC 信号线插入时,每个推进器旁边的数字对应于自动驾驶仪板上主输出的编号。
目前支持的配置有:
(2)自定义底盘
如果你希望构建的航行器推进器配置不是预先构建的底盘之一,那么可以使用这份文档:《制作自定义配置》 来配置自定义底盘。
(3)外部组件选择
所需的最低配置电子元件可以在硬件选项:所需硬件部分找到。
航行器架构通常由耐腐蚀材料制成,如HDPE(高密度聚乙烯)和铝。
(4)布线和连接(后面更新pixhawk2)
确切的布线配置取决于航行器配置和所使用的硬件。以下是标准通道分配。
请参阅上面“选择合适的框架”以了解标准推进器编号。
MAIN和AUX输出编号是指Pixhawk 1 PWM输出。
PWM脉宽调制通道 | connection连接 |
---|---|
MAIN OUT Channel 1 | 推机器 1 |
MAIN OUT Channel 2 | 推机器 2 |
MAIN OUT Channel 3 | 推机器 3 |
MAIN OUT Channel 4 | 推机器 4 |
MAIN OUT Channel 5 | 推机器 5 |
MAIN OUT Channel 6 | 推机器 6 |
MAIN OUT Channel 7 | 推机器 7 |
MAIN OUT Channel 8 | 推机器 8 |
用户可配置(MAIN 或 AUX) | LED 灯光 |
用户可配置(MAIN 或 AUX) | 相机倾斜伺服 |
该硬件还具有其他输入/输出端口,包括 I2C 和串行端口。这些是这些端口的推荐连接。
部分 | connection连接 |
---|---|
I2C | 压力传感器 (MS58XX) |
USB 串口 | 配套计算机 |
电源接口 | 电源模块 |
(5)已有的可供参考底盘
如果对于第一次构建者来说决定使用哪些组件太困难,Blue Robotics公司销售的BlueROV2可能是一个半成品的“参考底盘”,可用于理解ArduSub控制系统。可以重新使用和重新配置组件以进行自定义底盘设计。
二、软件QGroundControl 的安装
推荐的最新版本QGroundControl是v4.2.3。
如果您的软件版本过旧,请卸载QGC应用程序并从以下链接下载最新版本。
(译者用的是v4.3.0)
(1)下载
有以下几个系统版本,下载并安装QGroundControl:官网
-
上述链接下载的安装程序是ArduSub开发人员测试和验证的最新稳定版本的QGC。 可能存在更新的版本,但尚未经过验证。 请自行承担风险使用主QGroundControl项目中的更新版本。
注意:Linux需要额外的GStreamer依赖项,
请参阅QGroundControl用户指南获取详细信息。
GStreamer(GNU Streamer)是一个开源的多媒体框架,用于处理音频和视频数据流。
在Linux系统中,许多多媒体应用程序和桌面环境都依赖于GStreamer。
因此,当提到在Linux中安装QGroundControl时需要额外的GStreamer依赖项时,
指的是需要安装GStreamer及其相关插件和库以支持QGroundControl在Linux上的音频和视频功能。
具体来说,GStreamer依赖项可能包括以下内容:
- 基本的GStreamer库:这些是GStreamer框架的核心库,用于处理音频和视频流。
- GStreamer插件:这些是提供额外功能的插件,例如各种编解码器(如H.264、H.265)、音频处理插件等。
- GStreamer开发包:如果需要编译其他软件或库与GStreamer集成,可能需要安装相关的开发包。
具体安装这些依赖项的方法取决于您所使用的Linux发行版。
通常可以通过包管理器(如apt、yum、dnf等)来安装这些依赖项。以下是一些常见的命令示例:
在基于Debian/Ubuntu的系统中使用apt安装:
sudo apt update
sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
在基于Fedora的系统中使用dnf安装:
sudo dnf install gstreamer1 gstreamer1-plugins-base gstreamer1-plugins-good gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free gstreamer1-plugins-ugly
请注意,具体的依赖项可能因发行版和系统版本而异。
建议查阅您所使用Linux发行版的文档或官方网站,了解如何安装GStreamer及其相关插件和开发包。
(2)文件夹结构
运行安装程序后,默认位置将安装以下文件夹:
/Documents/QGroundControl/
- CrashLogs:QGC应用程序崩溃的数据文件。
- Logs:下载的车辆日志文件(.bin)。
- Missions:下载的任务计划(.plan)。
- Parameters:保存的载具参数文件(.params)。
- Telemetry:保存的载具遥测文件(.tlog)。
- Video:录制的视频字幕文件(.mkv/.mov/.mp4和.ass)。
(3)运行应用程序
根据您的操作系统运行应用程序可执行文件。
Windows安装程序创建了3个快捷方式:
QGroundControl、GPU兼容模式、GPU安全模式。
除非您遇到启动或视频渲染问题,请使用第一个快捷方式。
有关更多信息,请参阅QGC安装/配置问题 > Windows:UI渲染/视频驱动程序问题。
三、安装协作计算机(树莓派)软件映像
原开源文档使用的是树莓派自带系统,译者准备使用ubuntu上的ROS系统
当前的协作计算机(树莓派)版本是v0.0.31。如果您的系统已过时,您可以通过以下方式之一进行更新:
1.安装新的镜像文件 2.连接到Wi-Fi并执行软件更新。
安装操作系统和支持软件的方法是将预先配置的 .img 文件写入一个至少容量为 4GB 的 microSD 卡中,然后将该卡插入 Companion 计算机(树莓派)中。
请按照以下步骤操作:
- 将一张至少容量为 4GB 的 microSD 卡插入您的地面计算机的卡片阅读器中。
- 在此处下载 Companion 的镜像文件(更新至 2021 年 11 月 30 日)。
- 在镜像文件下载的同时,下载并安装 Etcher 。确保选择适用于您操作系统的正确下载版本。
- 打开 Etcher,选择镜像文件(无需预先解压),然后选择您的 SD 卡,点击“Flash”并等待完成 .
5.将 SD 卡弹出,然后插入树莓派中。
Etcher 是一个常用的工具,用于将镜像写入 SD 卡和 USB 驱动器。它通常用于将操作系统镜像烧录到树莓派的 SD 卡上。以下是如何使用 Etcher 的简要指南:
-
下载 Etcher:访问 Etcher 网站(https://www.balena.io/etcher/),并下载适合您操作系统的版本(Windows、macOS、Linux)。
-
安装 Etcher:下载完成后,打开安装程序并按照屏幕上的说明在计算机上安装 Etcher。
-
插入 SD 卡:将 4GB 或更大容量的 microSD 卡插入计算机的 SD 卡读卡器中。
-
打开 Etcher:安装完成后启动 Etcher。如果需要,可能需要提供管理员权限。
-
选择镜像文件:在 Etcher 中点击“选择镜像”按钮,然后导航到您下载 Companion 镜像文件(.img)的位置。
-
选择目标设备:点击“选择目标”按钮,选择您插入的 microSD 卡。确保正确选择目标设备,避免意外覆盖重要数据。
-
烧录镜像:一旦选择了镜像文件和目标设备,点击“烧录!”按钮。Etcher 将开始将镜像写入 SD 卡。此过程可能需要几分钟时间。
-
弹出 SD 卡:在 Etcher 完成写入镜像后,安全地将 microSD 卡从计算机中弹出。
-
将 SD 卡插入树莓派:将 microSD 卡插入树莓派中。
-
网络设置:根据您的操作系统,按照相应的网络设置说明配置 Companion 计算机(树莓派)的网络设置。
Etcher 简化了将磁盘镜像写入存储介质的过程,广泛用于制造和爱好者社区,用于设置树莓派设备和其他嵌入式系统。
(1)网络设置
Companion计算机(树莓派)被分配了静态IP地址192.168.2.2,并且它期望上位机电脑具有IP地址192.168.2.1。在可以与ROV通信之前,需要设置上位机电脑上的网络配置。
选择下面的操作系统,显示适当的网络设置说明。
Windows Mac Linux
(2)软件更新
在继续之前,建议检查Companion计算机是否有最新的更新。
执行Companion软件更新的步骤如下:
- 将充满电的电池插入车辆,并将拖缆连接到上位机电脑。
- 在网页浏览器(如Chrome、Edge、Firefox等)中导航至192.168.2.2:2770/network,并确保车辆可以访问WiFi网络。如果在该地址找不到网页,请验证网络设置是否正确。您可以在此处找到故障排除步骤。
- 在浏览器中导航至192.168.2.2:2770/system。点击名为“Update Companion”的按钮。如果您看不到此按钮,则表示Companion软件已经是最新的。
- 更新过程将根据互联网连接速度需要花费5到20分钟不等的时间。请等待更新过程完成。
- 更新完成后,刷新浏览器。Companion版本应该已经更新,更新可用的消息将不再显示。
- 如果更新失败(通常是因为失去互联网连接),将会出现一个警告,提示车辆将重新启动,请保持电池连接。在此时,可以安全地关闭车辆电源,然后再次尝试更新。
四、安装 ArduSub固件
本文基于的是稳定版本的 ArduSub 是 v4.0.3。
如果固件已经过时,可以按照以下方法之一进行更新。
ArduSub 是存储在自主飞行控制板(pixhawk)闪存存储器上的固件二进制文件。
大致可以通过以下两种方式之一去安装(或更新)它:
- 将自主飞行控制板连接到 Companion computer ( 协作计算机 ),并执行联网操作。
- 直接通过 USB 线将控制板连接到地面计算机,使用 QGroundControl 进行连接与更新并且测试。
1. 利用协作计算机(自动安装的方式):
将 ArduSub 加载到自主飞行控制板上的步骤如下:
-
将充满电的电池插入潜航器,并将垂线连接到地面计算机(岸边电脑)。
-
在互联网浏览器(Chrome、Edge、Firefox 等)中输入网址 192.168.2.2:2770/network,并确保潜航器可以访问 WiFi 网络。如果在此地址上看不到网页,请验证网络设置是否正确。可以在此处找到故障排除步骤。
-
在浏览器中输入网址192.168.2.2:2770/system。在 Pixhawk 固件更新部分下,点击**“Stable”**按钮。
-
等待更新过程完成,然后您就完成了!
2. 用地面计算机:
在进行固件升级之前,请先将 Pixhawk 和/或无线电从 USB 上拔掉。打开QGC的固件界面之后再连接PIXhawk
- 打开 QGroundControl 并导航至 Firmware 页面。
- 将 Pixhawk 接入计算机的 USB 端口。一旦被检测到,QGroundControl 将在右侧显示一个固件选择框。
- 从下拉列表中依次选择以下选项:
- “ArduPilot Flight Stack”
- “ChibiOS”
- “Sub”
- (假设您使用的是 Pixhawk)“Pixhawk1”
(1)ChibiOS 是一个面向嵌入式系统的开源实时操作系统内核。它提供了一个轻量级、高效的操作系统解决方案,适用于各种嵌入式平台,包括微控制器和嵌入式系统。ChibiOS 的设计目标是简单、可靠且易于移植,旨在满足资源受限的嵌入式设备的要求。
(2)ChibiOS 包含了许多功能丰富的组件,例如多任务调度器、信号量、消息邮箱、事件标志和定时器等,可帮助开发人员构建稳健的嵌入式应用程序。它还支持多种体系结构和处理器架构,并提供了丰富的文档和示例代码,便于开发人员快速上手和开发。
(3)ChibiOS 适用于许多不同类型的嵌入式应用,包括工业控制、自动化、无人机、机器人、汽车电子、家用电器等领域。它的轻量级设计和灵活性使得 ChibiOS 成为许多嵌入式开发项目的理想选择之一。
- 在右上角点击“OK”按钮。
- 固件将开始上传到 Pixhawk,您会看到以下输出信息和成功消息。
- Pixhawk 将重新启动,然后会自动与 QGroundControl 连接。
补充:直接下载二进制固件到电脑文件夹里,然后通过高级设置完成。
(1)框架选择
- 前往“框架设置”页面。
- 点击与本文档中“构建车辆框架”部分中选择的对应车辆框架相符的选项。
- 重新启动车辆或自主飞行控制器,以保存框架选择并在下次启动时加载。
默认的六推进器参数仅适用于 BlueROV2 和 BlueROV2 Heavy。如果使用其他帧类型,则需要按照以下步骤手动配置参数设置
(2)完成校准
在使用 ArduSub 车辆之前,必须完成几个校准和设置步骤,以确保其正确运行。
-
操纵杆/游戏手柄校准
某些操纵杆在与 QGroundControl 一起使用之前需要进行校准。如果操纵杆需要校准,操纵杆选项卡将显示为红色,并应按照以下步骤进行校准。如果操纵杆不需要校准,则操纵杆选项卡将不会显示为红色,此步骤可以跳过。- 在左侧边栏中转到“操纵杆”页面。
- 确保“TX Mode”选择设置为 3。
- 点击“校准”选项卡,然后点击“下一步”。
- 按照 QGroundControl 中图示的步骤移动操纵杆。
- 完成后,操纵杆选项卡将不再显示为红色,且“Enabled”复选框应该已被选中。
-
按钮设置
- ArduSub 的默认按钮设置如下图所示:
传感器校准:
- 前往左侧边栏中的“传感器”选项卡。
- 点击“加速计”选项卡,并按照说明操作。
- 选择“Autopilot Orientation”为“Roll90”。
- 点击“罗盘”(Compass)选项卡,并按照说明操作。
- 点击“校准压力”(Calibrate Pressure)并等待校准完成。
- 完成后,传感器选项卡将不再显示为红色。
**配置电机方向 : **
车辆电机的旋转方向取决于车辆和电机的组装方式,因此每个电机的正反转方向必须在软件中进行配置。
首先,前往左侧边栏中的“电机”选项卡,然后按照自动(推荐)或手动配置的步骤进行操作。
在车辆上电之前,请确保所有身体部位和衣物远离推进器。
警告:在空气中不要让推进器运转超过30秒,否则会损坏塑料轴承。
自动配置
- 调整车辆的浮力,使其为中性或稍微正浮力。
- 将车辆放入水中,确保有足够的空间让它轻微移动,避免碰到墙壁或底部。确保垂线有一些松弛,以便车辆能够自由移动。
- 前往左侧边栏中的“电机”选项卡。
- 点击“自动检测方向”按钮,等待车辆完成电机方向检测过程。
- 检测过程进行时会显示结果,成功或失败会有相应提示。如果检测失败,您可以尝试重新检测,或者手动配置电机方向。
手动配置 - 前往左侧边栏中的“电机”选项卡。
- 阅读并理解设置页面上的说明。
- 点击页面上的开关,使车辆上电。
- 逐个移动每个滑块,确保根据“电机设置”页面上的说明,旋转的电机正如描述的推送空气。如果某个电机旋转方向错误,点击“反转电机方向”部分下相应的复选框,以纠正电机旋转方向。
- 完成设置后,点击开关使车辆解除上电状态。
电压和电流测量设置
- 前往左侧边栏中的“电源”选项卡。
- 在“电源传感器”部分,选择“模拟电压和电流”,并根据制造商的规格输入相应数值。
如果使用 Blue Robotics Power Sense 模块,请选择“Blue Robotics Power Sense Module R2” 作为电源传感器的配置文件。
SOS 漏水传感器设置
- 前往左侧边栏中的“安全”选项卡。
- 选择泄漏检测器插入的输出通道,并将“逻辑干燥时”设置为“低”。
设置低电压失控保护
- 在左侧边栏中的“安全”选项卡上,将电池失控保护设置为“警告”。
- 设置触发警报的期望电压或电量。请记住,您需要足够的电量返回起始点。
锂电池不应过度放电,因为这会损坏其内部化学结构。不要让每个电池单体的电压降到低于 3.0 伏特。
摄像头倾斜设置(如有需要)
- 选择左边的“摄像头”选项。
- “云台倾斜”设置用于控制摄像头的倾斜。
- 在“输出通道”中选择连接伺服舵机的通道。有效的输出通道包括未使用的主电机输出(1-8)和辅助输出 1-4(9-12)。
- 在“云台设置”底部的“类型”下,选择“伺服舵机”。
如果需要,您可以勾选“稳定”复选框,这将根据车辆的俯仰角启用摄像头的自动稳定功能(云台)。
通常我们会将其保持未勾选状态。
灯光设置
- 在“灯光”选项卡中配置灯光的输出通道。
- 选择您已经将灯光插入的输出通道,如下所示。
- 此设置仅适用于可以通过伺服 PWM 脉冲控制的灯光,例如 Blue Robotics Lumen 灯光。
(3)SD 卡格式化
在自主飞行控制器内部的 SD 卡(例如 Pixhawk)是 ArduSub 存储其数据闪存日志的位置。它应该格式化为 FAT/exFAT/FAT32 分区。如果 SD 卡损坏或使用了不同的文件系统,您应该对其进行格式化。
以下步骤将帮助您进行格式化:
-
将 SD 卡从自主飞行控制器中取出,并使用适配器将其连接到计算机上。
-
打开计算机的文件资源管理器,找到连接的 SD 卡。
-
在 SD 卡上右键单击,选择“格式化”选项。
-
在弹出的格式化对话框中,选择文件系统为 FAT32 或 exFAT(根据需要选择)。
-
确保勾选“快速格式化”选项(Quick Format)。
-
点击“开始”按钮,开始格式化 SD 卡。
-
格式化完成后,安全地将 SD 卡从计算机中弹出,并将其重新插入到自主飞行控制器中。
请确保在格式化 SD 卡之前备份其中的重要数据,因为格式化将清除所有数据并重新初始化该存储设备。
教程:
windows linux
五、首次测试使用:
在将潜航器放入水中之前,有几件事情需要检查:
- 首次潜水应选择水体浅、平静、清澈的地方进行,推荐使用游泳池或测试水槽。
- 在更受控制的环境中进行测试将提供良好的机会,可以检查潜航器的配重是否正确,并确认控制器设置正确,车辆表现如预期。
- 连接电池/电源: 为了准备好进行首次潜水,潜航器需要供电。
选择以下一种方式:
将充电充满的电池插入车辆的电源分配系统,或者
在阅读并理解制造商说明书后,打开电源。
设置顶部控制
连接以下设备到顶部计算机:
潜航器垂直线(通过适当的接口,如果有的话)
手柄
控制器功能
ArduSub 固件默认提供了以下
按钮设置:
按钮功能可以通过以下步骤重新分配:
- 转到“车辆设置”视图,然后选择“手柄”。
- “按钮分配”选项卡显示当前所有按钮的控制功能。
- 按下您想要更改的按钮。按钮编号会亮起。
- 在按钮编号右侧的下拉菜单中选择您希望按钮执行的操作。
潜水模式
在手动模式下,车辆只会根据操纵杆的输入输出电机控制。
没有反馈稳定、保持航向或保持深度的功能。
在稳定模式下,车辆会稳定横滚到水平,并在未被命令转向时保持航向。垂直控制完全由驾驶员控制。
在深度保持模式下,车辆会保持深度,除非您命令其潜水/上浮。它还会稳定横滚到水平,并在未被命令转向时保持航向。
潜水前检查列表
将车辆放在地面上,确保人员远离推进器。
检查摄像头倾斜功能和灯光是否正常工作。如果不正常,请参阅故障排除部分。
将车辆设置为手动模式。
启动 ROV。
向前/向后移动摇杆,检查矢量推进器是否自由旋转。
向上/向下移动摇杆,检查垂直推进器是否自由旋转。
解除 ROV 的启动。
启动。
所有启动
- 不要在游泳者或潜水员附近启动车辆。
- 不要在车辆接触水之前释放车辆。如有必要,使用缆绳将其放下。在放下车辆时,避免车顶接触任何硬物或尖锐物体。
- 不要在水域太浅的地方启动,确保能够自由驾驶车辆。
- 使其他船只知道车辆已经在水中。
- 在车辆进入水中并且启动器远离车辆之前,不要启动车辆。
船只启动
保持车辆和缆绳远离船只的螺旋桨或喷射装置。
确保船长知道即将启动 ROV。
岸上启动
不要在海浪汹涌的地方启动车辆。
可能需要将车辆走入水中,以达到足够深度驾驶 ROV 的地点。
操作
缆绳管理
在潜水 ArduSub 车辆时,缆绳需要进行一定的主动管理。以下是良好缆绳管理的几条准则:
如果在船上操作,请将缆绳远离