Is it possible to monitor the amps or power being output to the CIM motors on the Jaguars? We are trying to determine the best way to detect wheel slippage. Assuming the wheels are engaged and moving the robot we would expect to see a higher power/current draw than if the wheels were slipping.
If not, does anyone have any ideas for detecting wheel slippage using C/C++ and the new control system?
One way to detect wheel slippage is to place a lightly loaded (so you don’t take much normal force away from the driven wheel) free wheel near the driven wheel of interest and compare the rotational speed. You back off the power when the driven wheel slips too much, and as a result you should get good traction. The rub here is that it does take an extra wheel and sensor, and it could be the case that unlike rubber wheels on pavement, any slip is too much slip.
A second way, as you note, is to measure motor current. The torque delivered by the motor is proportional to the current. If you measure and report the current to the driver the joystick settings can be tweaked to maximize current, and therefore traction. The rub here is that the current is pulsed via the pwm signal, challenging accurate average current measurement.
A third way is to directly measure the acceleration of the robot, linear or rotational as desired, and bring this signal back to the driver. The driver can tune the throttles with this feedback, staying on top of the maximum acceleration point when desired. The rub here is making the measurement with good accuracy. The available acceleration sensors are set up to measure more than one G full scale while your maximum might be closer to ±1/10 of a G. You have to carefully watch the quantization error in the cRIO in this case.
I tend to favor the third method above, because it directly measures the performance metric of interest, without time averaging. I also tend to favor systems that provide good feedback to the driver, instead of trying to control the wheel torque automatically, as it will lead to well trained drivers that should get the most out of the robot.