@import url(http://kodlab.seas.upenn.edu/pub/skins/sinorca/basic.css); @import url(http://kodlab.seas.upenn.edu/pub/skins/sinorca/layout.css); @import url(http://kodlab.seas.upenn.edu/pub/skins/sinorca/sinorca.css);
Sarah Koehler, Cornell University (visiting scholar via the SUNFest program)
Manually tuning a biologically inspired robot’s gait so that it can walk quickly and efficiently is a time-consuming and tedious task. For this project, CKBot (a modular robot system) has been configured into a centipede-inspired configuration with six legs. The project started with a few manually tuned gaits which follow an alternating tripod pattern. A gait is simply a pattern of footsteps that describe how a legged animal or robot walks. The purpose of this project is to automate tuning of the robot’s gait such that it optimizes a factor such as specific resistance (a type of power efficiency), speed, or power. The reason we want to be able to tune the gait is so that we can begin to study the SLIP (Spring Loaded Inverted Pendulum) model on the centipede. The SLIP template accurately describes the motion of many animals when they run, walk, or hop.
Most of the effort in this project went into setting up the framework for such optimization trials. This set up included creating and building the Matlab optimization code, a 7.4 V regulator, and a Vicon ball tracking piece. Other code was also created for interaction with the current sensor, communication with the robot, and interface with the Vicon. Each optimization trial runs the centipede back and forth and adjusts the six parameters that change the robot’s gait by using the Nelder Mead optimization method. Nelder Mead is a simplex based algorithm that uses a direct search approach to minimize a given cost function. The end result after optimization is a gait with minimal specific resistance, maximum speed, or some other optimal factor.
Successful tests were completed that maximized speed of the centipede robot. The tests were only run with battery power and with a cost function of inverse speed. A few bugs that remain to be resolved include getting the voltage regulators to work properly with the robot as well as some troubleshooting in the optimization and CAN communication source code
Copyright Kodlab, 2017