AU Robot Servers

From Rsewiki
Revision as of 07:43, 25 April 2010 by Jca (Talk | contribs)

Jump to: navigation, search

Contents

Download

The tarball (zipped) 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.870 (from 24 feb 2010).

The Jensen version is kept at this version until course 31388 finishes (until ~ 1 june 2010)

On SVN: is version 2.920.

NB! the svn version can not directly load plugins compiled against version 2.870 (or earlier).

In version 2.920 the server core is updated to make the minimum plug-in design (one cpp file) and still use all server resources (global variables, call to other plugins etc).

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

General issues

This section covers general issues for the server structure.

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.

Operator server (auclient)

A data monitoring client auclient is a server pre-configured to display graphics on a 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.

Coordinate systems

The three Coordinate systems are available as static: odometry (odoPose), UTM (utmPose) and Map (mapPose)

plug-in structure

Variables (global variables and functions across plugins)

Module description

Not all plug-ins has a description on these pages (yet), the following is available.

Obstacle avoidance (auavoid.so.0)

  • auavoid.so.0 - visual graph obstacle avoidance (not stable)

(version 2.920)

Script language - rule based - (aurule.so.0)

(version 2.920)

Stereo camera (ausvs.so.0)

(version 2.920)

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

to

DEFINES = -D USE_NO_IEEE1394

And the cameraserver (in directory ucamserver)

In the Makefile change the DEFINE line from

DEFINES = -D USE_IEEE1394

to

DEFINES = -D USE_NO_IEEE1394

and the LDDFLAGS line from

LDFLAGS = -g0 -lcxcore -lcv \
        -L../lib -lurob4o -lugen4o -lumap4o -lucam4o \
        -lpng -ldl -rdynamic -lcurses -lreadline -lraw1394 -ldc1394_control

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-1.png

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

plug-in structure

Variables (global variables and functions across plugins)

Coordinate systems

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)

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox