Issues in Balance Bot

Dear all,

When I test the balance bot on SITL, I notice some issues.

1. I am not sure whether this issue is come from a design decision or not. The rover does not change its flight mode after finishing a mission when MIS_DONE_BEHAVE is 0 (HOLD) or 1 (LOITER). I could not find such an issue in Rover-3.5.2.

2. After finishing mission, the rover tends to drift without input as shown in the below.


You could reproduce this issue for the following steps:
(1) ./Tools/autotest/sim_vehicle.py -v Rover -f balancebot --console -w --speedup=10
(2) upload a mission
(3) arm throttle
(4) mode auto
(5) mode RTL after the rover finishes the mission
(6) mode auto after the rover is back to the home position
(7) rover keeps drifting during AUTO mode after arriving the final waypoint.

3. When I assign a small value to LOIT_RADIUS, e.g., 0.01, the rover keeps rotating yaw angle.
You could reproduce this issue for the following steps:
(1) ./Tools/autotest/sim_vehicle.py -v Rover -f balancebot --console -w --speedup=10
(2) param set LOIT_RADIUS 0.01
(3) param set MIS_DONE_BEHAVE 1
(4) upload a mission
(5) arm throttle
(6) mode auto
(7) mode RTL after the rover finishes the mission
(8) mode auto after the rover is back to the home position
(9) rover keeps rotating heading angle after arriving the final waypoint.

Test version: 85e1569
Mission:
Logs:

  1. Drifting position: https://drive.google.com/file/d/1Cdd0kj9fMIuc6_yMCTEGLk_FCp6Su4yK/view?usp=sharing
  2. Unstable yaw: https://drive.google.com/file/d/1V3ZPxvmmvrbBEfb3djZuZ5xyt_i7VDZU/view?usp=sharing
    Mission file: https://drive.google.com/file/d/1CO6mEH5s0bt3enQWta2COSs6hbg8F5sw/view?usp=sharing

Hi @KimHyungSub,

This comes from a misunderstanding of how the Loiter and Hold are implemented. For these two options the vehicle does not actually exit Auto mode but rather implements them from within Auto mode as sub modes.

So you’ll find that if MIS_DONE_BEHAVE = Loiter that if a boat is used it will hold position after the mission ends. If the param is set at zero then it will drift.

I suspect the issue with balance bot drifting around is that it cannot “Hold” like other rovers. If it simply turns off all motors it will fall over. For this reason even Hold mode for balance bots try to remain upright and this can lead to them moving forward or backwards.

1 Like

@rmackay9
Thanks for the explanation. I didn’t know such details :slight_smile: