Path generation and following
The current walking gait system is mostly just a test of the kinematics and user inputs. To make the robot truly manoeuvrable, it requires sensors and better foot positioning techniques. The following diagrams are my initial attempt at trying to decide how exactly to achieve this. This is a very first look, and the actual implementation will probably vary significantly, but it provides a good starting point to start exploring further ideas:
The problem is broken down into three levels:
- Level 1: Navigation
- Scanning of area with 3D sensor
- Making decisions on how to approach a goal
- Level 2: Stepping
- Deciding on appropriate gait parameters
- Generating the foot target positions within the environment
- Level 3:
- Planning and executing the foot trajectories
- Reacting to any obstacles encountered by the feet
Required hardware updates
These are the current hardware updates that will be needed soon, in order to improve and then progress further than basic walking gaits:
1) Torsion springs
Reducing the load on critical joints will be achieved by adding torsion springs to the hip/knee motors.
2) Foot sensors
This is a must in order for the robot feet to account for rough or uneven terrain, and load distribution of the robot. I've been looking at ways of adding foot sensors via the AX-12 daisy-chain and not separately, to avoid adding multiple cable bundles to each foot. The only off-the-shelf existing option I have found is too expensive (ROBOTIS OP2-FSR Set). However, a perfect open-source solution looks like the Force foot design by Rhoban (thanks to B for the suggestion!).
3) 3D sensor
The ability to get useful information from the environment can be achieved by adding a 3D sensor head to the robot, such as an Intel RealSense depth camera. This however will have significant knock-on effects on the rest of the design, such as on power consumption, and the need to have a powerful on-board processing, which the Raspberry Pi won't be able to hack.
More future ideas
Replacement of the motors would only be an option in an entirely new hardware iteration of this robot, as the design is based around the AX-12s. However, I may explore upgrades to the motor control, beyond AX-12s' internal controllers with compliance. Two potential options:
- External PID loop wrapped around the existing internal controller
- Firmware updates such as this one, in order to have direct PID control
I would like to better understanding of the dynamics of leg locomotion, and developing a Simulink model would help. Something like this but on four legs would really be the ultimate goal!