[Rock-dev] [Ric-mars] Mars Simulating Sensors in Rock

Matthias Goldhoorn matthias.goldhoorn at dfki.de
Thu Aug 16 13:33:55 CEST 2012


On 16.08.2012 12:06, Jakob Schwendner wrote:
> Hi,
>
> I am currently setting up a simulation of the spaceclimber, and wanted
> to integrate some sensors (dynamixel/hokyo) into the simulation and also
> output the data on rock ports. I've done this for asguard a while ago,
> but It was a very manual and sometimes painful process. It was certainly
> not very generic. What I did was derive a task from orogen/mars_core,
> that would have all the input and output ports of the sensors and
> control inputs for the simulation. In the task, which runs an instance
> of mars, I manually connected to the asguard plugin and performed the
> forwarding of data from simulation to the ports / vice versa. This
> means, I have to replicate the interface of all the sensors and
> integrate them into a single module. Also the connection has to be done
> everytime a new robot is integrated.
>
> So here is an idea, that I had about improving the integration:
> - deriving simulated sensor tasks directly from the driver tasks. E.g.
> SimulatedHokuyo, SimulatedDynamixel a.s.o
> - Tasks would connect to a mars instance, receive/send sensor or command
> data, and forward it to the input/output ports of the task
>
> In this way, the dataflow could also stay the same for a simulated/real
> environment.
>
> My question are:
> - Whats your opinion to this solution, compared to the more monolithic
> approach we had before?
> - What is the best way to perform this connection to the mars process?
>
> cheers,
>
> Jakob
>
I thought about an similar solution,
my idea was to dynamically create input ports, the creation call will 
give the sensor id and sensor type.
With this method every sensors could be created, and also several 
instances of the same type. The mapping problem will be solved also by 
this method.
This method can be combined with your approach, means creating tasks 
with dynamic_input/output_ports for the sensors.
With this method you can simply try to get the instance of an sensor. 
Because of the now dynamicly_loaded_sensors in mars this method will be 
really generic.
If you want to know howto get an sensors, you could take a look into 
avalon's code.

This way will also cover the multiple-robot scenario.

The drawback is that the robot-knowledge is moved to the ruby-files they 
need to create the ports and mappings.
But the ruby-scripts need to know the ports in any case so i think this 
will be a good solution.

Maybe we could talk in person about this topic.

Matthias



-- 
  Dipl.-Inf. Matthias Goldhoorn
  Unterwasserrobotik

  Hauptanschrift Standort Bremen:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 5
  28359 Bremen, Germany

  Phone: +49 (0)421 178 45-4193
  Fax:   +49 (0)421 178 45-4150
  E-Mail: robotik at dfki.de

  Weitere Informationen: http://www.dfki.de/robotik
  -----------------------------------------------------------------------
  Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
  Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
  Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
  (Vorsitzender) Dr. Walter Olthoff
  Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
  Amtsgericht Kaiserslautern, HRB 2313
  Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
  USt-Id.Nr.:    DE 148646973
  Steuernummer:  19/673/0060/3




More information about the Rock-dev mailing list