BlueBoat. Navigator library. Configuration and SW issues

Hello!

We have several BlueRobotics’ vehicles in our lab, including the BlueRov2. Recently, we acquired the BlueBoat, but we were unable to run it properly using ROS/ROS 2. Though we were able to calibrate the robot using the default software, we couldn’t connect it to ROS. We could only spin the motor using BlueOS or QGroundControl.

Instead, we tried running Navigator_lib, but it didn’t work. We ran the example program in Python and C++ but the results were the same. We found out that the library is written in Rust, and calling the init() function (from C++ or Python) resulted in the system going into panic mode (buzzer ON). We were able to read certain sensor values using the sample program, but calling init() made the system panic.

navigator-lib

We tried running the program with the RUST_BACKTRACE flag to see if any error messages were generated. The image below indicates that we are unable to access the magnetometer. We tried disabling the magnetometer, but there is no such option in the system parameters.

We followed the recommendations to fix the issue, but it didn’t help.

Panic_issue

Finally, we decided to upgrade the system to the latest version (flush SD card with Raspbian and BlueOS). However, after upgrading, we had to adjust the Radio device (it was working fine with the default software) - we can not do it now.

We don’t have the necessary device at the moment to adjust the Radio, so we’re not sure what is causing the issue. We tried adjusting several parameters to disable Radio channels, but it didn’t work.

We would appreciate any help or support to resolve these issues.

We are also curious to know which version of the system is the right one for this vehicle.

Thanks,
Markus

Hi @markusbuchholz ,

The Navigator libraries establish direct communication with the hardware, but may have issues if the autopilot is active. Have you disabled the autopilot to use the navigator library?

For this, you can enable pirate mode, which will enable the “stop” function in the same window you provided. Alternatively, you can switch the boart to use SITL instead of the navigator.
image

With this, the functions executed from the libraries should work, the init() should work without interference.

Regarding the noise issue, probably is the motor drivers. If the boat was initialized with autopilot, or if it configured the PWM IC, they would have a value corresponding to the stopped position. On the other hand, the navigator library initiates the IC with a default value of 0, and if the motor driver was initiallized before, it will buzz to warn that loses the communication. You can try to just reboot the system with autopilot disabled.

Please verify if these steps resolve the issue.

1 Like

Hi @RaulTrombin

I really appreciate your reply and support. After debugging, we found (today) a straightforward solution. We just uploaded the latest (recommended) software from the link provided by @tony-white
(solution is at the end of the post)

solution

Everything seems to be working well so far.

We need to run BlueBoat from ROS as the other vehicles we have, and the software available here can make this happen.

bluerov_ros_playground

The noise you mentioned was not related to the motor but rather ignited by SW, which tried to access some HW. We first tried the Navigator lib.

navigator-lib

Thanks, and good luck!