[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