lecture 1 – tekkotsu basics robotics seminar csi445/660 spring 2006 robert salkin university at...
Post on 20-Dec-2015
216 Views
Preview:
TRANSCRIPT
Lecture 1 – Tekkotsu Basics
Robotics Seminar CSI445/660Spring 2006Robert SalkinUniversity at Albany, SUNY
Installing Tekkotsu
Before Installing Tekkotsu: Choose an operating system
Tekkotsu is supported on both the Windows and Linux operating systems.
Using Linux is highly recommended
Install sun java SDK 1.4 or newer http://java.sun.com/j2se/1.5.0/download.jsp Tekkotsu system-side tools are written in java
Java-3D for Aibo-3D model http://java.sun.com/products/java-media/3D/
download.html
Installing Tekkotsu
Install newest OPEN-R SDK http://openr.aibo.com/openr/eng/index.ph
p4 OPEN_R_SDK-1.1.5-r3.tar.gz
Untar in /usr/local
Requires an initial free registration Don’t forget to give the installation docs a
good look over before installing Go with defaults paths, etc.
Installing Tekkotsu
If using Windows Download and install Cygwin
http://www.cygwin.com/ Download and install the “WIN” files from the OPEN-
R website http://openr.aibo.com/openr/eng/index.php4
cygwin-packages-1.5.5-bin.exe Install from local directory called “release”
mipsel-devtools-3.3.2-bin-r1.tar.gz Untar from /usr/local to “patch” OPEN-R-SDK
Installing Tekkotsu
If using Linux Download and install the “LINUX” files from the
OPEN-R website http://openr.aibo.com/openr/eng/index.php4
build-devtools-3.3.2-r1.sh builds… gcc-3.3.2.tar.gz binutils-2.14.tar.gz newlib-1.10.0.tar.gz
Installing Tekkotsu
Download and untar the newest Tekkotsu release http://www-2.cs.cmu.edu/~tekkotsu/TekkotsuInstall.html
Tekkotsu_2.2.2.tar.gz Rename the /usr/local/Tekkotsu_version to /usr/local/Tekkotsu
CVS source also available, but unstable (I got compile errors)
Again, read any install documentation Go with the defaults for now.
If all goes well, you should have built a directory tree inside /usr/local that looks something like…
Installing Tekkotsu
/usr/local
OPEN-R Tekkotsu
…etc. project ...detail later
…detail later
• Now is a good time to test the installation.
• change directory to /usr/local/Tekkotsu/project and run the default Makefile
• Address any errors you find
•Probably install related (unless CVS)
File Hierarchy (of direct concern)
/usr/local/Tekkotsu/
Behaviors Motion project Shared tools
Demos Nodes Transitions
Auto Getup
Chase Ball
Follow Head
Etc.
State Node
Walk Node
Emergency Stop
WalkMC
HEadpointerMC
Project Interface.h
seg
msSOURCE FILES
seg
• Very helpful developing hints can be found within “Behaviors/Demos”
• It contains common needs like chasing the ball, and tracking objects
• The Monitor (mon) directory contains the run-time user interface (among other things)
• Actual development files will be COPIED from project.
Tekkotsu Project
This is your development workspace. Needs to be copied locally for each developer or group.
cp –R /usr/local/Tekkotsu/project ~/ All development source should be contained here Allows customization of certain settings
~/project/ms/config contains .tm (threshold map) and .col (color) files for color segmentation tekkotsu.cfg project configuration file that allows the setting of lighting
conditions, segmentation files, camera settings, and various monitoring ports to be used when your project is compiled and run.
Take a look at the series of StartupBehavior_Setup…. Starting from StartupBehavior.cc , this is the boot sequence for the
framework These are a bunch of special behaviors that run on startup to handle
things like initializing the vision, menus, file control, etc.
Tekkotsu Project
http://www-2.cs.cmu.edu/~tekkotsu/CPPReview.html Any behaviors written need to get added to your Project.
StartupBehavior_SetupModeSwitch.cc Add “Mutually Exclusive” Behaviors here
When might behaviors not be exclusive to each other? SetupModeSwitch has a listing of lines of the following type: addItem(new BehaviorSwitchControl<TestBehavior>(“TestBehavior",bg,false));
These add a given behavior to the project BehaviorSwitchControl is a C++ class template which takes type BehaviorBase (or a subclass thereof)
Specifically, AddReference, RemoveReference, DoStart, DoStop, etc. are required to be compatible in this template.
The three arguments to the constructor represent :1. A std::string representing the initial name displayed for this behavior in the GUI upon startup2. A reference to a behavior group. 3. A boolean on whether to “retain” the behavior image in memory once DoStop is called
This should all be clearer after a careful demo walkthrough http://www-2.cs.cmu.edu/~dst/Tekkotsu/Tutorial/behaviors.shtml
TekkotsuMon
This is the user interface into run-time Tekkotsu Written In java… Usage:
cd /usr/local/Tekkotsu/tools/mon ./ControllerGUI EtherIP
Gives access to: Our “exclusive” behaviors
ChaseBall Background Behaviors
AutoGetup, etc. Raw & Segmented Camera Feeds File Access
Sound files Motion & Posture Sequences
Walk Parameters Sensor and Event Monitoring & Logging
It doesn’t give us stdout or stderr. telnet EtherIP 59000
[ Examine SetupModeSwitch & Demo TekktosuMon ] http://www-2.cs.cmu.edu/~tekkotsu/TekkotsuMon.html
Hello World
Let’s examine the full process of coding, compiling, and interfacing the work with our project through everyone’s favorite, “Hello World!”
Tutorial at: http://www-2.cs.cmu.edu/~tekkotsu/FirstBehavior.html
Behavior Boilerplate found at: $TEKKOTSUROOT/ docs/behavior_header.h Make a copy and override the default naming with our new name
We can still use cout as an ostream to stdout. cout<<“Hello World!”<<endl;
Compile cd ~/project make
Add HelloBehavior to our Project Boot Aibo, and telnet to view our output
Makefile
Now that we’ve seen the full dev process in action, let’s examine the Makefile to see how everything gets put together
Compiled code needs to be loaded onto a Sony MemoryStick Always mount /mnt/memstick (or /cygdrive/memstickdriveletter)
Be sure you have your memstick path correct! Environment.conf
Make options make newstick
Initializes stick for use (use the 1st time using a new memory stick) Make sure /open-r/system/conf/* have write permissions enabled Make sure /open-r/mw/conf/* have write permissions enabled
make install Compile & link with full upload to memstick
make update Compile & link. Uses rsync to determine what to upload to memstick
make Compile & Link
Never ever, Ever, EVER format the memory sticks!!! Pink AIBO Programming Memory Sticks won’t work after a format!!! Windows “Quick Format” is ok, but NO low-level formats!!!
More detailed project
Tekkotsu’s Makefile compiles all .cc files in your project directory and links them with the rest of the framework.
the “ms” directory then contains a copy of what has/will be copied to the memory stick.
All pathnames specified in code should think of “ms” as root (/).
Ex. if I wanted to play a sound file, the absolute path would look like
“/data/sound/myfile.wav”
~/project
Source files ms
data
build
motion
open-r config
sound
mw
system
Even more detail
open-r directories will contain the actual open-r objects and partner files.
There’s no need to worry about the details of those too much, although it is a handy way to see what’s really happening
don’t forget Tekkotu’s relationship to OPEN-R
the wlandflt.txt wireless configuration file resides in ms/open-r/system/conf
we’ve already looked at config
~/project
Source files ms
data
build
motion
open-r config
sound
mw
system
wireless configuration
the wlandflt.txt file is responsible for setting up the network connection between the server and aibo.
move to ~/project/ms/open-r/system/conf
[ let’s look at wlandflt.txt ]
CVS
man cvs Class & project code management, as well as assignment submissions, will be
handled through the Concurrent Versions System. CVS is a version control system, which allows you to keep old versions of files
(usually source code), keep a log of who, when, and why changes occurred, etc., like RCS or SCCS.
Unlike the simpler systems, CVS does not just operate on one file at a time or one directory at a time.
Operates on hierarchical collections of directories consisting of version controlled files. CVS helps to manage releases and to control the concurrent editing of source files among
multiple authors. CVS allows triggers to enable/log/control various operations and works well over a wide
area network. cvs keeps a single copy of the master sources.
This copy is called the source repository; it contains all the information to permit extracting previous software releases at
any time based on either a symbolic revision tag, or a date in the past.
CVS commands
Usage: cvs cvs_command [ command_options ] [ command_args ]
Essential Commands: checkout A necessary preliminary for most cvs work:
creates your private copy of the source for modules At least one subdirectory level is always created. You can work with this copy without interfering with others work. Ex. cvs checkout modules
Module names will be provided later update Execute this command from within your private source
directory: update your copies of source files from changes that other developers
have made to the source in the repository. Ex. (from working directory) cvs update
commit ``publish'' your changes to other developers, by incorporating them in
the source repository. Ex. cvs commit files
CVS commands
add Use this command to enroll new files in cvs records of your working
directory. The files will be added to the repository the next time you run `cvs commit' Used with an “already checked-out” module from the working directory. Ex. cvs add mynewfiles
remove Inverse of add. Remove a file from an existing cvs module Ex. cvs remove someExistingFiles
diff Show differences between files in working directory and source repository,
or between two revisions in source repository. Does not change either repository or working directory like UNIX diff command Ex. cvs diff
CVS Usage
Typical CVS “steps” Initially given a module called “team2”…1. cvs checkout team2
System should create a new sub-folder called team2 and copy over it’s files.
2. Do your work. When finished..3. cvs commit
Your changes have been posted to the system. Next time you login..1. cd to the working folder2. cvs update
Will copy down other’s changes since you last worked3. cvs commit
CVS
checkout cd workingfolder
commit
Work posted
update
Initial Use
cd workingfolder
Subsequent use
cvs commands user action
Homework 1
HW11. Install Tekkotsu (with OPEN-R-SDK, etc.)2. Copy the Tekkotsu “project” into your development directory3. make newstick / make install
Check for errors & fix – shouldn’t be any if install went ok! Don’t forget to mount and umount the memstick if necessary
4. Create a “hello world” behavior called “Behaviormemsticknumber.h” to output “Hello StudentNames!” when the behavior is started, and “Bye StudentNames!” when the behavior is stopped. You have to telnet to see it!
5. make install and test the stick on an ERS-7 with the ControllerGUI Remember to add your behavior to StartupBehavior_SetupModeSwitch.cc
6. Copy the files you modified to the root directory of your memory stick and hand it in at the beginning of the next class (don’t be late!!!). Comment and indent well Include your names at the top of the file Write any instructions needed for me to add your file to my project The best solution will be posted online (with your permission)
Lab time…
Let’s go to the lab after a break Connecting to the network
2 wireless networks (1 at the moment) Equipment handling
Be gentle with the AIBOs Always put your battery back in a charger Put equipment away in the cabinet Don’t format the Pink memory sticks
Etc…
Credits
Shawn Turner Tekkotsu Website
top related