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.
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.
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.
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.
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.
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)