The Third Ant Prototype
I have nearly completed a third ant robot prototype. This time, I am avoiding 3D printing entirely and sticking to a free form balsa wood model. I have spent a long time studying the traditional hexapod robots available online and I am adamant about ditching the radial symmetry model in favor of a more accurate biomimetic model specific to ants. The important elements of ant legs and most insects, are the differences between each pair of legs. For instance, the front pair of legs in ants have a larger coxa which is rotated downward and swings the entire leg forward and backward with a relatively small angle of rotation. In their relaxed state, ants keep their front legs very retracted, likely an adaptation to allow them to carry heavy objects with their mandibles.
I also just discovered this interesting study of stick insect leg joint torques. They discovered a very interesting fact that the coxa-trochanter joint provides the majority of the torque required to keep the insect upright and propel the insect forward. The torques of the other joints in fact were opposing to the direction of movement because they are responsible for countering the effects of gravity and steering the forces of the coxa. Stick insect physiology is also the most similar to the common hexapod robot design and it is quite interesting to see that even in these insects, the kinematics of the walking gate are more complicated than we initially thought. You can find this article here: https://royalsocietypublishing.org/doi/full/10.1098/rspb.2015.1708
Considering these findings, it is actually good news in regards to a robot that uses servos for generating leg forces. The servo is always applying power to hold a position determined by the PWM signal, so if the weight of the robot is forcing the femur-tibia joint outward, the servo will automatically apply torque to hold it in the required position. Most hexapod robot designs feature a relatively powerful micro controller which calculates the leg position using inverse kinematics. On a flat surface, this works great, but in the real world, the robot needs to sense, map, and calculate the terrain in real time as it makes decision about where to step. Insects do not require this much “thinking” to walk and run, and employ a complex network of sensors to reinforce the motors in their legs. I would need very sensitive potentiometers or encoders in every joint to even begin to build a model like this.
But maybe there is hope? I found a product on the Adafruit website where they tapped into the internal potentiometer of a servo to provide an analog output that the MCU could read. I tried building one at home, and discovered the analog voltage ranges from 1 to 2 volts. This isn’t great news because making steady measurements within such a small range is quite challenging and noisy. Perhaps the Adafruit product employs some kind of amplifier?
Finally, I have been losing sleep thinking about how to program my servo movements in verilog. I need to generate an 8-bit number to adjust the servo PWM signal with enough fidelity to make smooth motion, but I can’t figure out how to change the rate of counting up and down over time. I can model the motion with trigonometric functions in Blender, but how would I do this with verilog counters? I am starting to think a MCU or even Raspberry Pi might indeed be a better option. With software like Open AI Gym now accessible for free, it could be possible to have machine learning algorithms just use brute force trial and error to figure out how to walk. I have had an opportunity to try the simplest of A.I. projects using a Nvidia Jetson Nano. Honestly, it isn’t exciting to me.
At the moment, I have very little free time. This is my super busy season for work, so I need to polish up a presentation by early December when I plan to visit my alma mater in Tacoma Washington for the Art and Science Salon.