by LROBBINS » 19 Jun 2015, 12:27
Will,
Ouch. Glad nothing caught fire!
How do you have Roboteq stall detection set (page 84 in the user manual)? With your ultra-low impedance motors I think that's a critical bit of protection (and 12ga. wires won't help much). Set it for as low power and short time as you can without getting lots of false triggers -- it can certainly respond faster than you can.
I want to comment about something you mentioned elsewhere - the rocking motion you get that you blame on suspension + soft tires. I think there may be a contributing factor that you can deal with in the script. Please bear with me as this is going to get wordy.
The Apem joystick, at least the one John and I are using, has a rather stiff spring and next to zero frictional damping. For example, if you move the stick to end of travel and then pop your hand off as fast as possible, the stick will actually spring back quite a ways past center and will even oscillate several times back and forth cross center. This, by itself, will not actually affect driving as the motors can't respond that fast, but I noticed it because I had my tilt and lift set to actuate at 20% of throw and sometimes got reverse action.
But this lack of damping can affect driving in a different way. I had thought that this was a peculiarity of our situation - driving with an attendant joystick while walking alongside - but it may be affecting you too. Even with my hand as solidly resting on the pod as possible, there was some relative movement of my hand and the chair. With the soft tires, rubber-suspended walking beam for the rear casters (remember, Rachi's chair is FWD), and play in the seat-lift mechanism the chair, with its attached joystick, would start to rock fore and aft as you described - and walking alongside, this could really get amplified. The cure was to set up my Master program so that joystick readings are running-averaged before being sent to the Roboteq. As long as that averaging doesn't take too much time it is actually faster than the motors can accelerate, so has no effect on control feel, but it has entirely gotten rid of the seasickness. Even just averaging two readings makes a big difference, and I now have it making a running average of 10 readings. If I exaggerate and set it to 20, the chair will continue to move after releasing the stick, so that's too much. (That number is a user setting, not hard coded.) Because it's a running average, the chair starts to accelerate or decelerate as soon as you move the stick (it doesn't cause any delay in the loop), but it does a nice job of dampening unintended movement.
In my case the calculation is done in the Master CAN node before sending the message to the Roboteq. In your case, it would be added directly into the Roboteq script. It's only a few lines of code and easy enough to do, so let me know if you'd like to try it. If it turns out you don't like it, setting Damping to 1 would make it just like it is now. Ibid for you John.
Ciao,
Lenny