anyKode Marilou
Embedded devices

Embedded devices.

Embedded devices allow robots to perceive the environment and to interact with it. 




Devices are always attached to an entity in the model. For example a distance sensor is attached to a zone type entity, a motor is attached to a joint axis. Some devices are exclusive, like servos and motors


For each entity, the Modify Panel shows a Devices sub-panel: Select the entity, show its Modify panel then show the Devices sub-panel. This sub-panel defines the basic devices parameters: 



-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------


Indicates if device is enabled or not. A disabled device is ignored in the simulation engine startup and make the QueryDevicexxx or QueryDevicexxx functions to fail (NULL is returned).

The name is the 'short' name of the device. In MODA programming, you need the complete device name in order to make QuerCoreDevicexxx or QueryDevicexxx to find the device.

For exemple, a motor named "mymotor", attached on an axis named "axisred" from a joint named "hinge0" : the motor full name is "hinge0/axisred/mymotor".

For using this motor:
MyRobot=Connection->QueryRobotPHX("/myrobot"); //or QueryRobotPHX("/") for getting the 'world'

The full name is relative to the PHX parent (or PHX "/" for the world).

The startup mode determines the device startup state.

  • On : the device enter in the ON mode : device updates its internal states when required (physics loops), it can receive and manage MODA server messages. Call the Off method to shutdown the device.
  • Off: the device startups with minimum updates, cannot receive MODA server messages. In this case, the deviceresponse field (MODA programming) is MODA_EDEVICEISOFF. Call the On method to startup the device.
  • Auto on (default): Device startups in Off state and is automatically set to On by MODA server if an application try to reach the device. This default mode is useful because the device consumes a minimum of CPU time until really used by an application.



Modify/Define device window:
Devices parameters are shown in a dialogbox with several panels.

Base: manufacturer information.

Device: device settings. Those settings ban be saved in a file and re-used for another device using the Open button.

Sound: this panel is shown if the device is able to generate sound (serovos, motors etc.) (Automatic sound settings)

Instance: devices's instance settings : they are not save-able in the device file and are valid only for the sensor's current instance.

Settings locked from file: indicates if device parameters are stored locally or in a file: 

  • If the option in not checked, device's parameters are saved/read in/from the PHX file and are specific to this device instance.
  • If the option is checked, settings are read from the device's file. In this case, the file is shared with all devices that are locked on this file.
  • Checking the option causes the parameters to be read from the file overriding all previous changes. Before checking the option, use the Save button in order to update the file.



Absolute Compass sensors.


Acceleration, angular position and angular velocity sensors.


Actuating cylinder/jack.


Force and Torque Sensors (joints axes). 

Image capture / cameras.


Contact and force sensors.


Distance sensors.


Data exchange between real world and simulated device. 
GPS sensor. 
LCD display. 
LED . 
Lidar sensors (Light Detection and Ranging) 
Controlling lights objects. 

Motors and servo-motors.


Generating force using air pressure.


Laser Range finders sensors. 
Generate 3D spatial sounds. 

Using Surface Motion devices.


Using Touch Area devices.


Documentation v4.7 (18/01/2015), Copyright (c) 2015 anyKode. All rights reserved.
What do you think about this topic? Send feedback!