4 wheel steering?


Has four wheel servo steering been implemented in Ardurover? I have a 6 wheel drive, 4 wheel steering rover that I am building and I’m going to use a pixhawk in it for U-turn and Turn-In-Place steering. Also, for the 6 wheel drive motors, I am using a roboclaw 7 amp motor controller, does anyone know how I could set up the 3 position switch, say the flap switch on a DX8 which is setup as Aux1 on mine and control skid steering on a pixhawk ardurover? I have setup skid steering on the aileron and elevator channels through pixhawk. But because I have 4 wheel steering servos that must be positioned first which will also be flip switch controlled, It would be also much better to just flip switch the skid steering direction as well. For example, if I use the flap switch, the center position would be straight forward and backward using the throttle joystick, but if I flip up on the flap switch it will turn right or flap down turn left.

Here are some images and a couple short clips.

As ArduRover Developer Grant Morphett stated here on DIYD, “At the time of writing 4 wheel steering isn’t implemented.” as of December 2015 and there is no mention of 4 wheel steering in the latest ArduRover release of 3.0.0, I doubt if 4 wheel steering will be available anytime soon unless you want to develop it yourself.
3DR no longer supports the ArduPilot Developers so any updates to the ArduPilot firmware is strictly on a voluntary basis.

I’ve had a thought on this. It might be straight forward. I’m trying to get something finished but I’ll have a look later this week.
Thanks, Grant.

Thanks Grant, much appreciated.

I agree that would be very appreciated. Thank you Grant.


Sorry for the delay but the great news is this already works! Here’s how.
Plug your 2nd, 3rd and 4th steering servo’s into the pixhawk channel’s 5,6 and 7. Then set RCn_FUNCTION to 26 (ground steering) for each of those channels. So
And now when you move the steering stick you should see those servo’s move!
If they move in the wrong direction - say the one on channel 6 was moving in the wrong direction - then just reverse that channel by setting RC6_REV to -1. If its already -1 for some reason just set it to 1.
Test it out and let us know how you go.
Oh - love to see a video of this working :slight_smile:

Thanks, Grant.

Thank you Grant, I’ll try this :). In the meantime, I had already connected the 4 steering servos not to pixhawk/ardurover to control but to my rc reciever and I’ve been just using pixhawk and ardurover for just for telemetry and navigation data collection. I configured two 3 position switches on my transmitter for steering selection for turn-in-place steering since I cant use the joystick for that. I only use the joystick for forward and backward throttle and driving.

Would your solution work for not just turn-in-place steering but arc u-turns as well?

Here is a video that I used of the manual switch approach to the steering. When I try your solution, I’ll make a video as well and share. :slight_smile:


That is a good looking rover.
The settings will translate to driving the servo’s in a certain direction when you move the stick. If in some situations you would prefer the wheel to go the other way there is no way for that to happen currently.
In other words when you go to turn left or right all the wheels will turn - not just “front” ones.
Thanks, Grant.

Where do you input RCn_FUNCTION=26 ? is it somewhere in mission planner or some other developers program you have to downlaod? I am building a rover right now and will be running into the same problem.

Sorry for not saying Hi first lol. I am just getting into ardupilot and building stuff. I am building a rover with a Pixhawk and I added a servo so that it has four wheel steering. I understand coding a little bit but not that much.


That parameter can be found in the ArduRover full parameter list


Off subject, but that chassis is awesome. Home built?

Thanks for this great suggestion Gmorph.

How would one go about setting end points on the servos, as to not burn them out?

If you are using digital programmable servos, you can use a servo programmer to set the end points. Your RC transmitter can also set servo end points as well.

The only servos I know with servo programmable end points are hitec… but those are not an option as they are too loud for our application.

I understand how we can use the RC transmitter to set end points for the front steering… But I on spektrum dx7 I can’t seem to find a way to send end points for the rear steering. Is there a different remote you would suggest? Or perhaps a way to set end points within ardurover?


I use Hyperion servos extensively and they are fully programmable.
End points, speed, deadband, etc.
They are a higher quality servo and hence a bit more expensive though.