AU Robot Servers: Difference between revisions

From Rsewiki
Line 44: Line 44:
and the  LDDFLAGS line from
and the  LDDFLAGS line from
  LDFLAGS = -g0 -lcxcore -lcv \
  LDFLAGS = -g0 -lcxcore -lcv \
          -L../lib -lurob4o -lugen4o -lumap4o -lucam4o \
        -L../lib -lurob4o -lugen4o -lumap4o -lucam4o \
  -lpng -ldl -rdynamic -lcurses -lreadline -lraw1394 -ldc1394_control
        -lpng -ldl -rdynamic -lcurses -lreadline -lraw1394 -ldc1394_control
to
to
  LDFLAGS = -g0 -lcxcore -lcv \
  LDFLAGS = -g0 -lcxcore -lcv \
           -L../lib -lurob4o -lugen4o -lumap4o -lucam4o \
           -L../lib -lurob4o -lugen4o -lumap4o -lucam4o \
  -lpng -ldl -rdynamic -lcurses -lreadline
          -lpng -ldl -rdynamic -lcurses -lreadline


==Servers==
==Servers==

Revision as of 15:35, 24 March 2010

Documentation of AU robot servers

AU Robot Servers is a software infrastructure that can combine a number of functional modules to a robot with functionality at higher abstraction levels.

Released software

For package and install notes see: [Christian's Wiki Page] - no, that page is now used by others for other purposes, but in summary the released versions are here: http://www.iau.dtu.dk/~jca/rac/releases or at http://server.elektro.dtu.dk/ftp/jca/mobotware/

and a few comments for the releases in Release notes

The SVN may be updated to a newer version than the release list - but the SVN version may not always compile.

NEW! BUG reporting page here: Change requests (if you do not have write access, then send me a mail mailto:jca@elektro.dtu.dk)

Base Documentation

AU Robot server class documentation http://www.iau.dtu.dk/~jca/rac/html/index.html

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


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

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