MIRA
Domain SCITOS - Documentation


This domain provides drivers for all SCITOS robots and their different modules.

Configuration files

SCITOS robots can be equipped with different kinds of sensors and optional components. For this reason, a global configuration file is used to specify the hardware configuration of the robot. The SCITOS driver looks for this configuration file in the following locations:

  1. /opt/SCITOS/SCITOSRobotAttributes.xml
  2. somewhere else within the MIRA_PATH

If no such file exists, a default configuration is used.

It is strongly recommended to create such a file for your robot if it does not yet exist!

The configuration file must contain a set of variables, which describe the following properties of the robot:

A typical configuration file looks like this:

<root>
<!-- Type of robot [SCITOS-G3, SCITOS-A5, SCITOS-G5, SCITOS-G6, SCITOS-G6-small] -->
<var robot="SCITOS-A5" />
<!-- Type of the CAN bus [PCAN, MLCAN] -->
<var canType="PCAN" />
<!-- CAN bus device (default=[PCAN: /dev/pcan32, MLCAN:/dev/ttyUSB2]) -->
<var canDevice="/dev/pcan32" />
<!-- Type of mounted front laser [SickS300, LeuzeRS4, Hokuyo-URG-04LX, LZRU901] -->
<var frontLaser="SickS300" />
<!-- Device of the front laser (default=/dev/ttyUSB0) -->
<var frontLaserDevice="/dev/ttyUSB0" />
<!-- Type of mounted back laser [none, SickS300, LeuzeRS4, Hokuyo-URG-04LX, LZRU901] -->
<var rearLaser="none" />
<!-- Device of the rear laser (default=/dev/ttyUSB1) -->
<var rearLaserDevice="/dev/ttyUSB1" />
<!-- Does the robot have sonar -->
<var sonar="false" />
<!-- Body type for G6 robots [normal, tray] -->
<var bodyType="normal" />
<!-- Cover type for A5 and G5 robots [2008, 2011, 2012]
2008 = Older robots with cover with stabilizers
2011 = Older robots with cover without stabilizers
2012 = Newer robots with more field of view for the laser. -->
<var coverType="2012" />
<!-- Cover color r g b -->
<var color="1 0 0" />
<!-- Only for G5 robots. Does the robot have a human machine interface (display, head) -->
<var hmi="false" />
</root>

When this file exists the driver automatically chooses the right config file for your robot. For each robot at least two files exist. The SCITOS-XYZ.xml file (XYZ == your robots type) contains parameters for all modules. The SCITOS-XYZ-model.xml file contains the model (for visualization and collision avoidance) of the robot. Additionally there may be a file describing the to be ignored intervals of the attached laser range finder for your robot (e.g. intervals where the range scanner "sees" the robot).

If you need to change the parameters of a module do not edit the provided configuration file. Please use the <parameter> tag in your configuration file to alter parameters of the robots modules. E.g. if you want to change the maximum speeds of the robot you need to add the following lines to your config file (assuming the SCITOS unit is in namespace robot):

<parameter name="/robot/Robot.RobotModelProvider.Model">
<MaxForwardVelocity>0.5</MaxForwardVelocity><!-- was 1.0 -->
<MaxBackwardVelocity>-0.2</MaxBackwardVelocity><!-- was -0.4 -->
<MaxRotVelocity>80</MaxRotVelocity><!-- was 120 -->
</parameter>

The next example shows how to alter a parameter of the module 'Localization':

<parameter name="/robot/Robot.Modules.Localization">
<RFIDReaderEnabled>true</RFIDReaderEnabled>
</parameter>

In the following sections each available module is described in more detail. For each module the name as used in the config file is given. To alter parameters of a module just replace 'Localization' in the above example by the name of the module you want to access.

A single configuration file is provided for starting up the robot. It can be started with

> miracenter /path/to/SCITOS/etc/SCITOSDriver.xml

The SCITOSManager

The SCITOSManager class of this domain manages (creates, observes and destroys) all SCITOSModules. The modules will be automatically discovered at runtime when they emit a CANOpen node status. Whenever the manager gets such a status packet from a not yet know node it will retrieve the CANOpen informations for that node. It then searches for a module plugin that matches the product id given in the node info. If such a plugin is found it will be created. Parameters for that plugin that were contained in the config file at startup will be used to initialize the module plugin. In the following sections the different modules will be described in detail.

The driver itself also provides a rigid model of the robot (e.g. for visualization or algorithms that need the footprint or bounding boxes of the robot) and also a drive model (e.g. for calculating movement or motion sampling)

Channels

Subscribed

Published

Services

Published

Parameters

Transforms

The manager class creates all links and publishes all transforms that are contained in the used robot/rigid model.

List of modules

Auxiliary Charger for lead (Pb) gel battery powered robots

Additionally to the normal charger that allows the robot to be charged by cable, the auxiliary charger adds the ability to charge the robot via floor contacts.

Channels

Published

Parameters

Name in config file: AuxCharger

Charger for lead (Pb) gel battery powered robots

The charger module is responsible for charging the robots battery.

Channels

Subscribed

Published

Parameters

Name in config file: Charger

Charger (second hardware generation)

The charger module is responsible for charging the robots battery and provides a persistent error memory for all hardware errors that occurred. It also includes the functionality of the auxiliary charger.

Channels

Subscribed

Published

Services

Published

Parameters

Name in config file: Charger

Drive (Motor controller)

Coming soon...

EBC

The EBC (External Bus Connector) module provides power for external devices that are attached to the robot. It also provides access to the robots CAN-bus. Each EBC module has two ports that are numbered as follows: 0=top port, 1=bottom port. There are three different voltages that a single EBC-Port can deliver (5V, 12V and 24V). One can also alter the maximum current for each voltage.

Parameters

Name in config file: EBC0..EBCX The name is derived from the slot the EBC module is plugged in counting from left to right.

Head module for SCITOS G3

Coming soon...

Head module for SCITOS G5

The head module provides access to the joints of the head (tilt, pan, eyes) and to the LED lighting system. The LED lighting system consists of 8 groups with 4 LEDs per group.

Parameters

Name in config file: Head

Services

Published

Head module for SCITOS G6

Coming soon...

Localization

The localization module provides a RFID floor reader and a gravity sensor. The RFID reader can be used to localize the robot based on RFID tags in the floor.

Channels

Published

Parameters

Name in config file: Localization

Main Control Unit

The main control unit combines motor controller, sonar driver, EBC ports and RFID reader in one module.

Channels

Published

Services

Published

Parameters

Name in config file: MainControlUnit

Transforms

RFID

The RFID reader module provides the functionality to start the robots PC via an authenticated RFID tag.

Channels

Published

Services

Published

Sonar

Coming soon...

Status display

The status display is mostly used in SCITOS-G5 robots. It provides fast access to different settings and shows odometry informations. It can be configured to display a user menu entry.

Channels

Published

Services

Published

Parameters

Name in config file: StatusDisplay