70 likes | 213 Views
Tekkotsu - (“iron bones”) - Controller overlay and development environment from CMU. Getting Started with Aibo and Tekkotsu. OPENR-SDK - basic developers kit from Sony (model specific). Aperios - firmware OS in Aibo. Aibo (“friend”). AIBO. Hardware.
E N D
Tekkotsu - (“iron bones”) - Controller overlay and development environment from CMU Getting Started with Aibo and Tekkotsu OPENR-SDK - basic developers kit from Sony (model specific) Aperios - firmware OS in Aibo Aibo (“friend”)
Hardware • Actuation motors and Outputs • Joint actuation motors (one per paren) Tail: (left/right) Neck: (up/down) Head: (left/right) (up/down) Hip/shoulder- per leg: (in/out) (forward backward) Knee, (bend position) Ankle (bend position) • Audio channel • Networking and removable media 803/11g – wireless network channel removeable memory stick slot. Sensors - • 320 line CCD camera with color segmentation hardware • IR distance sensors (2 on ERS-7), one on ERS 210 • Position encoders for all joints actuator motors (see below) • Stereo Microphone • Touch sensors (switches) head (1), back (3/ers7, 1/ers210), chin • Accelerometer for detecting falls and pick-ups • Switch sensors on each paw pad
Look for object Point head at object Bark and wag tail Monitor the battery charge Aibo Programming Model • An Aibo “program” is a collection of concurrent/event driven threads called “BEHAVIORS” Example: Head tracks of object in visual field, barks and wags tail when object found Behavior (foreground) Behavior (foreground) Behavior (background) Behavior (foreground)
Shared Objects • WorldState Object- Shared memory region that holds the current state of all sensors and actuators • Updated in background every 30ms • read by behavior • Motion Objects - one unique object for each motion, i.e. move head to a specific position • Several canned ones w/Tekkotsu or you can write your own • Named <motion>MC.cc (.h) by convention • Executed through the “motion manager” process • More later
Behavior Class template Includes for Motions Events Base-behaviors //-*-c++-*- #ifndef INCLUDED_happyBehavior_h_ #define INCLUDED_happyBehavior_h_ #include "Events/EventRouter.h" #include "Behaviors/BehaviorBase.h" #include "Motion/MotionManager.h" #include "Motion/MotionSequenceMC.h" class happyBehavior : public BehaviorBase { public: happyBehavior() : BehaviorBase(), stand_id(MotionManager::invalid_MC_ID), stand() { // initialiation of stand up behavior stand->setPlayTime(700); // 700 milliseconds to stand up stand->setPose(PostureEngine("/ms/data/motion/situp.pos")); } virtual void DoStart(); virtual void DoStop(); virtual void processEvent(const EventBase& event); virtual std::string getName() const { // Name is used for menus, or debugging. return "happyBehavior";} protected: MotionManager::MC_ID stand_id; SharedObject< MotionSequenceMC<MotionSequence::SizeSmall> > stand; }; #endif Constructor must run constructor for base class • DoStart() • runs each time behavior activates • DoStop() • runs each time behavior deactivates • EventHander(event) • Runs on incoming event For debugging Intermal data structures
How Tekkotsu Works www.tekkotsu.org