Running SITL with Boat Firmware

Raspberry Pi 4 - raspbian11
BlueOS V1.4.0-beta.17
ArduRover V4.5.7
FlightController Navigator
Vehicle type - Surface Boat

My setup was as follows:

  1. change board to SITL
  2. download firmware 4.5.7
  3. reset all parameters in vehicle setup (blue os pages)
  4. set SITL params
  5. calibrated accelerameter (get past arming check)
  6. set SIM_SPEEDUP to 1 (get past thread stuck failure)
  7. SIM_WIND_SPD to 0 ( it was moving pretty fast on its own before touching anything)

Currently I cant seem to drive it very well using cockpit or QGC. I don’t know if I am missing something else in this setup. Even setting a Guided mode and a station point seems to behave very oddly.

Hi @rtcsl -
Is there a reason you’re not running the latest stable version, 1.4.2, which is newer than the beta version you’re running? That may be responsible for your issues… please try after updating?

After resetting parameters, did you load the default parameters for the BlueBoat? It should not be necessary to calibrate any sensors in SITL…

For clarity - the Navigator isn’t actually “running” any code - it only hosts external sensors. When running SITL, or standard firmware, the autopilot code is running on the Raspberry Pi CPU.

Noting that if the calibration parameters are set to zero then SITL will complain in the same way a normal autopilot firmware build would, it’s just that where you would normally need to calibrate the relevant sensor, the solution for SITL is to change those parameters to small non-zero values (which should typically happen in default parameter sets, if they are made for SITL, and I believe that includes the “firmware defaults” that SITL comes with).

Sorry about the title, I realize that does sound funny now. I attempted to fix that.

My assumption was that after setting the board to SITL and downloading the corresponding firmware, I needed to reset the parameters to firmware defaults (step 3 above). Is that not the case?

When would I need to use the SITL.params button. I assumed we needed to set these as well to ensure the right adjustments were made for running the board as a simulator.

What are the right steps to get this run as expected?

We initially tried running the ardupilot simulator on a standalone Linux desktop but we were reminded we could do this directly on our boat hardware (pi+nav hat).

I assumed that I needed to “reset all parameters” to firmware defaults would set most of values to a known state, then Loading Recommended Parameters sets would adjust all required setting to run as SITL.

What are the right steps to get SITL to work as expected ?

Hi @rtcsl -
Loading the default BlueBoat parameters is a necessary step - reset of all parameters should not have been necessary.
There is an existing relevant issue - to fix, go to the Available Services page, and click the web link for Autopilot Manager v2.0 docs at the far right column. On the page that loads, under /sitl_frame change the frame type to motorboat and Execute:

Everything should work normally from there! Sorry for the hassle, we’ll have a guide for this soon.

1 Like