flexicomps_en

flexicomps

Flexible utility components for OpenRTM-aist.

Download

The components can be downloaded here.


The latest source is available at the github page, here.

Requirements

The components require OpenRTM-python-1.0.0 or greater.


The components use the new string formatting operations that were introduced in Python 2.6. They will not function with an earlier version of Python. They have not been tested with Python 3 and it is likely that several changes will be necessary to make them function using this version of Python.

FlexiLogger

A highly-flexible logging component.

Description

A logging component capable of both recording and playing back data from/to any number of ports of any data type. The number and type of ports is controlled by command-line options supplied when the component is executed. Playback of logged data usually occurs at the same rate the data was received, allowing a logged system to be simulated using this component. The playback rate can be scaled to achieve faster or slower playback, if desired.

Input ports

Set at execution-time.

Output ports

Set at execution-time.

Service ports

None.

Configuration options

None.

Usage

Execute flexilogger.py, providing a port specification. For example:

 ./flexilogger.py -p TimedInt -p TimedDoubleSeq:3 -o
Extra help is available using the ''--help option.

FlexiFilter

A flexible data reorganising and transforming component.

Description

This component filters data received on its input ports and transmits it on its output ports. The filtering process allows for reorganisation of the received data. Data transformations are automatically performed as necessary, allowing any data type to be mapped to any other data type. For example, 3 input ports, each of which receives a pair of floating-point numbers, can be reorganised so that one number from each port goes to an output port emitting three floating-point numbers, while the other number from each port is redirected to its own output port emitting a single integer number.


Data scaling by a scale factor before and after reorganisation is also supported.

The number and type of ports is controlled by command-line options supplied when the component is executed.

Input ports

Set at execution-time.

Output ports

Set at execution-time.

Service ports

None.

Configuration options

None.

Usage

Execute flexifilter.py, providing a port specification. For example,

 ./flexifilter.py -i TimedFloatSeq:2 -i TimedString -i TimedLong -o TimedStringSeq:4 -o TimedFloat -m "2>0:2,0:1>0.1>0:3,0:1>1"
This will produce a filter as shown below.


flexifilter_diagram.png

Extra help is available using the --help option.

FlexiAdd

Add multiple data streams together to produce a single output.

Description

This component is used to add multiple data streams, typically output by different components. The result is output as a single data stream. An example use case for this component is implementing a motor schemas-based control scheme. The number and type of input ports is controlled by command line options supplied when the component is executed.

Input ports

Set at execution-time.

Output ports

Set at execution-time.

Service ports

None.

Configuration options

None.

Usage

Execute flexiadd.py, providing a port specification. For example:

 ./flexiadd.py -p TimedDouble:3
 ./flexiadd.py -p TimedIntSeq:5
Extra help is available using the --help option.

FlexiConst

Produce a constant value of a specified type and a specified interval.

Description

FlexiConst provides a data stream of a constant value. The data type and value to output are specified on the command line at execution time. The data type can be any valid Python expression, such as a floating-point number or a list of values. The time between each output of the constant can be controlled.

Input ports

Set at execution-time.

Output ports

Set at execution-time.

Service ports

None.

Configuration options

None.

Usage

Execute flexiconst.py, providing a port specification. For example:

 # Outputs 6.2 every 0.5s
 ./flexiconst.py -p TimedDouble -c 6.2 -s 0.5
 # Outputs every 10s
 ./flexiconst.py -p TimedIntSeq -c "[1,2,3]" -s 10

Extra help is available using the --help option.

FlexiDump

Dump data streams to stdout with varying levels of verbosity.

Description

FlexiDump is an extremely useful component. It can be used to watch the contents of any data stream. If you are unsure if a component is outputting the correct data, or even outputting data at all, FlexiDump is the tool you need. Create a FlexiDump instance with the correct input port types and connect it to the output ports you want to check. There is no need to alter the running system, or to modify existing components.

Input ports

Set at execution-time.

Output ports

Set at execution-time.

Service ports

None.

Configuration options

None.

Usage

Execute flexidump.py, providing a port specification. For example:

 ./flexidump.py -p TimedDouble -v 1
 ./flexidump.py -p TimedDoubleSeq -v 2
Extra help is available using the ''--help option.

FlexiDupe

Duplicate a single data stream into many data streams.

Description

This component is no longer needed in OpenRTM-1.0.0.


FlexiDupe is used to duplicate the output of a component, allowing that component to be connected to multiple other components at the same time. This is not possible to do directly in versions of OpenRTM prior to 1.0.

Input ports

Set at execution-time.

Output ports

Set at execution-time.

Service ports

None.

Configuration options

None.

Usage

Execute flexidupe.py, providing a port specification. For example:

 ./flexidupe.py -p TimedDoubleSeq:3
Extra help is available using the --help option.

FlexiSelect

Select one data stream from many based on the value of another data stream.

Description

The FlexiSelect component provides selection between two or more data streams of the same type based on another data stream. An example use case is to select between two robot controller components based on the output of a GUI component or the output of a manager component. The multiple data streams are chosen between and the single chosen stream is output.


The selection port is of type TimedShort. It is the zero-based index of the input data stream to use.

Input ports

Set at execution-time.

Output ports

Set at execution-time.

Service ports

None.

Configuration options

None.

Usage

Execute flexiselect.py, providing a port specification. For example:

 ./flexiselect.py -p TimedDoubleSeq3
Extra help is available using the --help option.

Download

latest Releases : 2.0.0-RELESE

2.1.0-RELESE Download page
2.0.1-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK