mangdangroboticsclub/QuadrupedRobot

Idea: smart servo

Closed this issue · 1 comments

Hello,

Since you created your own servo motors, which means that you can customize the PCB of the servo, I think that you could actually use the servos as a sensor too. I guess that your servos are classic digital model with a PID control loop, sensing the current position, and sending electricity to the motor to move to the correct position.

This means that if the robot is "hitting" something with its legs, we could detect it. Indeed, the servo could return what was the actual movement based on the servo's sensor versus the electricity sent. Then, an algorithm could detect "anomalies", like the motor didn't turn as much as expected based on the current sent, or that the motor moved suddenly without electrical impulse.

To achieve this, you could replace the "PWM" cable, but an I2C or CAN bus, with all motors in daisy-chain, and the Raspberry Pi reading the sensor values. Each servo could have a dip switch to attribute unique bus ID/address to each sensor. Maybe even the servo's PCB could use a tiny AVR microcontroller so that it can be programmed using Arduino, and the community could help improve those algorithms.

The idea is to make the Mini Pupper even more high-tech, without adding much cost. Cost could even be saved if you can simplify the Raspberry Pi expansion PCB, and control all servos straight from the Pi using I2C. Such a servo could also benefit many other robots!

Thanks for this cool project :-)

Laurent

Hi Laurent,
Actually, we are also discussing the solution.
If you have some experience or open-source projects about this kind of custom servo, please don't hesitate to mail to afreez@mangdang.net, we can discuss it together.
Thanks!