ArduRover Auto mode speed error & Several modification needed for ArduRover

Hello,

Recently, I successfully completed setting up my ArduRover on a 1/10 scale crawler.

Now, I’m planning to install a stereo camera and a Jetson TK1 on it.

However, I have some questions regarding the ArduRover system.

[1] Most Important Question

In the video linked below, it is shown that the “DO_CHANGE_SPEED” command in a mission will only work if the previous mission is completed successfully:

If the mission is stopped midway, the “DO_CHANGE_SPEED” command in the next mission will be ignored, even if you reboot the ArduRover, change flight modes, or upload new missions.

The only solution I found was to press the “Restart Mission” button in the Mission Planner:

I wonder if this is an intended behavior of the code, or if it’s a bug.

I was surprised because my rover ran at a very high speed even though I had wrote a new mission with a much slower speed. This led to a crash due to poor GPS accuracy combined with the high speed.

I was able to repair my rover easily, but the situation was quite confusing and unexpected.

[2] Notes on Rover Docs

https://ardupilot.org/rover/docs/savetrim.html

This page states that to set the steering trim, you should set RCx_Option to 5. However, this option is deprecated, and you should use a different option for RC settings.

[3] Notes on Rover Docs 2

https://ardupilot.org/rover/docs/rover-tuning-steering-rate.html

This page explains that to set ACRO_TURN_RATE, you should divide the gz value by 100. However, it seems that a value of “10” is more appropriate. Please refer to the video below:

[4] Lacks of Joystick Functions :

Refer to the video below

It would be beneficial to add RC Passthrough functionality or additional functions for tuning (e.g., saving steering trim, learning cruise speed).

[5] Crash check & EKF failsafe function :

Information about the Crash Check feature is hard to find for users familiar with older copter models.

Please consider adding a warning about the crash_check setting, similar to the Q_ASSIST settings for Quadplanes. If a crawler overturns, the motors will keep running unless this setting is properly configured. It might be better to enable Crash Check by default, allowing users to change the setting if it causes issues.

Additionally, when using Acro mode, if you transit from outdoors to indoors, the rover may behave erratically. Other vehicle(plane, copter) users might assume that Acro mode is not dependent on GPS, but if the GPS signal is lost, the rover doesn’t just stop and goes crazy—it may go out of control without an EKF failsafe.

some knowledgeable person famous on rover created lua script like above link(Stop rover at bad GPS Fix), Howerver, not everyone can make lua script easily. I think main code should be modified, not rely on lua scripts.

Moreover, if Acro mode is not truly manual, there is little point in using ArduRover for indoor projects. If Acro mode functions like this, I might use Manual mode all the times and implement a PID control loop on a companion computer. In this case, there’s no need for a Pixhawk, except to generate PWM or mavlink.

[6] ESC Backward motion compatibility

The WP-1040 ESC is very popular and allows for backward movement if the backward stick is engaged twice. However, it seems that Pixhawk does not support this feature.

I understand that even implementing simple functions can be challenging, and I greatly admire the ArduPilot community. If my posts comments cause any discomfort, I apologize. ArduRover is a good platform, but I would like to suggest a few modifications and report some errors. Now it is too complex for beginner.

1, I’m not sure, does it do it in the simulator too?
2. it’s just outdated documentation you can submit corrections here:

it should probably be set to 155 Set steering trim to current servo and RC now

3, it could be an error in the documentation or something has changed since it was done, @rmackay9 do you know?

4, I have opened an issue about this:

5 crash check is probably disabled by default because this is also used on boats, it would probably be bad if a boat failsafes by default when the first wave hits them.

acro mode controls the vehicle’s speed but it needs a velocity estimate, it will switch to manual throttle control when it doesn’t have an estimate. To handle this you need to use something else that can do Y axis velocity without a GPS fix like wheel encoders or optical flow.

6, I’m not sure why the ESCs with the type of reverse your talking about have never been supported, I suspect its because your never 100% sure if it’s going to brake or reverse. i suspect there are also slight differences in how the reverse is handled between escs like will it stay in reverse until it drives forward again or until the throttle is centered.

1. "does it do it in the simulator too?" 
-> Yes. SITL does the same. Sending "Mission Restart" will only reset speed.
Editing & Rewriting mission or other things will not affect the speed

2,3 . "It is just outdated documentation you can submit correctiosn here"
-> I'm not an expert in ardupilot although I have 15 years RC experience and have developed some mission planner plugins, so I would prefer an ardupilot expert to review my posts and do the action

4. "I have opened an issue about this" 
-> Thank you.

5."Crash check is probably disaplbe by default because this is also used on boats"
-> Oh, really thanks. I didn't know that.

6.I hope there will be support for reverse braking on certain type of ESCs.
if the brake type is the issue, perhaps there could be a parameter to deal with many ESC types

------------------

Because the auto formatting on this post went wrong, I formatted it as code. Sorry about that.

Thank you for your advice on using a wheel encoder or optical flow. It could be a viable solution.

However, I’m wondering why manual throttle control isn’t enabled when the rover moves into indoors from outdoors. The speed control relies on GPS velocity estimates, even it transits indoors, which can lead to crashes.