Rover with 4 DC motors

I’m trying to build a rover with 4 DC motors (they have encoders and omni wheels, it’s this setup :
I’ve tried using a beaglebone blue but have given up as I’ve never managed to make ardurover work with it, so now I’m trying with a pixhawk 2.4 .
If I’m understanding correctly, I will have to purchase four brushed ESC ? Are there motor controllers that also work and are recommended? (I have lots of motor controllers for arduino/esp32).
Thank you!

There are a number of DC motor controllers supported:

If you are already setup to drive the motors with Arduino, then there is nothing stopping you from implementing your own ‘brushed ESC’ by reading the RC output from the Pixhawk on the arduino and controlling the motors accordingly…

Hmm, so I could have an arduino/esp32 read from pixhawk and controlling the motors that way? I think I’m going to explore that avenue as I have a microcontroller and a motor hat that allows me to control 4 DCs at one.

How are you looking to set them up? I use the Sabertooth 2x32 With the motors wired in parallel on LH and RH side for skid steering.

This is my basic setup, the sabertooth is great controller with tons of options but not the cheapest.

The car itself is this :

Now, I have millions of arduino/esp32/microcontroller things laying around, but not many I think are compatible directly with pixhawk? I saw that sabertooth controller and it was about 60€ which would be ok for me, but I don’t know if I need 4 independent controls for the wheels (specially for them to turn using the omni thing sideways)

Yeah, I think I need 4 wheel independent control to do the sideway move thinggie.

You do need 4 independent outputs for Omni vehicles. I use brushed ESC’s sold for RC Trucks in Rovers but you would need 4. Hobywing made a dual unit, not sure if they still do. The price is right, they are compact and many of them are waterproof. About the only thing you don’t get is regen but at the Hobby level I have not seen a real use case for that. I have damaged a lot of parts in the powertrain of a couple of Rovers from abuse but one of these ESC’s has yet to fail.

1 Like

Keep in mind that sideways driving only works in manual mode for now. In all other modes your rover will behave like a skid steering vehicle.
There are 3s capable brushed ESCs for under 20€. But you must make sure to get ESCs that can be programmed to Forward/Reverse operation. Standard for most RC cars is Forward/Brake/Reverse and that will not work for a omni or skid steering rover.

1 Like

That’s a good point! The Hobbywing ESC I had in my last Rover does have that configuration setting:

Three running modes: Fwd./Br, Fwd./Rev/Br and Fwd./Rev, fits for various vehicles (Fwd. =Forward, Br=Brake, Rev=Reverse)

Thank you very much for the info!
Yes, the omni driving would be for manual mode! I’m just trying different things, it’s a project without a clear defined goal, just for fun :stuck_out_tongue: So I need either 4 ESC or 2 motor drivers (dual ones I guess) for independent wheel control! A little bit more expensive than I hoped !

If this meets your current (amps) requirement it’s pretty economical:

Actually this dual ESC does not have independant control of both outputs so not suitable an Omni vehicle.

It does, thank you (as long as I can have two of them with pixhawk). I’ll try and find it in a EU store!

Actually these ESC’s will not work for you. It’s 2 outputs with one input so they are actually not independent. I came across this trying to find out if it required a programming box to change drive modes. Sorry for the bad lead!

Back to the search then :stuck_out_tongue: Would it be possible to connect my pixhawk to a microcontroller and have the controller command the 4 wheels, and still have access to the features of ardupilot (for example autonomous drive)?

Yes this is what I was referring to. On your mcu you can read individual channels or all channels via SBus/PPM. You can then output whatever is necessary to drive the attached motors as commanded. In this fashion the motors should respond exactly as expected by the Pixhawk and you will not loose any functionality at all.

Ardurover supports a wide variety of motor controllers. It should not be necessary to use any mcu in between. What kind of motor controller do you use with your microcontrollers?

I’ll look into this. Sbus I know that has an inverted signal that my mcus can’t read (directly)

I have some that I usually use with arduino/esp32/raspberry. The one I’m thinking about using right now would be the adafruit DC motor + stepper featherwing (this one particullary because it can control 4 DC)

I think it would be RC transmitter -> RC receiver -> pixhawk -> mcu -> motor controller (via i2c) -> DC motor

You’re talking about motor controllers that would take the pixhawk output directly and transmit directly to the motor (working as ESC).

Sorry if it’s confusing but I’m just starting out, not really a technology guy, I’m actually a veterinarian ahah.

That is unfortunate (the i2c part, not the veterinarian :slight_smile: ). I2C and UART motor controllers are not yet supported by ardupilot. There are cheap RC car ESCs on amazon for example, but most of them lack documention and product description. I use four 7.4 Volt 10A ESCs I bought there in my mecanum rover. Not long ago, I would have recommended looking around at, but they have shrinked their product portfolio to almost non existant, at least for the parts I am interested in.
One ESC I found is the Hobbywing Quicrun 60A brushed. It runs on 3S and should be available from different vendors.

1 Like

I have found the Hobbywing ESC’s to be reliable and hard to kill. I have used the Quicrun and Xerun (sensored) series.