Problems with PPM and steering on APM 2.6 ROVER

This is my first time using APM:Rover.
My Rover is a tracked vehicle (tank style) and I am using:

  • APM2.6 with power module
    -Sabetooth 2x25v2 Dual Motor Controller
    -Graupner MX-22 with Jeti PPM receiver (Mode 2)

I want to control the rove using my Graupner MX-22 radio with a Jeti system.
The Jeti receiver only has a connector for PPM (no PWM at all)
I followed the instruction using the jumper on S-Input of 2/3 and connected the receiver to Input1
In mission planner I am able to do radio calibration and all stick movement work, but the assignment is wrong.
I successfully changed the RCMAP for Throttle, Roll, Pitch and Yaw (after refresh the new values are shown) but on the Radio Calibration Screen (Initial Setup) nothing changed. The RC mapping changes seams not to have any effects.

For testing reason I took my MX-20 with Graupner GR-24 receiver and connected it via servo cables (not PPM) to the APM board, changed the RCMAP setting again and checked the changes in the Radio Calibration Screen and the changes WORK.
Can it be that the RCMAP only works with PWM input not PPM???

Where can I change settings to get PPM/Channel change to work?
Sadly I cannot change the channels 1-4 on the MX-22 so I hope I get it to work on the APM.

I also have some problems to understand the skid steering settings.
I connected
Output 1 to S1 of the Sabertooth dual engine controller and
Output 3 to S2 of the Sabertooth dual engine controller
Sabertooth is set to mixing mode - S1 for forward/backwards and S2 for turning
These settings have been used by other users for the APM/Sabertooth combination.

I assume using the mixing mode means the APM gives on Output 1 a throttle signal and on Output 2 a steer signal.
But looking at the description for SKID_STEER_IN and SKID_STEER_OUT i get confused.
It says:

I have been trying all setting combinations (the both above + changing mixed mode to independent mode and back and getting the engine rotation direction right) I ended up setting both SKID_STEER_IN and OUT to 1 and using the mixed mode on the dual engine controller.
This way I am able to control the rover with just the right stick of my radio as I want, but it does not make any sense to me and also when I setup some way points and I change to Auto, the Rover is turning on the spot like a carousal or makes small circles!?
Because I do not understand why the setting I use are working for manual driving I have not really an idea where to start with the troubleshooting.
I hope someone can help me to better understand the skid settings and what I have done wrong.

Thank you
Arnie

@ArnieDownUnder,
The skid steering mode is for when you have two separate motor controllers (no mixing is involved), one for the right side and one for the left side of the rover and the ArduRover2 code does the steering/throttle mixing.
When using a mixing ESC like the Sabertooth, you do not use the ArduRover2 skid steering mode. You need to just use the standard steering and throttle outputs and connect them to the Sabertooth corresponding inputs. You should have the elevator joystick controlling the throttle channel and the aileron channel controlling the steering channel.
Since you are trying to use the APM PPM serial input, take a look at these instructions for the PX4 which only has a receiver PPM serial input: http://rover.ardupilot.com/wiki/px4-setup/
I have successfully used these wiki instructions to program the PX4 to use my aileron channel for steering and my elevator channel for throttle on a 1/16 rally chassis. Since my aileron channel is channel 1 I have my steering output on the PX4 channel 1 and the same for the throttle channel 2 is on the PX4 channel 2 output.
If you are still having problems getting your PPM receiver to work with the APM, I suggest that you start a discussion on the DIY Drones website as there are more knowledgeable members on that site at the moment.
Regards,
TCIII ArduRover2 Developer

@TCIII
Thank you for your respond.
I have been trying to change the RCMAP settings, but no luck.
I read the instruction for the PX4 and it is the way I have done it.
The changed values are stored on the APM2.6 but they don’t have any effect!
I tried the PPM receiver as well as a PWM receiver. In both cases, values are stored but they are not taking in account.
I also uploaded the ArduPlane software and tired to do it again - same resault.
Can you confirm this problem?

The only way for me to get the right stick to control the throttle and roll is to change the pins on the receiver using the PWM setup.
Here is my configuration:
Receiver (GR-24 / radio mode 2) -> APM2.6
ch1 - left stick up/down -> input 2 (want to use later for gimbal tilt control)
ch2 - right stick left right (roll) -> input 1
ch3 - right stick up/down (throttle) -> input 3
ch4 - left stick left/right -> not connected
ch5 - mode switch -> input 5
ch6 - learning switch -> input 6

Full Parameter list (APM2.6)
RCMAP_PITCH =2
RCMAP_ROLL =1
RCMAP_THROTTLE =3
RCMAP_YAW =4
Here I tried to swap the value for roll and throttle - changes saved but still no change in control!
BUT i can change the setting for the switch assignment - I using ch5 for mode switch (default 8) and ch6 for learning switch (default 7).
Anyway - using these settings gives me control of the rover using just the right stick.

STEERING:
I have been able to get the rover running very nice and responsive using the following settings:
Roll reversed in MP
SKID_STEER_IN 0
SKID_STEER_OUT 0
As you said, when using the Sabertooth controller in mixing mode the above values should be 0.
That means if I understand this correct:
Output 1 - steering (roll /apm ch1 / radio ch2 - right stick left right) connected to S1 on the controller
Output 3 - throttle (throttle / apm ch3 / radio ch3 - right stick up/down) connected to S2 on the controller
With these setting the manual mode is great but auto mode the rover drives not stright is goes radically left right left right like the tail of a duck when walking and he goes around in circles, changing directions but not following the waypoints.

