ROV与AUV开源解决方案Ardusub文档整理(二)快速上手

一、建造航行器的框架

(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:官网

  • Windows

  • Mac

  • Linux

    上述链接下载的安装程序是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 计算机(树莓派)中。

请按照以下步骤操作:

  1. 将一张至少容量为 4GB 的 microSD 卡插入您的地面计算机的卡片阅读器中。
  2. 此处下载 Companion 的镜像文件(更新至 2021 年 11 月 30 日)。
  3. 在镜像文件下载的同时,下载并安装 Etcher 。确保选择适用于您操作系统的正确下载版本。
  4. 打开 Etcher,选择镜像文件(无需预先解压),然后选择您的 SD 卡,点击“Flash”并等待完成 .
    在这里插入图片描述
    5.将 SD 卡弹出,然后插入树莓派中。

Etcher 是一个常用的工具,用于将镜像写入 SD 卡和 USB 驱动器。它通常用于将操作系统镜像烧录到树莓派的 SD 卡上。以下是如何使用 Etcher 的简要指南:

  1. 下载 Etcher:访问 Etcher 网站(https://www.balena.io/etcher/),并下载适合您操作系统的版本(Windows、macOS、Linux)。

  2. 安装 Etcher:下载完成后,打开安装程序并按照屏幕上的说明在计算机上安装 Etcher。

  3. 插入 SD 卡:将 4GB 或更大容量的 microSD 卡插入计算机的 SD 卡读卡器中。

  4. 打开 Etcher:安装完成后启动 Etcher。如果需要,可能需要提供管理员权限。

  5. 选择镜像文件:在 Etcher 中点击“选择镜像”按钮,然后导航到您下载 Companion 镜像文件(.img)的位置。

  6. 选择目标设备:点击“选择目标”按钮,选择您插入的 microSD 卡。确保正确选择目标设备,避免意外覆盖重要数据。

  7. 烧录镜像:一旦选择了镜像文件和目标设备,点击“烧录!”按钮。Etcher 将开始将镜像写入 SD 卡。此过程可能需要几分钟时间。

  8. 弹出 SD 卡:在 Etcher 完成写入镜像后,安全地将 microSD 卡从计算机中弹出。

  9. 将 SD 卡插入树莓派:将 microSD 卡插入树莓派中。

  10. 网络设置:根据您的操作系统,按照相应的网络设置说明配置 Companion 计算机(树莓派)的网络设置。

Etcher 简化了将磁盘镜像写入存储介质的过程,广泛用于制造和爱好者社区,用于设置树莓派设备和其他嵌入式系统。

(1)网络设置

Companion计算机(树莓派)被分配了静态IP地址192.168.2.2,并且它期望上位机电脑具有IP地址192.168.2.1。在可以与ROV通信之前,需要设置上位机电脑上的网络配置。
选择下面的操作系统,显示适当的网络设置说明。
Windows Mac Linux

(2)软件更新

在继续之前,建议检查Companion计算机是否有最新的更新。
执行Companion软件更新的步骤如下:

  1. 将充满电的电池插入车辆,并将拖缆连接到上位机电脑。
  2. 在网页浏览器(如Chrome、Edge、Firefox等)中导航至192.168.2.2:2770/network,并确保车辆可以访问WiFi网络。如果在该地址找不到网页,请验证网络设置是否正确。您可以在此处找到故障排除步骤。
  3. 在浏览器中导航至192.168.2.2:2770/system。点击名为“Update Companion”的按钮。如果您看不到此按钮,则表示Companion软件已经是最新的。
  4. 更新过程将根据互联网连接速度需要花费5到20分钟不等的时间。请等待更新过程完成。
  5. 更新完成后,刷新浏览器。Companion版本应该已经更新,更新可用的消息将不再显示。
  6. 如果更新失败(通常是因为失去互联网连接),将会出现一个警告,提示车辆将重新启动,请保持电池连接。在此时,可以安全地关闭车辆电源,然后再次尝试更新。

四、安装 ArduSub固件

本文基于的是稳定版本的 ArduSub 是 v4.0.3。
如果固件已经过时,可以按照以下方法之一进行更新。

ArduSub 是存储在自主飞行控制板(pixhawk)闪存存储器上的固件二进制文件。

大致可以通过以下两种方式之一去安装(或更新)它:

  1. 将自主飞行控制板连接到 Companion computer ( 协作计算机 ),并执行联网操作。
  2. 直接通过 USB 线将控制板连接到地面计算机,使用 QGroundControl 进行连接与更新并且测试。

1. 利用协作计算机(自动安装的方式):

将 ArduSub 加载到自主飞行控制板上的步骤如下:

  1. 将充满电的电池插入潜航器,并将垂线连接到地面计算机(岸边电脑)。

  2. 在互联网浏览器(Chrome、Edge、Firefox 等)中输入网址 192.168.2.2:2770/network,并确保潜航器可以访问 WiFi 网络。如果在此地址上看不到网页,请验证网络设置是否正确。可以在此处找到故障排除步骤。

  3. 在浏览器中输入网址192.168.2.2:2770/system。在 Pixhawk 固件更新部分下,点击**“Stable”**按钮。

  4. 等待更新过程完成,然后您就完成了!

2. 用地面计算机:

在进行固件升级之前,请先将 Pixhawk 和/或无线电从 USB 上拔掉。打开QGC的固件界面之后再连接PIXhawk

  1. 打开 QGroundControl 并导航至 Firmware 页面。
  2. 将 Pixhawk 接入计算机的 USB 端口。一旦被检测到,QGroundControl 将在右侧显示一个固件选择框。
  3. 从下拉列表中依次选择以下选项:
  • “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 车辆之前,必须完成几个校准和设置步骤,以确保其正确运行。

  1. 操纵杆/游戏手柄校准
    某些操纵杆在与 QGroundControl 一起使用之前需要进行校准。如果操纵杆需要校准,操纵杆选项卡将显示为红色,并应按照以下步骤进行校准。如果操纵杆不需要校准,则操纵杆选项卡将不会显示为红色,此步骤可以跳过。

    • 在左侧边栏中转到“操纵杆”页面。
    • 确保“TX Mode”选择设置为 3。
    • 点击“校准”选项卡,然后点击“下一步”。
    • 按照 QGroundControl 中图示的步骤移动操纵杆。
    • 完成后,操纵杆选项卡将不再显示为红色,且“Enabled”复选框应该已被选中。
  2. 按钮设置

    • ArduSub 的默认按钮设置如下图所示:

在这里插入图片描述
传感器校准:

  1. 前往左侧边栏中的“传感器”选项卡。
  2. 点击“加速计”选项卡,并按照说明操作。
    • 选择“Autopilot Orientation”为“Roll90”。
  3. 点击“罗盘”(Compass)选项卡,并按照说明操作。
  4. 点击“校准压力”(Calibrate Pressure)并等待校准完成。
  5. 完成后,传感器选项卡将不再显示为红色。
    在这里插入图片描述
    **配置电机方向 : **
    车辆电机的旋转方向取决于车辆和电机的组装方式,因此每个电机的正反转方向必须在软件中进行配置。

首先,前往左侧边栏中的“电机”选项卡,然后按照自动(推荐)或手动配置的步骤进行操作。

在车辆上电之前,请确保所有身体部位和衣物远离推进器。
警告:在空气中不要让推进器运转超过30秒,否则会损坏塑料轴承。

自动配置

  1. 调整车辆的浮力,使其为中性或稍微正浮力。
  2. 将车辆放入水中,确保有足够的空间让它轻微移动,避免碰到墙壁或底部。确保垂线有一些松弛,以便车辆能够自由移动。
  3. 前往左侧边栏中的“电机”选项卡。
  4. 点击“自动检测方向”按钮,等待车辆完成电机方向检测过程。
  5. 检测过程进行时会显示结果,成功或失败会有相应提示。如果检测失败,您可以尝试重新检测,或者手动配置电机方向
    在这里插入图片描述
    手动配置
  6. 前往左侧边栏中的“电机”选项卡。
  7. 阅读并理解设置页面上的说明。
  8. 点击页面上的开关,使车辆上电。
  9. 逐个移动每个滑块,确保根据“电机设置”页面上的说明,旋转的电机正如描述的推送空气。如果某个电机旋转方向错误,点击“反转电机方向”部分下相应的复选框,以纠正电机旋转方向。
  10. 完成设置后,点击开关使车辆解除上电状态。
    在这里插入图片描述

电压和电流测量设置

  • 前往左侧边栏中的“电源”选项卡。
  • 在“电源传感器”部分,选择“模拟电压和电流”,并根据制造商的规格输入相应数值。
    在这里插入图片描述

如果使用 Blue Robotics Power Sense 模块,请选择“Blue Robotics Power Sense Module R2” 作为电源传感器的配置文件。

SOS 漏水传感器设置

  • 前往左侧边栏中的“安全”选项卡。
  • 选择泄漏检测器插入的输出通道,并将“逻辑干燥时”设置为“低”。
    在这里插入图片描述
    设置低电压失控保护
  1. 在左侧边栏中的“安全”选项卡上,将电池失控保护设置为“警告”
  2. 设置触发警报的期望电压或电量。请记住,您需要足够的电量返回起始点
    在这里插入图片描述

锂电池不应过度放电,因为这会损坏其内部化学结构。不要让每个电池单体的电压降到低于 3.0 伏特

摄像头倾斜设置(如有需要)

  1. 选择左边的“摄像头”选项。
  2. “云台倾斜”设置用于控制摄像头的倾斜。
  3. 在“输出通道”中选择连接伺服舵机的通道。有效的输出通道包括未使用的主电机输出(1-8)和辅助输出 1-4(9-12)。
  4. 在“云台设置”底部的“类型”下,选择“伺服舵机”。
    在这里插入图片描述

如果需要,您可以勾选“稳定”复选框,这将根据车辆的俯仰角启用摄像头的自动稳定功能(云台)。
通常我们会将其保持未勾选状态。

灯光设置

  1. 在“灯光”选项卡中配置灯光的输出通道。
  2. 选择您已经将灯光插入的输出通道,如下所示。
  • 此设置仅适用于可以通过伺服 PWM 脉冲控制的灯光,例如 Blue Robotics Lumen 灯光。

(3)SD 卡格式化

在自主飞行控制器内部的 SD 卡(例如 Pixhawk)是 ArduSub 存储其数据闪存日志的位置。它应该格式化为 FAT/exFAT/FAT32 分区。如果 SD 卡损坏或使用了不同的文件系统,您应该对其进行格式化。

以下步骤将帮助您进行格式化:

  1. 将 SD 卡从自主飞行控制器中取出,并使用适配器将其连接到计算机上。

  2. 打开计算机的文件资源管理器,找到连接的 SD 卡。

  3. 在 SD 卡上右键单击,选择“格式化”选项。

  4. 在弹出的格式化对话框中,选择文件系统为 FAT32 或 exFAT(根据需要选择)。

  5. 确保勾选“快速格式化”选项(Quick Format)。

  6. 点击“开始”按钮,开始格式化 SD 卡。

  7. 格式化完成后,安全地将 SD 卡从计算机中弹出,并将其重新插入到自主飞行控制器中。

请确保在格式化 SD 卡之前备份其中的重要数据,因为格式化将清除所有数据并重新初始化该存储设备。

教程:
windows linux
在这里插入图片描述

五、首次测试使用:

在将潜航器放入水中之前,有几件事情需要检查:

  1. 首次潜水应选择水体浅、平静、清澈的地方进行,推荐使用游泳池或测试水槽
  2. 在更受控制的环境中进行测试将提供良好的机会,可以检查潜航器的配重是否正确,并确认控制器设置正确,车辆表现如预期。
  3. 连接电池/电源: 为了准备好进行首次潜水,潜航器需要供电。

选择以下一种方式
将充电充满的电池插入车辆的电源分配系统,或者
在阅读并理解制造商说明书后,打开电源。
设置顶部控制
连接以下设备到顶部计算机:
潜航器垂直线(通过适当的接口,如果有的话)
手柄
控制器功能
ArduSub 固件默认提供了以下在这里插入图片描述
按钮设置:
按钮功能可以通过以下步骤重新分配:

  • 转到“车辆设置”视图,然后选择“手柄”。
  • “按钮分配”选项卡显示当前所有按钮的控制功能。
  • 按下您想要更改的按钮。按钮编号会亮起。
  • 在按钮编号右侧的下拉菜单中选择您希望按钮执行的操作。

潜水模式

在手动模式下,车辆只会根据操纵杆的输入输出电机控制。
没有反馈稳定保持航向保持深度的功能。

在稳定模式下,车辆会稳定横滚到水平,并在未被命令转向时保持航向。垂直控制完全由驾驶员控制。

在深度保持模式下,车辆会保持深度,除非您命令其潜水/上浮。它还会稳定横滚到水平,并在未被命令转向时保持航向。

潜水前检查列表

将车辆放在地面上,确保人员远离推进器。
检查摄像头倾斜功能和灯光是否正常工作。如果不正常,请参阅故障排除部分。
将车辆设置为手动模式。

启动 ROV。
向前/向后移动摇杆,检查矢量推进器是否自由旋转。
向上/向下移动摇杆,检查垂直推进器是否自由旋转。
解除 ROV 的启动。

启动。

所有启动

  • 不要在游泳者或潜水员附近启动车辆。
  • 不要在车辆接触水之前释放车辆。如有必要,使用缆绳将其放下。在放下车辆时,避免车顶接触任何硬物或尖锐物体。
  • 不要在水域太浅的地方启动,确保能够自由驾驶车辆。
  • 使其他船只知道车辆已经在水中。
  • 在车辆进入水中并且启动器远离车辆之前,不要启动车辆。
    船只启动

保持车辆和缆绳远离船只的螺旋桨或喷射装置。
确保船长知道即将启动 ROV。
岸上启动

不要在海浪汹涌的地方启动车辆。
可能需要将车辆走入水中,以达到足够深度驾驶 ROV 的地点。
操作

缆绳管理

在潜水 ArduSub 车辆时,缆绳需要进行一定的主动管理。以下是良好缆绳管理的几条准则:

如果在船上操作,请将缆绳远离

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于开源软件ardusub的水下机器人ROV控制系统是一种使用开源软件ardusub来实现的水下机器人控制系统。ardusub是由ArduPilot团队开发的,是一款专门针对水下机器人设计的开源软件。这个控制系统可以用于控制ROV(Remotely Operated Vehicle)的运动和操作。 ROV是一种远程操作的水下机器人,主要用于进行工程、探测和科学研究等任务。传统的ROV控制系统往往需要自行设计和开发,而基于开源软件ardusubROV控制系统则能够大大简化ROV的开发过程。 使用ardusubROV控制系统具备以下特点和功能: 1. 硬件支持:ardusub可以与各种常见的ROV硬件设备进行兼容,如传感器、控制器、电机等。 2. 控制算法:ardusub提供了一套完整的控制算法,可以通过调整参数来实现ROV的姿态控制、运动控制和定位等功能。 3. 通信协议:ardusub支持各种通信协议,如RS485、Ethernet和CAN等,可以与上位机或其他设备进行数据交互和指令传输。 4. 自动化任务:ardusub支持编程和脚本控制,可以实现一些自动化任务,如路径规划、避障和采集数据等。 5. 用户界面:ardusub提供了一个友好的用户界面,可以实时显示ROV的状态和传感器数据,并进行手动操作和调试。 基于开源软件ardusub的水下机器人ROV控制系统具有灵活性、可扩展性和定制性,开发人员可以根据具体需求进行次开发和定制。通过使用ardusub,可以加快ROV的开发速度,降低相关成本,同时为用户提供一个稳定可靠的控制系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值