Hello!
I am making an unmanned sea glider. I want to use navigator flight controller with raspberry pi 4B and connect it with STM32 using ROS2 and MicroROS. From my understanding, utilizing ROS2 makes connecting custom PCB using MicroROS easier with any actuator/sensors.
Here is my setup
- Raspberry Pi 4 model B
- Navigator Flight Controller
- Firmware version: 4.5.1 Stable
- BlueOS version: latest d3ddd844 bluerobotics/blueos-core
Currently, I have Raspberry Pi 4B with Ubuntu 22.04 for ROS2 Humble. I manually installed BlueOS. However, when I access BlueOS through http://blueos.local/, and navigate to Autopilot Firmware, it does not recognize the board and only select SITL. How should I fix it? Is there a documentation about how to setup MicroROS from Raspberry Pi 4B with Navigator Flight Controller?
Hi @UVEECSoftware -
To clarify, STM32 and MicroROS are not relevant to BlueOS, the Navigator, and ArduPilot. Additionally, no version of ArduPilot is intended for use as a sea glider, but you can likely make use of ArduSub to achieve vehicle navigation, or develop an autopilot from scratch that uses the Navigator / BlueOS hardware.
It is worth noting that most gliders use microcontrollers, not single board computers, because they use an order of magnitude less power - and available power for a glider is critical for long duration missions! So while this hardware/software may be a good approach for a proof-of-concept prototype, it is not likely to work at the typical scale of operations…
If you’re using a Pi, the best route to install BlueOS is simply to flash your SD card with it. By installing inside a docker container in Ubuntu, you’ve blocked the system from reaching the Pi hardware without quite a lot of configuration and hassle.
Once up and running, you can install the ROS extension, or checkout this approach to using ROS2 . There is a user-made ROS2 extension, but it requires you to flash a 64bit, newer version of BlueOS in order to install, and may have some gremlins lurking as it hasn’t been tested thoroughly.
Thnak you so much @tony-white for the prompt replu!
I have flashed the 64bit, newer version of BlueOS. I have connected to my school wifi and it has internet. However, the Navigator Flight Controller still does not get recognized and only available option is SITL. How should I address this?
Hi @David_Kim
Most school WiFi networks seem to struggle with BlueOS connectivity to the cloud / github servers necessary to pull parameters. Can you load / install any extensions, or see the BlueOS versions available?
Without loading parameters in the wizard, the Autopilot process won’t initialize, so I think that’s your issue…
Hello @tony-white !
Thank you so much for the reply. You are right! It was the school Wifi that was blocking me from loading the scripts and parameters.
However, when I use my mobile hotspot to load the scripts, I am only able to load ArduRover/4.x/navlight.lua
. Is there any other script I can load? Can I make my own custom lua script and load it? I haven’t load the script yet. Once I load the script, should the navigator flight controller be able to select the board and not go into SITL mode?
Thank you so much!
David Kim
Hi @UVEECSoftware -
The navlight.lua is only required for the BlueBoat - it blinks the output according to what mode the vehicle is in, so if you don’t need that functionality no need to download it.
To use Lua scripts, simply enable the SCR parameter (under autopilot parameters), and then place scripts in the correct directory - see more information here.
For your AUV, HAUV.lua script may have some relevant tricks! I’ll have a big write up on it (and general extension development) coming soon.
If you have a Navigator, all you should need to do is install the autopilot (ArduSub or Rover) to then be able to select SITL. Note that in SITL, you won’t see input/output from the Navigator - it’s all virtual!