Introduction to Ardurover Code Base?

Hi All,

I am in the process of putting together my first Ardurover. I plan to use some fixed mixing of servos initially but ultimately want to create a new model type. Other than downloading to code and having a look - which I will do - are there any high level introductions to the layout of the ArduRover firmware code base?

Thanks!

Not a huge amount on Rover, but a little.

https://ardupilot.org/dev/docs/rover-adding-a-new-drive-mode.html

2 Likes

Great thats a good start and saves me some digging!

I’m presuming its reasonably straight forward to set up the ardurover as a servo mixer and logger? In other words manual driving with the ardurover mapping the requested steering channel signal to a number of output channels and similar for the throttle?

I recommend you take a look at how walking robot support works. This requires no changes to the firmware, all the mixing is done in a lua script loaded on the SD card.

1 Like

That make sense, thanks.

My ultimate aims involve using ArduPilot, or specifically Ardusub in support of some project work. I presume time in ArduRover won’t be a completely wasted learning curve? Without a deep lake in walking distance a rover seemed a logical and cheeper firat step!

Much of a tme penalty from usin the scripts? May be a good option for initial tests, but this will ultimately be a very dynamic rover.

not really, To doing lots of stuff in scripting or very fast you need a H7 flight controller.

1 Like

While I’m on the beginner side of the fence I’ve just gone for a cheap 2.4.8 clone for entry into the field. Thought the initial experimentation would give me more knowledge to base the selection of a more expensive controller later on.

Hello again!

I’ve finally got the proposal submitted that will require some ardupilot work so I can now drop back to the pre-project experimentation!

So as standard channel 1 and 3 are setup as steering and throttle. Do I understand the lua idea correctly that I could disconnect this binding and use Lua scripts to read the control signals from the controller or transmitter if in manual mode and then translate them to individual channel commands? If so that sounds like this sand box will be very useful. My development stages would be something like:

  • Steering and throttle both duplicated to two output channels.
  • Second two steering channels added for rear wheel mirrored to first.
  • A simple equation to vary left and right side throttle to pair with requested steering and throttle values.
  • Something similar to above to mimic Ackermann steering geometries
    etc…

It would seem that getting something sorted in Lua would be best before attempting to create a new Rover frame?

You can do both of anyway with the servo output params.

This you can do in lua, quite straight forward.

Yes, fair point on the servo output params.

I will go do some fiddling before coming back with more questions on that!

As a slight aside but not worth opening a new topic I attached two servos to outputs 1 & 3 and a pack of 4 double AAs (checked & less than 5.7V) across a servo + & - and the motion of the throttle servo looked rough and slow compared to the steering. Is it safe to assume this is just a power issue and not to come back with more questions until I’ve fed a decent power to the servos? The set up is a completely vanilla rover install.