Wheelchair drone doing psychotic dance moves when hunting for waypoint..The wheels may fly off!

This is my first Pixhawk build.

Pretty much have a Jazzy wheelchair subframe set up in skid steer.

Using a 2x32 Dimension Engineering ESC in "independent channel" mode.

Using a low cost 6 channel E-Sky radio and receiver.

I can successfully drive the rover around with the RC controller....sweet!!

BUT...today I attempted my first autonomous test.....FAIL :(

I set up a very simple Home to Waypoint #1 scenario and switched to Auto mode.

The rover turns to face the way-point but when it should begin forward motion it just oscillates Left and Right. It will continue this indefinitely. I then take it out of Auto mode, manually reposition the drone and if I go back to Auto it will turn the vehicle in the exact same manner as before and just oscillate.It oscialltes less than an inch in very rapid succession.

Running version 2.49 of Rover.....Should I roll back to an earlier version?.

Any parameters that I should be looking to tweak?

Thanks for the help.

Views: 719

Replies to This Discussion

@Daniel,

How about providing a file of your full parameter list so we can help resolve your issue?

Regards,

TCIII AVD

Okay no problem.

File attached.

Thanks.

For future reference should I post the actual parameters in-line or is it better to just attach the actual file?

Attachments:

#NOTE: 5/12/2015 9:48:08 PM Frame :
AHRS_COMP_BETA,0.1
AHRS_EKF_USE,0
AHRS_GPS_GAIN,1
AHRS_GPS_MINSATS,6
AHRS_GPS_USE,1
AHRS_ORIENTATION,0
AHRS_RP_P,0.2
AHRS_TRIM_X,0
AHRS_TRIM_Y,0
AHRS_TRIM_Z,0
AHRS_WIND_MAX,0
AHRS_YAW_P,0.2
AUTO_KICKSTART,0
AUTO_TRIGGER_PIN,-1
BATT_AMP_OFFSET,2
BATT_AMP_PERVOLT,18.0018
BATT_CAPACITY,2200
BATT_CURR_PIN,3
BATT_MONITOR,4
BATT_VOLT_MULT,10.2
BATT_VOLT_PIN,2
BATT2_AMP_OFFSET,0
BATT2_AMP_PERVOL,17
BATT2_CAPACITY,3300
BATT2_CURR_PIN,3
BATT2_MONITOR,0
BATT2_VOLT_MULT,10.1
BATT2_VOLT_PIN,2
BRAKING_PERCENT,0
BRAKING_SPEEDERR,3
BRD_PWM_COUNT,4
BRD_SAFETYENABLE,1
BRD_SBUS_OUT,0
BRD_SER1_RTSCTS,2
BRD_SER2_RTSCTS,2
CAM_DURATION,10
CAM_SERVO_OFF,1100
CAM_SERVO_ON,1300
CAM_TRIGG_DIST,0
CAM_TRIGG_TYPE,0
CH7_OPTION,1
COMPASS_AUTODEC,1
COMPASS_DEC,0
COMPASS_DEV_ID,73225
COMPASS_DEV_ID2,131594
COMPASS_DEV_ID3,0
COMPASS_EXTERN2,0
COMPASS_EXTERN3,0
COMPASS_EXTERNAL,1
COMPASS_LEARN,1
COMPASS_MOT_X,0
COMPASS_MOT_Y,0
COMPASS_MOT_Z,0
COMPASS_MOT2_X,0
COMPASS_MOT2_Y,0
COMPASS_MOT2_Z,0
COMPASS_MOT3_X,0
COMPASS_MOT3_Y,0
COMPASS_MOT3_Z,0
COMPASS_MOTCT,0
COMPASS_OFS_X,38.40076
COMPASS_OFS_Y,-162.9169
COMPASS_OFS_Z,30.31838
COMPASS_OFS2_X,-58.46968
COMPASS_OFS2_Y,4.145552
COMPASS_OFS2_Z,-597.7983
COMPASS_OFS3_X,0
COMPASS_OFS3_Y,0
COMPASS_OFS3_Z,0
COMPASS_ORIENT,0
COMPASS_ORIENT2,0
COMPASS_ORIENT3,0
COMPASS_PRIMARY,0
COMPASS_USE,1
COMPASS_USE2,1
COMPASS_USE3,1
CRUISE_SPEED,2.5
CRUISE_THROTTLE,30
EKF_ABIAS_PNOISE,0.0002
EKF_ACC_PNOISE,0.25
EKF_ALT_NOISE,1
EKF_EAS_GATE,10
EKF_EAS_NOISE,1.4
EKF_FALLBACK,1
EKF_FLOW_DELAY,25
EKF_FLOW_GATE,5
EKF_FLOW_NOISE,0.15
EKF_GBIAS_PNOISE,1E-06
EKF_GLITCH_ACCEL,150
EKF_GLITCH_RAD,15
EKF_GND_GRADIENT,2
EKF_GPS_TYPE,0
EKF_GYRO_PNOISE,0.015
EKF_HGT_GATE,10
EKF_MAG_CAL,1
EKF_MAG_GATE,3
EKF_MAG_NOISE,0.05
EKF_MAGB_PNOISE,0.0003
EKF_MAGE_PNOISE,0.0003
EKF_MAX_FLOW,2.5
EKF_POS_DELAY,220
EKF_POS_GATE,10
EKF_POSNE_NOISE,0.5
EKF_RNG_GATE,5
EKF_VEL_DELAY,220
EKF_VEL_GATE,6
EKF_VELD_NOISE,0.7
EKF_VELNE_NOISE,0.5
EKF_WIND_PNOISE,0.1
EKF_WIND_PSCALE,0.5
FORMAT_VERSION,16
FS_ACTION,2
FS_GCS_ENABLE,0
FS_THR_ENABLE,1
FS_THR_VALUE,910
FS_TIMEOUT,5
GND_ABS_PRESS,101758.1
GND_ALT_OFFSET,0
GND_TEMP,29.54821
GPS_AUTO_SWITCH,1
GPS_MIN_DGPS,100
GPS_MIN_ELEV,-100
GPS_NAVFILTER,8
GPS_SBAS_MODE,2
GPS_TYPE,1
GPS_TYPE2,0
INITIAL_MODE,0
INS_ACC2OFFS_X,0
INS_ACC2OFFS_Y,0
INS_ACC2OFFS_Z,0
INS_ACC2SCAL_X,1
INS_ACC2SCAL_Y,1
INS_ACC2SCAL_Z,1
INS_ACC3OFFS_X,0
INS_ACC3OFFS_Y,0
INS_ACC3OFFS_Z,0
INS_ACC3SCAL_X,0
INS_ACC3SCAL_Y,0
INS_ACC3SCAL_Z,0
INS_ACCOFFS_X,0
INS_ACCOFFS_Y,0
INS_ACCOFFS_Z,0
INS_ACCSCAL_X,1
INS_ACCSCAL_Y,1
INS_ACCSCAL_Z,1
INS_GYR2OFFS_X,-0.005661437
INS_GYR2OFFS_Y,-0.03558189
INS_GYR2OFFS_Z,0.01222242
INS_GYR3OFFS_X,0
INS_GYR3OFFS_Y,0
INS_GYR3OFFS_Z,0
INS_GYROFFS_X,-0.003027781
INS_GYROFFS_Y,0.01662399
INS_GYROFFS_Z,0.01078254
INS_MPU6K_FILTER,5
INS_PRODUCT_ID,5
LEARN_CH,7
LOG_BITMASK,65535
MAG_ENABLE,1
MIS_RESTART,0
MIS_TOTAL,3
MNT_ANGMAX_PAN,4500
MNT_ANGMAX_ROL,4500
MNT_ANGMAX_TIL,4500
MNT_ANGMIN_PAN,-4500
MNT_ANGMIN_ROL,-4500
MNT_ANGMIN_TIL,-4500
MNT_DEFLT_MODE,3
MNT_JSTICK_SPD,0
MNT_LEAD_PTCH,0
MNT_LEAD_RLL,0
MNT_NEUTRAL_X,0
MNT_NEUTRAL_Y,0
MNT_NEUTRAL_Z,0
MNT_RC_IN_PAN,0
MNT_RC_IN_ROLL,0
MNT_RC_IN_TILT,0
MNT_RETRACT_X,0
MNT_RETRACT_Y,0
MNT_RETRACT_Z,0
MNT_STAB_PAN,0
MNT_STAB_ROLL,0
MNT_STAB_TILT,0
MNT_TYPE,0
MODE_CH,8
MODE1,10
MODE2,10
MODE3,2
MODE4,2
MODE5,0
MODE6,0
NAVL1_DAMPING,0.75
NAVL1_PERIOD,8
PIVOT_TURN_ANGLE,30
RC1_DZ,30
RC1_MAX,1900
RC1_MIN,1100
RC1_REV,1
RC1_TRIM,1500
RC10_DZ,0
RC10_FUNCTION,0
RC10_MAX,1900
RC10_MIN,1100
RC10_REV,1
RC10_TRIM,1500
RC11_DZ,0
RC11_FUNCTION,0
RC11_MAX,1900
RC11_MIN,1100
RC11_REV,1
RC11_TRIM,1500
RC12_DZ,0
RC12_FUNCTION,0
RC12_MAX,1900
RC12_MIN,1100
RC12_REV,1
RC12_TRIM,1500
RC13_DZ,0
RC13_FUNCTION,0
RC13_MAX,1900
RC13_MIN,1100
RC13_REV,1
RC13_TRIM,1500
RC14_DZ,0
RC14_FUNCTION,0
RC14_MAX,1900
RC14_MIN,1100
RC14_REV,1
RC14_TRIM,1500
RC2_DZ,0
RC2_FUNCTION,0
RC2_MAX,1900
RC2_MIN,1100
RC2_REV,1
RC2_TRIM,1500
RC3_DZ,30
RC3_MAX,1900
RC3_MIN,1100
RC3_REV,1
RC3_TRIM,1500
RC4_DZ,0
RC4_FUNCTION,0
RC4_MAX,1900
RC4_MIN,1100
RC4_REV,1
RC4_TRIM,1500
RC5_DZ,0
RC5_FUNCTION,0
RC5_MAX,1900
RC5_MIN,1100
RC5_REV,1
RC5_TRIM,1500
RC6_DZ,0
RC6_FUNCTION,0
RC6_MAX,1900
RC6_MIN,1100
RC6_REV,1
RC6_TRIM,1500
RC7_DZ,0
RC7_FUNCTION,0
RC7_MAX,1900
RC7_MIN,1100
RC7_REV,1
RC7_TRIM,1500
RC8_DZ,0
RC8_FUNCTION,0
RC8_MAX,1900
RC8_MIN,1100
RC8_REV,1
RC8_TRIM,1500
RC9_DZ,0
RC9_FUNCTION,0
RC9_MAX,1900
RC9_MIN,1100
RC9_REV,1
RC9_TRIM,1500
RCMAP_PITCH,2
RCMAP_ROLL,1
RCMAP_THROTTLE,3
RCMAP_YAW,4
RELAY_DEFAULT,0
RELAY_PIN,54
RELAY_PIN2,55
RELAY_PIN3,-1
RELAY_PIN4,-1
RNGFND_DEBOUNCE,2
RNGFND_FUNCTION,0
RNGFND_MAX_CM,700
RNGFND_MIN_CM,20
RNGFND_OFFSET,0
RNGFND_PIN,-1
RNGFND_PWRRNG,0
RNGFND_RMETRIC,1
RNGFND_SCALING,3
RNGFND_SETTLE,0
RNGFND_STOP_PIN,-1
RNGFND_TRIGGR_CM,100
RNGFND_TURN_ANGL,45
RNGFND_TURN_TIME,1
RNGFND_TYPE,0
RNGFND2_FUNCTION,0
RNGFND2_MAX_CM,700
RNGFND2_MIN_CM,20
RNGFND2_OFFSET,0
RNGFND2_PIN,-1
RNGFND2_RMETRIC,1
RNGFND2_SCALING,3
RNGFND2_SETTLE,0
RNGFND2_STOP_PIN,-1
RNGFND2_TYPE,0
RSSI_PIN,-1
RST_SWITCH_CH,0
SCHED_DEBUG,0
SERIAL0_BAUD,115
SERIAL1_BAUD,57
SERIAL1_PROTOCOL,1
SERIAL2_BAUD,57
SERIAL2_PROTOCOL,2
SERIAL3_BAUD,38
SERIAL3_PROTOCOL,5
SERIAL4_BAUD,38
SERIAL4_PROTOCOL,6
SKID_STEER_IN,0
SKID_STEER_OUT,1
SKIP_GYRO_CAL,0
SPEED_TURN_DIST,2
SPEED_TURN_GAIN,50
SPEED2THR_D,0.2
SPEED2THR_I,0.2
SPEED2THR_IMAX,4000
SPEED2THR_P,0.7
SR0_EXT_STAT,2
SR0_EXTRA1,10
SR0_EXTRA2,10
SR0_EXTRA3,2
SR0_PARAMS,10
SR0_POSITION,3
SR0_RAW_CTRL,2
SR0_RAW_SENS,2
SR0_RC_CHAN,2
SR1_EXT_STAT,2
SR1_EXTRA1,10
SR1_EXTRA2,10
SR1_EXTRA3,2
SR1_PARAMS,10
SR1_POSITION,3
SR1_RAW_CTRL,2
SR1_RAW_SENS,2
SR1_RC_CHAN,2
SR2_EXT_STAT,1
SR2_EXTRA1,1
SR2_EXTRA2,1
SR2_EXTRA3,1
SR2_PARAMS,10
SR2_POSITION,1
SR2_RAW_CTRL,1
SR2_RAW_SENS,1
SR2_RC_CHAN,1
STEER2SRV_D,0.005
STEER2SRV_I,0.2
STEER2SRV_IMAX,1500
STEER2SRV_MINSPD,1
STEER2SRV_P,1.8
STEER2SRV_TCONST,0.75
SYS_NUM_RESETS,22
SYSID_MYGCS,255
SYSID_SW_TYPE,20
SYSID_THISMAV,1
TELEM_DELAY,0
THR_MAX,100
THR_MIN,0
THR_SLEWRATE,100
TURN_MAX_G,2
WP_RADIUS,2

So no takers on this problem??

Really unsure on how to proceed.

A hint in the right direction is all I ask for.

Thanks

Hi Daniel,

It sounds like you have completed all of the right steps in attempting to troubleshoot your issue in the Auto Mode.

The fact that the chair does not run smoothly sometimes in the Manual Mode may indicate an issue with the calibration of the ESC. It sounds like the ESC's neutral (1500us) position may not be the same every time the Pixhawk boots up. The Pixhawk should be outputting a PWM signal of 1500us at neutral and the ESC should look for that when it starts up so it knows what the neutral value is. 

What is the model and brand of your ESC?

Does it have reverse?

DC motors draw the most current at startup and 32 amps per side may not be enough to get the wheel chair rolling where the drive current is much less.

You might want to get the specs on the wheel chair motors and make sure your ESC has sufficient peak current capacity. Just because the ESC runs cool may not be an indication of proper operation and the ESC maybe current limiting, due to the startup current requirement of the motor, going on in the ESC at motor startup.

I assume that you are using the elevator joystick for forwards/reverse speed control and the roll joystick for the throttle?

As far as the Auto Mode steering goes, have you tried checking the roll "reverse" box on the Radio Calibration page?

You might want to consider using an exponential throttle curve on your transmitter to help reduce the low speed acceleration and current draw in the Manual Mode.

In the Auto Mode you can use the THR_SLEWRATE parameter to control the rate at which the motors are accelerated.

Since your wheel chair is heavy and has a lot of inertia, you are going to have to work with the NAVL1_PERIOD and DAMPING parameters to get smooth operation in the Auto Mode.

I suggest that you start with a NAVL1_PERIOD value of around 25 and reduce it a little at a time until the chair starts to weave and then move it back up slightly. You also need to work with the STEER2SRV_X parameters which is really just a cut and try process adjusting only one parameter at a time and see what the results are. Start with the P value.

Could you please provide a text file of your full parameter list. You can save the full parameter list using the "Save" button in the Full Parameter List section of the MP Configuration screen.

Regards,

Tom C AVD

What is the model and brand of your ESC?

I am using a Dimension Engineering 2x32 ESC.

I currently have it set to independent channel mode (no mixing)

Sabertooth Controller 2x32

It does support reverse.

The device, by default, will learn throttle positions but I have overridden this feature and hard coded HI, NEUTRAL, and LOW values that coincide with the min/max values that I get from Mission Planner during radio calibration. The nuetral is @1500, and from memory I think HI is @1830 and low is @1125 (cannot remember exact values at the moment).

DC motors draw the most current at startup and 32 amps per side may not be enough to get the wheel chair rolling where the drive current is much less.

I concur with you on this. I will put my DC amp clamp on the motors and verify the max current on takeoff. The controller is supposed to be able to deliver up to 64 amps per channel for brief durations. The frame of the wheelchair has essentially been stripped down to only the bare frame and wheels so I did not see any potential for overloading the controller. It will randomly get glitchy/jumpy whether it is on a smooth surface or grass. I have seen other projects use the smaller 2 x 25 version of this controller for similar robots so I thought I was doing the right thing by over-engineering with a larger controller. According to Dimension Engineering "Sabertooth 3x32 is a high power component,capable of supplying up to two kilowatts of continuous output power". I do not need a fast rover anyway, so if I have to tinker with acceleration curves to manage current consumption I will do so. My real problem lies with autonomy. I think if I can get past that I can work out current consumption, even if it means throwing a larger controller at the project.

I assume that you are using the elevator joystick for forwards/reverse speed control and the roll joystick for the throttle?

I have my E-Sky radio set up for Mode 2. I am using the right stick for total control. My left stick is doing nothing at the moment. I have set up the skid steer OUT parameter to 1. I am not clear what skid steer IN is for and I left it at 0. I was thinking all was correct with this configuration as the drone does drive as expected in Manual mode. Did I mis-configure something here? I removed any mixing that was programmed into the RC controller with the simple programming software that came with it. It was initially set up for a helicopter but I put it in ACRO mode 2 and removed any mixing.

As far as the Auto Mode steering goes, have you tried checking the roll "reverse" box on the Radio Calibration page?

I have not. I imagined doing that would reverse my current setup in Manual mode. Is that not the case? I will try it as soon as I get home from work.

You might want to consider using an exponential throttle curve on your transmitter to help reduce the low speed acceleration and current draw in the Manual Mode.

I can do that too. I was concerned that the Pixhawk would not really know how to handle an exponential throttle curve if I plotted one in the ESC via the Sabertooth programming software. I think I just confused myself a little more. It seems like there are so many different places an exponential throttle curve could be implemented. I could so it in the ESC, I could do it in the RC controller or I imagine there is some way to do it within the Pixhawk. Where is the best place to do that? I also think the Sabertooth may have a motor ramping feature that I could take advantage of.

Could you please provide a text file of your full parameter list. You can save the full parameter list using the "Save" button in the Full Parameter List section of the MP Configuration screen.

Sure I can. I thought the file I posted earlier, "WheelchairSet.param", was the file you needed. I will look at it again and send it. I may have saved the wrong parameters.

Thanks for your help.

Tom:

I did put an amp clamp on one of the motors.

Without pegging the throttle I was able to determine that current during normal travel across pavement or grass did not exceed 10 amps. The peak was actually 7.9 amps. If I purposely stall the motor with my hands and feet  (which is not exactly easy to do with a geared down wheel chair motor...these things got some torque) I can surpass 40 amps peak. I exceeded the 40 amp scale and had to switch over to the 400 amp dc scale and I think I read somewhere around 47 amps. In my application I do not think my rover should encounter anything near stall current and I really do not need speed so I think if I keep the max speed dialed back I can stay in a safe current consumption area. Interestingly enough I was able to get the motors to jump when under 10 amps. My clamp was set to record and hold max peak and I noted the peak did not exceed 10 amps when the motors go into bucking bronco mode. Easing off the throttle to a full stop and then resuming will cause it to stop bucking.

I had my kid try the "reverse roll" switch. Oddly enough the axis on the RC controller just rotated 90 degrees. I had to hold the RC controller sideways to drive the vehicle. Even more strange is the fact that when I switched to auto the vehicle did move somewhere. It didnt go to the way-point but I did get some travel. I guess some movement is better than nothing at all at this point. I put the reverse switch back and recorded the settings I am using in the attached file. I did change some of the parameters as you suggested. Please look at the file and let me know if you see anything unusual.

Thanks again.

Attachments:

Daniel, Has this been resolved? Did you disable the brakes from the motors? I had similar experience with yours. Without knowing about the brakes, I kept burning the 40A fuses. After taking out the brakes, everything went well. When the rover moves, the total amperage should be around 4. 

Would love to know whether your issue has been resolved.

Andy

Daniel,

I know this is old but did you have any luck getting your drone working on auto? I'm resurrecting a project that is similar to your's although mine is a track vehicle but uses the same controller and motors and the Pixhawk. I remember that I had the same issue worked great in manual acted erratic in auto. Let me know if and how you resolved this.

Thanks,

Robert

RSS

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service