AU Robot Servers: Difference between revisions
Line 49: | Line 49: | ||
==Modules== | ==Modules== | ||
===Descriptions=== | ====Descriptions==== | ||
Not all plug-in modules has a description on these pages (yet). | Not all plug-in modules has a description on these pages (yet). | ||
Line 61: | Line 61: | ||
* smr - MRC interface (ausmr.so.0) - [[MRC interface]] holds some routines to control and interface with the MRC, and a smrctl resource to translate manoeuvres to SMRCL. | * smr - MRC interface (ausmr.so.0) - [[MRC interface]] holds some routines to control and interface with the MRC, and a smrctl resource to translate manoeuvres to SMRCL. | ||
===Coordinate systems=== | ====Coordinate systems==== | ||
The three [[Coordinate systems]] are available as static: odometry (odoPose), UTM (utmPose) and Map (mapPose) | The three [[Coordinate systems]] are available as static: odometry (odoPose), UTM (utmPose) and Map (mapPose) | ||
===How to make a plugin=== | ====How to make a plugin==== | ||
[[plug-in structure]] | [[plug-in structure]] |
Revision as of 08:21, 27 September 2010
Download
The tar ball (packed) versions are here: http://server.elektro.dtu.dk/ftp/jca/mobotware/
and a few comments for the releases in Release notes
Latest version:
On Jensen: (in /usr/local/smr/bin) is 2.1053 (as of 13 Aug 2010).
On SVN: is version 2.1053 (as of 13 Aug 2010).
Base Documentation
Programming API documentation
AU Robot servers (AURC)
AURS class documentation http://www.iau.dtu.dk/~jca/rac/html/index.html
Open CV
OpenCV (1.0) general documentation http://server.elektro.dtu.dk/www/jca/opencv/
OpenCV (1.0) CXCORE documentation http://server.elektro.dtu.dk/www/jca/opencv/ref/opencvref_cxcore.htm
OpenCV (1.0) CV documentation http://server.elektro.dtu.dk/www/jca/opencv/ref/opencvref_cv.htm
Camera server
The camera server ucamserver is pre-configured for camera related functionality.
Laser scanner server
The laser scanner server ulmsserver is pre-configured for functions using laser scanner data.
Client for monitoring (auclient)
A data monitoring client auclient is a server pre-configured to display graphics on an x-console. It can be started on computers with X installed, i.e. not on the robots. The auclient uses openCV (highgui) to display the data.
Other servers
An empty server userver is intended for functionality not related to camera and laser scanners
A server stub auservertest is a port server that just shows messages from connected clients - with a timestamp. This can be used to replace the MRC to verify the messages intended for the MRC.
Server module tester uservermoduletester is a special server, where most of the available plug-ins are compiled staticly into the server, and thus available in the >> module help list for direct creation. This server is intended for debug only.
Modules
Descriptions
Not all plug-in modules has a description on these pages (yet).
- Obstacle avoidance (visibility graph) auavoid.so.0 - Obstacle avoidance - visibility graph
- Rule engine (aurule.so.0) Rule based mission sequencer
- drivebase.rule - The basis for (HAKO) missions - Drivebase.rule
- Stereo camera - Videre design device (ausvs.so.0) - Videre Design stereo camera plug-in
- Mapped obstacles (aumapobst.so.0) - converts near map lines to obstacle polygons Mapped obstacles
- Locater - tree row locater (locater.so.0) - locater - tree row based on laserscan lines and fluffy lines (tree-rows) and line definitions in mapbase.so.0
- smr - MRC interface (ausmr.so.0) - MRC interface holds some routines to control and interface with the MRC, and a smrctl resource to translate manoeuvres to SMRCL.
Coordinate systems
The three Coordinate systems are available as static: odometry (odoPose), UTM (utmPose) and Map (mapPose)
How to make a plugin
Variables (global variables and functions across plugins)
Installation notes
Installation without FIREWIRE
If you do hat have (and should not use) firewire, then the AURS can be compiled by changing two of the Makefiles:
library ucam4 (in subdirectory ucam4):
In the Makefile change the DEFINES line from
DEFINES = -D USE_IEEE1394 or -D USE_GUPPY
to
DEFINES = -D USE_NO_IEEE1394 -D USE_NO_GUPPY
And the cameraserver (in directory ucamserver)
In the Makefile change the DEFINE line from
DEFINES = -D USE_IEEE1394 or -D USE_GUPPY
to
DEFINES = -D USE_NO_IEEE1394 -D USE_NO_GUPPY
and the LDDFLAGS line from
LDFLAGS = -g0 -lcxcore -lcv \ -L../lib -lurob4o -lugen4o -lumap4o -lucam4o \ -lpng -ldl -rdynamic -lcurses -lreadline -lraw1394 -ldc1394_control
or
LDFLAGS = -g0 -lcxcore -lcv \ -L../lib -lurob4o -lugen4o -lumap4o -lucam4o \ -lpng -ldl -rdynamic -lcurses -lreadline -lraw1394 -ldc1394
to
LDFLAGS = -g0 -lcxcore -lcv \ -L../lib -lurob4o -lugen4o -lumap4o -lucam4o \ -lpng -ldl -rdynamic -lcurses -lreadline
Bugs
NEW! BUG reporting page here: Change requests (if you do not have write access, then send me a mail mailto:jca@elektro.dtu.dk)
Old stuff
Servers
Server structure issues (global variables and methods)
Camera server ucamserver
Laser scanner server ulmsserver
Empty server userver
Data monitoring client auclient
Static Plug-ins
Static plug-ins is part of the server code, and can be loaded without any additional files, see:
>> module help
To get the available list of static plug-ins (and a short description)
The three Coordinate systems are available as static: odometry (odoPose), UTM (utmPose) and Map (mapPose)
File plug-ins
This is a list of the current available plug-ins in release 2.176:
The intension is that there should be a wiki page for each with further description.
- auavoid.so.0 - visual graph obstacle avoidance (not stable)
- auballfinder.so.0 - sample blob finder in a camera image
- aucamcog.so.0 - a sample center of gravity plug-in for part of a camera image
- aucamfocus.so.0 - a focus (contrast) calculation on a camera image.
- aucron.so.0 - a module to execute bash commands at regular intervals - e.g. to move logged images at low priority
- audrivepos.so.0 - drive control to a specific pose (uses auavoid)
- auefline.so.0 - sample line finder plugin extended to find and maintain wall lines. Is based on the libauextractfeatures library.
- augps.so.0 - a gps plugin, that maintains an UTM pose from a serial/USB GPS connection
- aulmsnear.so.0 - a small function to return the closest point in a laserscan as a <laser l0=0.0 .../> type message
- (aumission.so.0 - is now renamed to aurule Mission monitor sequencer)
- aurule.so.0 - A rule based mission sequencer - Rule based mission sequencer
- drivebase.rule - The basis for (HAKO) missions - Drivebase.rule
- auroaddrive.so.0 - a drive controller thet follows a road edge (uses auavoid, ausmr and ulmspassable)
- auseq.so.0 - deprecated mission sequencer - use aurule.so.0.
- ausmr.so.0 - smr interface
- ausvs.so.0 - a not quite finished Videre Design stereo camera plug-in
- uexres.so.0 - sample resource share plug-in - works with uexuse
- uexuse.so.0 - sample resource share plug-in - works with uexres
- ulmspassable.so.0 - extracts road lines from a laserscan (tilted laser)
- ulmsv360.so.0 - virtual 360 deg laser scanner device. This is also available as static plug-in for the ulmsserver.
- mapbase.so.0 - a base plugin for mapped lines and connected graph of routes
- aumapobst.so.0 - converts near map lines to obstacle polygons Mapped obstacles
Plug-in structure and description
Variables (global variables and functions across plugins)
Scan features (@todo make page)
odometry, map or UTM (gps) pose and pose history pose
Guidemark (@todo make page)
Road detect (@todo make page)
Sequencer Sequencer
SMR interface (@todo make page)
Camera server interface (@todo make page)
Laser scanner interface (@todo make page)
Obstacle avoidance (@todo make page)
Road driver (@todo make page)