On the Forum I found the post Sabertooth 2x60 setup & configuration
Ben described exactly the behavior of my rover:

[quote]When I setup some waypoints, upload them, and put the rover in auto, it starts off left-right-left-right erratically then smooths out.
It will sometimes eventually get to a way point but gets there in a very round about way taking really wide sweeping turns. Sometimes just goes around in a wide circle.[/quote]

He was able to fix this behaviour by changing the “D” to zero on the heading2steer and servo2steer parameters.
But I cannot find these parameters in the full parameter list?
I also recognized that on the APM:Rover Pids screen the section for Heading 2 steer is missing.
I think it has to do with the changes to the code for Ardurover2.43 am I right?

Here are my settings I got together by using the instruction of Tuning steering and navigation for a Rover:
• STEER2SRV_P = 0.100
• TURN_MAX_G = 2
• NAVL1_PERIOD = 6
• SPEED_TURN_GAIN = 100
• CRUISE_SPEED = 2
• CRUISE_THROTTLE = 50.

I also tried to set Seer 2 Servo D=0, changed L1 Control - Turn Control from 1 to 60 without any recognizable changes. L1 Damping changes also didn’t do much for me.
To make sure that the compass or gps is the reason why the rover acts so badly I disabled/ enabled them but the didn’t make a different to the duck walk style.

Next I tried to activate the skid_steer_in / out to see if this solves the duck walk.
I set the engine controller to independent mode (S1 for left / S2 for right)
skid_steer_in =1 skid_steer_out =1 -> throttle controls right skid, roll left skit
skid_steer_in =1 skid_steer_out =0 -> not working, control is there but not useful
skid_steer_in =0 skid_steer_out =1-> good control when driving forwards, backwards - nothing. When using just full roll, left or right it turn nearly on spot. Center of rotation is about 2cm left of the APM board for full left AND right.
None of the above skid setting are any good to control the rover.

BUT NOW!!!
I wanted to go back to the old settings and I set the controller back to mixing mode but i forgot to change back skid_steer_in and out to 0
Guess what! The rover dives perfectly in Manual AND auto mode - no duck walk anymore.
In auto mode the rover drives straight.
This confuses me, I thought setting skid_steer
to 1 means output1 left engine and output2 right engine but having the sabertooth in mixing mode he things he get on S1 steering and S2 thottle.
So how can this work?
But it getting better.
Before the latest setting the rover did his duck walk in auto mode but at least he was following roughly the waypoints and event stop at the end.
Now the rover drives great but with a mind of his own. He takes of and would disappear into the distance if I wouldn’t stop him. Putting him in RTL doesn’t work either.
I disabled compass - no good
I disabled GPS - no good either
I came across the setting COMPASS_ORIENT where you can set the orientation of the external compass in relation to the apm board. This value is set to 8 (roll180)!?
Because the apm board and the compass both pointing in the same direction I tried value 0:none.
It changed the rover behavior but still doesn’t follow the way points.
Right know I have no idea anymore what to do.
I hope you have some input for me

Thanks
Arnie

I have attached a few images of my rover
[attachment=2]IMG_0427_resize.JPG[/attachment]
[attachment=1]IMG_0428_resize.JPG[/attachment]
[attachment=0]IMG_0429_resize.JPG[/attachment]

1 Like

@ArnieDownUnder,
Nice skid steering chassis! Did you build it yourself or did it come in kit form?
I have sent our programmer, Tridge, a pm detailing your issues with the skid steering and we will discuss them at our Sunday evening ArdurRover2 code hacking meeting.
Regards,
TCIII ArduRover2 Developer

@TCIII
The chassis is form aliexpress the china eaby.
http://www.aliexpress.com/wholesale?SearchText=tank+chassies&catId=&initiative_id=SB_20131122165707&isPremium=y
Came as it is, but as you would expect from china - cheap and low quality.
But I use this model to setup/check the functionality of ArduPilot to make sure it all going to work before I get the full size version. I found the company called SuperDroid Robots. I very much like the HD / LT platforms.
http://www.superdroidrobots.com/shop/category.aspx/treaded-robot-kits/73/

Anyway first I have to get it all to work.
I have been reading my last post again and I am not sue it it came out clear about the settings that are working for good steering/throttle control in manual and auto mode:
skid_steer_in =1
skid_steer_out =1
and Sabertooth Dual engine controller set to mixed mode
Anymore information I can give you, let me know.

Arnie

@Arnie,
The Sabertooth dual motor speed controller can work in a number of different modes.

When used in the R/C mode, with mixing, the Sabertooth will do the necessary skid steering mixing so you do not have to have the APM in the skid steering mode.
You need to turnoff the APM skid steering mode and use the APM steering (Chl 1) and the APM throttle (Chl 2) as the inputs to the Sabertooth motor speed controller in the mixing mode.

I have done this with a Sabertooth 2X12 dual motor speed controller and it works fine. I have the elevator joystick as the throttle and the aileron joystick as the steering. The Sabertooth will mix the steering and throttle inputs and provide the correct skid steering outputs to the motors.

I do believe that the Sabertooth manual is incorrect as to which channel the steering and throttle inputs should be on. If I remember correctly I had to reverse the throttle and steering inputs to the Sabertooth from what they describe in the manual.
Regards,
TCIII ArduRover2 Developer