导航器飞行控制器问题

您好,目前,我正在使用 Navigator 飞行控制器进行水下控制。可以使用连接在 Navigator 下方的 Raspberry Pi 来编写程序并控制 Navigator 的输出吗?

或者我们需要添加外部 Pi 或 Arduino 来编写控制程序吗?或者有更好的方法来实现吗?

谢谢。

是的,直接控制 Navigator 输出是完全可行的——最好在现有的树莓派上实现,因为引入更多硬件会让事情变得更复杂!
如果您不想使用 ArduSub 自动驾驶仪,可以使用Navigator WebAssistant 扩展程序开发自己的自动驾驶仪。

它似乎可以直接在 Raspberry Pi 上运行并通过 Web 界面控制我的硬件,但我在 BlueOS Extensions 中看不到 Navigator WebAssistant。

我的版本是:
‘BlueOS 版本:tags/1.4.2-0-g0a0043f3
Bootstrap 版本:1.4.0’
设置为:
主板名称:Navigator
制造商:Blue Robotics
Mavlink 平台:navigator
固件版本:4.6.0 (STABLE)
车辆类型:Octorotor

我的设置有问题吗?还是名称(Navigator WebAssistant)被改了?还是我只能使用 BlueOS 扩展中的其他内置软件,例如 OpenVSCoder 或 Jupyter?

谢谢

你好,我也找不到这个扩展,很奇怪。在我们调查修复这个问题期间,您可以按照其 GitHub页面上的详细说明手动安装该扩展。

还值得将您的引导程序更新至最新稳定版本 1.4.2!

我们已经更新到 1.4.2 版本,但 Navigator WebAssistant 仍然没有出现。目前,我们正在使用 OpenVSCoder 编写程序,如下图所示。

image

image

每当我们运行此脚本时,Herelink 控制器就会断开连接。我们目前的假设是,来自 Herelink 的通信与我们代码中的命令冲突。可能需要暂时暂停 Herelink 的原始通信,运行我们的自定义代码,然后恢复它——根据需要重复此循环。

或者,可能是文件路径问题导致错误。

我们想问一下:这个问题最好的解决办法是什么?

谢谢 :grinning:

你好,如果您尝试使用 Navigator Web Assistant,但没有 Navigator,并且正在使用某种 Herelink 自动驾驶仪,则不支持。

总的来说,你的代码似乎接管了用于与飞行控制器通信的串行端口。这当然会阻止 BlueOS 与其通信!

请分享您的自主目标 - 通常使用带有 Navigator 和 ArduSub 或 ArduRover 的Lua 脚本是添加专门功能或自主性的最简单方法……

我可能解释得不清楚。我们使用 VSCode 的 Remote-SSH 功能连接到 Navigator 进行开发(我们在插件中找不到 Navigator Web Assistant)。然后我们将代码上传到 Navigator 以从 Herelink 控制器读取数据。这并不是说我们没有使用 Navigator。

我们最初使用 ArduSub 来控制我们的 AUV,但由于它不支持无线操纵杆控制,我们改用 ArduCopter。

我们希望通过代码接管飞行控制器的串行端口通信,因为我们希望在手动摇杆控制和自主模式之间自由切换。另外,能否使用 VSCode 向 Navigator 发送脚本来连接 Herelink(摇杆和按钮)并从中获取数据?

然而,我们不确定 QGC 或 Mission Planner 中是否有可以编写自定义代码来支持我们开发的部分。此外,QGC 或 Mission Planner 中没有我们需要的框架。我们还计划安装额外的传感器,并使用这块 Navigator 板来处理额外的控制任务。

image

您使用的是 Raspberry Pi 4 还是其他主板?它在 BlueOS 1.4.2 上似乎运行正常:
image

image
这实际上是现在可能的(它是最近添加的,目前仅在开发版本中可用)。

image
您可能误解了 Navigator 的实际含义 - 它“只是”传感器和输出的集合,并且 Navigator 本身实际上没有运行任何代码。

BlueOS 在 Raspberry Pi 上运行,如果检测到 Navigator,则可以运行自动驾驶仪固件(作为 BlueOS 中的一项服务),该固件将利用 Navigator 硬件提供的传感器和 PWM 输出。或者(例如,仅在自动驾驶仪固件 运行 时),您可以使用自己的代码或通过 Navigator WebAssistant 等扩展程序连接/直接控制 Navigator 硬件。

串行端口等是 Raspberry Pi 的一部分,可以是

  1. 由自动驾驶仪固件控制,或
  2. 由 BlueOS 的其他部分或扩展使用,如果
  3. 该端口配置为自动驾驶仪禁用(通过自动驾驶仪固件页面),或者
  4. 自动驾驶仪已完全禁用

请注意,当自动驾驶仪固件运行时,您可以使用 MAVLink 与其通信,这比与单个硬件芯片通信的方式更不直接,但仍可以提供应用程序所需的信息/控制。话虽如此,由于您不清楚自己想要实现什么,因此很难建议哪种方法真正适合您的用例。

image
这通常仅通过自动驾驶仪中的飞行模式来处理 - 即在“手动”(或类似)模式下使用操纵杆控制车辆,然后切换到“自动”模式以将完全控制权交给自动驾驶仪并允许其完成自主任务。

image
这取决于你需要与什么进行通信和控制。两者都应该允许发送自定义 MAVLink 消息,我相信 Mission Planner 也支持自定义小部件。如果相关的话,Cockpit 中也支持自定义操作(MAVLink 和/或 HTTP/JavaScript)和自定义小部件。

image
如果传感器尚不受支持,则可能需要向 ArduPilot 添加驱动程序,或者作为 BlueOS 扩展,具体取决于您希望如何集成它们以及它们是否与车辆的运动控制/状态估计相关(或者只是有用的数据有效载荷正在收集/MAVLink 不适合处理的复杂执行器)。