getting started with aibo and tekkotsu

7
Getting Started with Aibo and Getting Started with Aibo and Tekkotsu Tekkotsu QuickTime™ and a TIFF (Uncompressed) decom are needed to see this Aperios - firmware OS in Aibo Aibo (“friend”) OPENR-SDK - basic developers kit from Sony (model specific) Tekkotsu - (“iron bones”) - Controller overlay and development environment from CMU

Upload: etana

Post on 20-Jan-2016

48 views

Category:

Documents


2 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Getting Started with Aibo and Tekkotsu

Getting Started with Aibo and Getting Started with Aibo and TekkotsuTekkotsu

QuickTime™ and aTIFF (Uncompressed) decompressor

are needed to see this picture.

Aperios - firmware OS in Aibo

Aibo (“friend”)

OPENR-SDK - basic developers kit from Sony (model specific)

Tekkotsu - (“iron bones”) - Controller overlay and development environment from CMU

Page 2: Getting Started with Aibo and Tekkotsu

AIBOAIBO

Page 3: Getting Started with Aibo and Tekkotsu

HardwareHardwareSensors - 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

Actuation motors and OutputsJoint 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 channelNetworking and removable media

803/11g – wireless network channelremoveable memory stick slot.

Page 4: Getting Started with Aibo and Tekkotsu

Aibo Programming Aibo Programming ModelModel

An Aibo “program” is a collection of concurrent/event driven threads An Aibo “program” is a collection of concurrent/event driven threads called “BEHAVIORS”called “BEHAVIORS”

Look for object

Point head at object

Bark and wag tail

Monitor the battery charge

Example: Head tracks of object in visual field, barks and wags tail when object found

Behavior (foreground)

Behavior (background)

Behavior (foreground)

Behavior (foreground)

Page 5: Getting Started with Aibo and Tekkotsu

Shared ObjectsShared Objects WorldState ObjectWorldState Object- Shared memory region that - Shared memory region that

holds the current state of all sensors and holds the current state of all sensors and actuatorsactuators Updated in background every 30msUpdated in background every 30ms read by behaviorread by behavior

Motion ObjectsMotion Objects - one unique object for each - one unique object for each motion, i.e. move head to a specific positionmotion, i.e. move head to a specific position Several canned ones w/Tekkotsu or you can write your Several canned ones w/Tekkotsu or you can write your

ownown Named <motion>MC.cc (.h) by conventionNamed <motion>MC.cc (.h) by convention Executed through the “motion manager” processExecuted through the “motion manager” process

More laterMore later

Page 6: Getting Started with Aibo and Tekkotsu

//-*-c++-*-//-*-c++-*-#ifndef INCLUDED_happyBehavior_h_#ifndef INCLUDED_happyBehavior_h_#define INCLUDED_happyBehavior_h_#define INCLUDED_happyBehavior_h_

#include "Events/EventRouter.h"#include "Events/EventRouter.h"#include "Behaviors/BehaviorBase.h"#include "Behaviors/BehaviorBase.h"#include "Motion/MotionManager.h"#include "Motion/MotionManager.h"#include "Motion/MotionSequenceMC.h"#include "Motion/MotionSequenceMC.h"

class happyBehavior : public BehaviorBase {class happyBehavior : public BehaviorBase {

public:public: happyBehavior() : BehaviorBase(),happyBehavior() : BehaviorBase(), stand_id(MotionManager::invalid_MC_ID),stand_id(MotionManager::invalid_MC_ID), stand()stand() {{ // initialiation of stand up behavior// initialiation of stand up behavior stand->setPlayTime(700); // 700 milliseconds to stand upstand->setPlayTime(700); // 700 milliseconds to stand up stand->setPose(PostureEngine("/ms/data/motion/situp.pos"));stand->setPose(PostureEngine("/ms/data/motion/situp.pos")); }} virtual void DoStart();virtual void DoStart(); virtual void DoStop();virtual void DoStop(); virtual void processEvent(const EventBase& event);virtual void processEvent(const EventBase& event);

virtual std::string getName() const {virtual std::string getName() const { // Name is used for menus, or debugging.// Name is used for menus, or debugging. return "happyBehavior";}return "happyBehavior";}protected:protected: MotionManager::MC_ID stand_id;MotionManager::MC_ID stand_id; SharedObject< MotionSequenceMC<MotionSequence::SizeSmall> > stand;SharedObject< MotionSequenceMC<MotionSequence::SizeSmall> > stand;};};#endif#endif

Beh

avio

r Cla

ss B

eh

avio

r Cla

ss te

mp

late

tem

pla

te

Includes for Motions Events Base-behaviors

Constructor must run constructor for base class

DoStart()• runs each time behavior activates

EventHander(event)•Runs on incoming event

DoStop()• runs each time behavior deactivates

Intermal data structures

For debugging

Page 7: Getting Started with Aibo and Tekkotsu

How Tekkotsu WorksHow Tekkotsu Workswww.tekkotsu.org