[Rock-dev] task interfaces / mars simulation

Jakob Schwendner jakob.schwendner at dfki.de
Mon Aug 27 09:52:01 CEST 2012


As discussed in the last ad-hoc rock meeting, I've added a 
base/orogen/interfaces package to the rock.toolchain package-set. It 
contains task descriptions for tasks which have a lot of common 
interface. Currently I have the following interfaces defined:
- LaserRangeFinder
- IMU
- Servo
The following tasks now subclass these interface tasks:
- Dynamixel <- Servo
- MarsServo <- Servo
- Hokuyo <- LaserRangeFinder
- MarsLaserRangeFinder <- LaserRangeFinder
- xsens_imu <- IMU
- MarsIMU <- IMU

The Mars[xxx] packages are defined in simulation/mars_core. When they 
are used in the same deployment as the Mars task, they can generically 
interface to the simulation, and provide the same handling as the real 
devices. In addition to the common interface configuration they require 
the name of the mars node (e.g. for the LRF, the sensor node, a.s.o). 
The communication uses the same trick as happened in the avalon 
simulation. A singleton used for accessing the simulation engine in the 
mars task from the other tasks. There is definitely room for improvement 
here, but we jointly agreed that this is the most productive way forward 
for now.

What this allows you to do: In principle there is no need for a 
dedicated mars plugin / orogen component anymore now. All you need is a 
deployment, which contains all your simulation devices and a scene file, 
which defines them.

Unless there are objections, I will push this stuff to master this 
afternoon. Let me know if there are any problems, especially with the 
real devices (should be ok, but we've had some problems with task 
subclassing in the past).

cheers,

Jakob



More information about the Rock-dev mailing list