A ROS-enabled quadruped robot built with low-cost 9G servo motors. The challenge is to get the speed and position of 12 PWM servo motors under control with position feedback, and put ROS on an extremely small SBC.
- Without onboard computer:
- With onboard computer:
- Low-level control: Arduino Nano
- Onboard computer: OrangePi Zero Plus 2:
A53 Quad-core processor
I actually managed get the Debian ROS Kinetic Desktop-full working on it. And the OpenCV3 that comes with ROS also works.
Servo motor control
When we want to control multiple-joint robots, we always need speed control, position feedback, and group servo control. High-end servos such as Dynamixel has such functionalities and it comes with ROS package. However, for simple hobby servos driven by PWM, it is hard to do that. I found a firmware which allows the functionalities mentioned above by using only Arduino and PWM servos. I made a ROS action node wrapper for this firmware. And it enables high-level sequence control for servos.
URDF and Inverse Kinematics