Brian Bentow - Yu-min Kim - Joshua Lewis
CMURoboBits Lab 2 consists of accessing sensor data and using that data to change the AIBO's behavior. View Code. View Video.
We used the sample code in SpinDog.cc and SpinDog.h as a template for this project. We implemented two simple states, Walking and Picked Up. When the dog is in Walking, it will walk forward as well as spin its head from side to side. When in Picked Up, the dog will simply stand still. Initially we didn't realize that you had to press a button on the dog's back to get allow it to move, so we thought something was wrong with our walk command.
In order to change between states, we measure the average acceleration on the Z axis (up/down) over the last 30 frames of sensor input. When this value breaches a threshold, we change state. Tuning this threshold was difficult, and it is still touchy.
Another lab requirement was to light up the dog's face lights when its foot pads were pressed or when it was tilted from side to side. We had some difficulty lighting up the face LEDs because the sample code was based on the ERS-2xx model AIBOs, which have different constants and functions to light up their LEDs. Once we searched through the code and found the proper constants, we had no trouble lighting up the face based on foot presses. The tilting was also pretty simple, we simply measured the X axis acceleration in much the same way we did when determining whether the robot had been picked up.