The OMG has developed the Robot Technology Component (RTC) specification as a way to increase the efficiency of robot development. Based on this specification, AIST has developed the OpenRTM-aist. RT System Editor is one of the development tools included in this architecture. It is used for manipulating RT Components in a real-time graphical interface. It is a plugin for the Eclipse IDE, and interacts seamlessly with other Eclipse plugins.
The OMG has developed the Robot Technology Component (RTC) specification as a way to increase the efficiency of robot development. Based on this specification, AIST has developed the OpenRTM-aist. RT System Editor is one of the development tools included in this architecture. It is used for manipulating RT Components in a real-time graphical interface. It is a plugin for the Eclipse IDE, and interacts seamlessly with other Eclipse plugins.
This document is targetted at those who already have an understanding of the basic principles of RT Components. Details of the RTC specification and use can be found at the OMG and AIST.
RT System Editor allows the manipulation of RT Components in real time using a graphical interface.
Functionality | Overview |
Display/edit component configuration | Display the configuration profile of the selected component in the configuration view and allow it to be edited. |
Change component action | Change the action of the selected component. |
Combine components | Create a system by combining components in the editor. |
System save/load | Save the contents of the system editor as an RTS Profile. Load RTS Profiles into the system editor. (Does not change port connections or configuration parameters.) |
System reset | Open an RTS Profile using the system editor, and have the system restored based on the profile contents. (Restores port connections and configuration parameters as well.) |
The following software is required to use RT System Editor.
Software | Remarks |
Java Development Kit 6 | Note: Java1.5 (5.0) is not suitable. |
Eclipse 3.2.1 | Eclipse IDE |
Eclipse EMF 2.2.4 EMF+SDO Runtime or XSD Runtime | Eclipse plugin required by RT System Editor Note: be sure to use versions that match your Eclipse version. |
Eclipse GEF 3.2.2 | Eclipse plugin required by RT System Editor Note: be sure to use versions that match your Eclipse version. |
RT Name Service View | Development tool included with OpenRTM-aist required by RT System Editor |
RT Repository View | Development tool included with OpenRTM-aist required by RT System Editor |
RT System Editor is designed for OpenRTM-aist. It may no work with other RTC platforms.
The views used by RT System Editor are described below.
View | Description |
Name Service view | Displays the contents of registered name servers in a tree layout. |
Configuration view | Displays and allows editing of the configuration information of the selected RT Component. |
Manager Control view | Control the selected manager. |
Composite Component view | Display and edit the public port information of the selected composite component. |
Property view | Displays the profile of the selected RT Component. |
System Editor | Graphically displays the status of RT Components and allows it to be changed. |
Offline System Editor | Graphically display and edit RT Component specifications from local storage or RT Repositories. |
OpenRTM-aist uses name servers for management and publication of RT Components. The Name Service View allows the display and editing of these name services.
The RT Name Service view provides the ability to graphically manipulate RT Components in real-time. The offered functionality is as follows:
Functionality | Overview |
Connect to and edit name servers | Connect to a name server and display the components registered with that server in a tree view. |
Display component profiles | Display the profile information of the selected component in the property view. |
From the Window menu, select Display View and then Name Service View.
The standard Eclipse Property view can be displayed in the same way.
Click on the Add Name Server button or select Add Name Server from the context menu.
In the Connect Name Server dialog, enter the IP address and port of the name server. If the port is omitted, the default port as configured in the RT System Editor settings is used. This defaults to 2809.
When Eclipse is restarted, the name servers that were connected in the previous session will be automatically connected again. If they don't exist, it will attempt to connect to localhost:2809.
To delete a connected name server, click the Delete from View button.
If a name server has components registered with it, they can be displayed in a tree layout.
The icons displayed in the view are described below.
Icon | Type | Name |
![]() |
host_cxt | Host context |
![]() |
mgr_cxt | Manager context |
![]() |
cate_cxt | Category context |
![]() |
mod_cxt | Module context |
![]() |
Except above | Folder (except above contexts) |
![]() |
None | RTC |
![]() |
None | Manager |
![]() |
None | Manager |
![]() |
None | Object (non-RTC) |
![]() |
None | Registered with the name server, but the object itself cannot be accessed. |
The Name Service View is always observing connected name servers and updating the display. The update period can be configured in the RT System Editor settings. The display can also be refreshed manually. Click the Refresh button at the top of the view or select Refresh from the context menu to do so.
When the Name Service View becomes crowded with too many RT Components, the view's root can be moved down the tree. Right-click on the tree node you wish to make the new root and select Go Into.
Select Go Back to move the root up one level, or Go Home to move it back to the actual root of the tree.
When the Name Service View becomes crowded with too many RT Components, a filter can be created to limit what is displayed. Click the Name Service View Filter button to add a filter.
In the displayed Name Service Filters dialog, select the items to hide from the view.
Check the items you wish to exclude, and they will be hidden in the Name Service view display. Check Naming object name and enter a name to hide objects who's name matches. The object name condition can be a match against the start of the name or a partial match.
Objects registered with a name service can be deleted from that service using the Name Service View. Right-click on the object to delete and select Delete from Name Service from the context menu.
The Name Service View can be used to register objects to a name service. To add an object, right-click on the context it should be a child of and select Add Object from the context menu.
In the Add Object dialog, enter the object's name, type and IOR.
Contexts can be added to and deleted from name servers using the Name Service View. To add a context, right-click on the context it should be a child of and select Add Context from the context menu.
Enter the name and kind of the context in the Add Context dialog. The kind can be one of the following.
Kind | Name |
host_cxt | Host context |
mgr_cxt | Manager context |
cate_cxt | Category context |
mod_cxt | Modual context |
Other | Folder (context other than the above) |
The Name Service view has a function to delete all zombie objects at once. Click the Kill All Zombies button at the top of the view to do remove all zombie objects.
The Configuration View displays the configuration of the selected component, and allows it to be edited. The left lists available configuration sets, while the right displays the properties of the selected configuration set.
No. | Description |
① | Name of the selected component. |
② | Name of the selected configuration set. |
③ | Displays the active configuration set, and allows it to be changed. |
④ | List of configuration sets. |
⑤ | Properties of the selected configuration set. |
⑥ | Property values of the selected configuration set. |
⑦ | Add/delete configuration set buttons. |
⑧ | Add/delete properties buttons. |
⑨ | Apply/cancel configuration changes. |
Changes made in the Configuration View will not take effect until the Apply button is pressed. Edited values are highlighted.
To edit a configuration value, click the Edit Value button to display the dialog below.
When there are multiple configuration sets, the tabs at the top of the dialog will allow the set currently being edited to be changed (10). Configuration parameters can specify an editing widget. When a widget is defined, the widget will be displayed for that parameter and the parameter can be edited using it (11). Widgets may be sliders, spin boxes or radio buttons. When no widget is specified, a text box is used as the default. Parameters may also have limits specified. When the widget type is a slider or spin box, these limits are required. When not specified in these cases, the widget will default to a text box. #br
widget | image | Explanation |
Slider | ![]() |
Select a value between the specified minimum and maximum values using a slider. Values can also be entered using a text box. |
Spinner | ![]() |
Select a value between the specified minimum and maximum values using a spin box. Fractional values are based on the specified minimum and maximum values. However, negative numbers cannot be specified. For example, if the maximum value is 10.00, the fractional part will be displayed to two decimal places. |
RadioButton | ![]() |
Select values using a radio button. |
TextBox | ![]() |
Standard text box entry. |
For those parameters that have limits specified, range checks will be performed. Parameters that fail the range check are highlighted in red in the dialog. When the OK button is pressed, an error dialog is displayed if there are any parameters that fail their range check.
When a manager is selected in the Name Service view, the Manager Control view becomes active and allows control of the selected manager.
No. | Description |
① | Display loadable modules. |
② | Display loaded modules. |
③ | Display components. |
④ | Generate components. Displays a component construction dialog where new components can be created. After generating, the new component will appear in the list of components, ③. |
⑤ | Manager diplication. Creates a new manager. |
⑥ | Shut down the selected manager. |
⑦ | Table to display modules or components. |
⑧ | Load modules by specifying a URL. |
⑨ | Load and unload modules. Load or unload the module selected in the table (⑦), or specified in the URL entry (⑧). |
To load a module, click the Loadable Modules button and select a module in the displayed list of loadable modules, then click the Load button. Alternatively, enter the URL of the module into the URL entry field and click the Load button.
To unload a module, click the Loaded Modules button and selected a loaded module from the list, then click the Unload button.
To create a new component, first click the Create button. Select the type of component to create and click OK. The new component will be registered with the name server by the manager. It will be visible in the list displayed by the Active Components button.
Component types are specified by modules loaded into the manager. The Parameter text box allows parameters for the component to be specified. These should be entered in URL parameter format, e.g. "param1=value1¶m2=value2". The following general parameters are available for all components.
Parameter | Description |
instance_name | Component instance name. If not specified, the type_name value is used. |
type_name | Component type. |
description | Description of the component. |
version | Version number. |
vendor | Vendor of the component. |
category | Category of the component. |
Configuration set values can also be set using the paramater text box. The format for these is "conf.NNNN.PPPP=VVVV". NNNN is the configuration set name, PPPP is the parameter name, and VVVV is the value. The example below illustrates setting parameters in an instance of the ConsoleIn component. A configuration set called "mode1" is created and the parameters "input_mode" and "input_cycle" are set.
The composite component view displays the public information about the selected composite component, as well as change which ports are publically available.
No. | Description |
① | Composite component instance name. |
② | Component component type name. |
③ | Port public/non-public status. |
④ | Instance names of the composite component's child components. |
⑤ | Port names of the child components. |
⑥ | Apply changes to port public/non-public status. |
⑦ | Cancel changes to port public/non-public status. |
Settings edited in the composite component view are not applied until button ⑥ is pressed. Changed but not applied values are highlighted in red. Ports selected in the system editor are highlighted in yellow.
Composite component ports that are connected to ports of other components in the system editor are highlighted in grey and cannot be edited.
The Property View displays the profile information of the selected RTC or connector. Unlike the Configuration View, this information updates continuously, even if the same component remains selected.
For details on the information contained in an RTC Profile, see the "RT Name Service View Operation Manual." Connector profile information contains the Name, DataType, InterfaceType, Dataflow ype and Subscription Type. The icons are described below.
Icon | Name | Displayed contents |
![]() |
RTC | InstanceName, TypeName, Description, Vender, Category, State (Based on the first ExecutionContext's LifeCycleState) |
![]() |
ExecutionContext | State、Kind、Rate |
![]() |
ServicePort | Name, Property List |
![]() |
Outport | Name, Property List |
![]() |
Inport | Name, Property List |
![]() |
PortInterfaceProfile | InterfaceName, TypeName, PortInterfacePolarity |
![]() |
Manager | Components (created components list) Loadable Modules Loaded Modules |
In the RTC specification, there is a RTC LifeCycleState per ExecutionContext. Even if there are multiple states, only the STATE used by the first ExecutionContext will be displayed.
The System Editor graphically displays the state of RTCs in real time. It also allows the ports to be connected and the state of RTCs to be controlled in order to build and contorl a complete system.
The connection method between the ports of RTC and the method of performing RTCare explained.
To open a new System Editor, click the Open New System Editor button in the toolbar or select Open New System Editor from the File menu.
Open New System Editor button | Open New System Editor menu entry |
To add an RTC to the System Editor, drag and drop them from the Name Service View into the System Editor.
Using the system diagram, the selected RTC can be moved between the various states - Activate, Deactivate, Reset, Finalize, Exit, Start and Stop. This can also be done through the Name Service View.
The meaning of these actions is described below.
Action Name | target | meaning |
Activate | Begin executing the selected RTC using the first ExecutionContext | Enter the Active state |
Deactivate | Enter the Deactivate state | |
Reset | Enter the Reset state | |
Finalize | Selected RTC is executed | Enter the Finalize state |
Exit | Enter the Exit state | |
Start | Begin executing the selected RTC using the first ExecutionContext | Enter the Start state |
Stop | Enter the Activate state |
In addition, in order to easily manage an entire system, the System Editor allows all contained components to be activated, deactivated, started and stopped at once using buttons in the tool bar or the context menu.
Using the "All" actions, ExecutionContexts other than the first can also be used. The result may differ from controlling each component individually.
The System Editor can be used to connect ports. Drag and drop between two ports to connect them.
After dragging and dropping, a dialog will be displayed requesting the necessary information for the connection.
This dialog is used to build a Connector Profile. The Connector Profile must meet the various conditions of the ports. This dialog only allows information that meets these conditions to be entered. If two ports cannot be connected due to conflicting conditions, this is indicated when attempting to drag a connetion between them.
Port connections are broadly divided into data port connections and service port connections. for details, please refer to SystemEditor(PortConnection).
To remove the connection between two ports, select it and click the Delete button, or right-click it and select Delete from the context menu.
To disconnect all ports at once, right click on a port and select All Disconnect.
To create a composite component, first select more than one component. Then select Create Composite Component from the context menu.
№ | Dialog name | Description |
① | Manager | Select a manager from those displayed in the name service view. The composite component will be created in that manager. |
② | Name | Instance name of the composite component. |
③ | Type | Set the type of the component. The following types are available: PeriodicECShared All RTCs will only share the execution context. The individual RTCs will have separate state, allowing multiple states to exist within a single composite component. PeriodicStateShared As well as sharing an execution context, the components will also share state. Grouping Nothing will be shared betweeen child components. |
④ | Path | Path setting for the composite component. |
⑤ | Port | Select which ports of the child components will be proxied to the composite component, making them accessible from outside the composite component. |
⑥ | - | Select or deselect all ports. |
When creating a composite component, the child components that were selected in the system editor will disappear and a new composite component will take their place. Double-click on this new component, or right-click on it and select Open with System Diagram Editor to open the component's internals in a new system editor.
Open the composite component in a system editor and drag components from the name server view into it to add them as child components. Newly-added components start with all their ports private.
Open the composite component in a system editor and delete the unwanted child component. The child component will be removed from the composite component and displayed in the system diagram in which the composite component itself is displayed.
Right-click on the composite component and select Delete to remove the composite component from the diagram. If the component is open in another system diagram, a warning dialog will be displayed.
Right-click on the composite component and select Decompose Composite Component. exit() will be sent to the component and the component will terminate. If the component is open in another system diagram, a warning will be displayed. The child components will be displayed in the system diagram in which the composite component was displayed.
When editing the internals of a composite component, the public ports of child components will be displayed using the following symbols.
name | image |
InPort | ![]() |
OutPort | ![]() |
ServicePort | ![]() |
To make a port private, right-click on it and select Unexport. To make a port public, right-click on it and select Export.
If a port is connected to another component, it cannot be made private until it is disconnected.
The contents of the System Editor can be saved. Select Save or Save As... from the File menu and select a suitable file name.
fig75SaveSystemEditor2_en.png |
fig75SaveSystemEditor3_en.png |
The profile information dialog will be displayed. Set the required information and click OK. The system information will be saved to the profile.
Name | Meaning |
Vendor | Used to differentiate the RT system. Required. |
System Name | Used to differentiate the RT system. Required. |
Version | Used to differentiate the RT system. Required. |
Path | File name to save the profile to. Required. |
Update Log | Enter a change log here. |
Required | Components required by the RT system. |
To load a previously-saved System Editor state, right-click on the editor and select Open...
After loading, RT System Editor will attempt to get the latest state from remote systems. To restore the system, use the option described below.
To load a previously-saved System Editor state and restore it, right-click on the editor and select Open and Restore...
Note When there are multiple connections between the same ports, the connection lines will not be differentiated.
Saved systems can also be restored using the console. This is accomplished using the RT System Editor "ConsoleRestore" package (distributed separately). In this tool's folder, exectute run.bat, passing it the saved file.
~(Example) C:\tmp\RtcLink\ConsoleRestore>run.bat C:\tmp\save.rtclink
RTCs added to the System Editor are displayed as rectangles with icons indicating the ports. The colour of the rectangle changes to represent the RTC's current state.
The icons and colours are described below.
No. | Name | Shape | State | Default Color | |
1 | RTC | IconShape1_en.png |
CREATED | IconWhite_en.png |
White |
INACTIVE | IconBlue_en.png |
Blue | |||
ACTIVE | IconLightGreen_en.png |
Light Green | |||
ERROR | IconRed_en.png |
Red | |||
UNKNOWN | IconBlack_en.png |
Black | |||
2 | Execution context (First only) |
(RTC's outline) | RUNNING | IconGray_en.png |
Gray |
STOPPED | IconBlack_en.png |
Black | |||
3 | InPort | IconShape2_en.png |
Unconnected | IconBlue_en.png |
Blue |
Connected(1 or more) | IconLightGreen_en.png |
Light Green | |||
4 | OutPort | IconShape3_en.png |
Unconnected | IconBlue_en.png |
Blue |
Connected(1 or more) | IconLightGreen_en.png |
Light Green | |||
5 | ServicePort | IconShape4_en.png |
Unconnected | IconLightBlue_en.png |
Light Blue |
Connected(1 or more) | IconCyan_en.png |
Cyan |
* The colours can be configured in the RT System Editor settings.
The System Editor updates its display of component states in real time. The update period can be configured using the RT System Editor settings.
The display of each individual RTC can be changed. This has no effect on the system or the actual component, it is merely changing how the RTC is displayed in the System Editor.
The location and size are displayed in the status bar.
- Rotating an RTC ~Select the RTC, then click the middle mouse button to flip the component horizontally. Hold shift while clicking the middle mouse button to flip the component vertically.
- Removing an RTC from the System Editor ~ To delete an RTC from the editor, select it and click the Delete button, or right-click on it and select Delete from the context menu. This will not have any effect on the running system.
-Moving port connection lines ~To move a line connecting two ports, select the line and use the handles to move it around. Vertical lines can be moved side-to-side, while horizontal lines can be moved up and down.
Data port connections connect an Inport and an OutPort. The following dialog is displayed when creating this type of connection.
№ | Item | Connector Profile | Conditions |
① | Name | name | None |
② | Data Type | properties “dataport.data_type” | Type of data to be transmitted between the ports connected by this connector. Select from the types suported by all ports involved. When Any is included, anything is permitted. |
③ | Instance Type | properties “dataport.interface_type” | The interface type specified by the RT system designer or the RT Middleware on which the RTC is executing. Select from the types supported by all ports involved. When Any is included, anything is permitted. |
④ | Dataflow Type | properties “dataport.dataflow_type” | The data flow type specified by the RT system designer or the RT Middleware on which the RTC is executing. Select from the types supported by all ports involved. When Any is included, anything is permitted. |
⑤ | Subscription Type | properties “dataport.subscription_type” | Required when the Dataflow Type is "Push." The subscription type specified by the RT system designer or the RT Middleware on which the RTC is executing. Select from the types supported by all ports involved. When Any is included, anything is permitted. |
⑥ | Push Rate(Hz) | properties “dataport.push_interval” | Required when the Dataflow Type is "Push" or the Subscription Type is "Periodic." Specifies the transmission frequency when the subscription type is periodic. Must be a number. |
~For items ②-⑤, the values allowed by RT System Editor are generated by matching character strings from the port lists. Because of this, when both ports only list ANY, it cannot determine the permissable values. For this reason, RT System Editor allows character string entry when both ports only list ANY. When this is possible, it is indicated in the dialog.
A service port connection is between two ServicePorts. The following dialog is displayed when creating this type of connection.
№ | Item | Connector Profile | Conditions |
① | Name | Name | None |
There are no required conditions when connecting service ports. However, if the PortInterfaceProfile between two ServicePorts does not completely match*, a warning will be displayed in the Connector Profile dialog.
~* "Completely match" means the PortInterfaceProfile "type" is the same and the polarity is PROVIDED and REQUIRED, respectively. Note When there are multiple connections between the same ports, the connection lines will not be differentiated.
To open a new Offline System Editor, click Open New Offline System Editor in the toolbar, or select Open New Offline System Editor from the File menu.
To add a component specification to the editor, drag it from the repository view.
With the exception of executing components, the Offline System Editor is capable of all functions of the System Editor.
The RT System Editor settings can be accessed from the Window menu's Preferences... option, and selecting RT System Editor.
The connection period determines how often RT System Editor collects the system information and refreshes its information displays. The unit is milliseconds. If zero is specified, no synchronisation is performed.
This screen allows the colours used in the System Editor to indicate various states to be configured. For information on what each state means, see RTC Display.
This screen allows the parameters selectable at port connection time to be set. When connecting ports, the selectable values for the options "Interface Type," "Data Flow Type," and "Subscription Type" are as set here. For details on the meaning of these, see the data port connections section.
The connection period determins how often the Name Service View gathers information and refreshes its displays. The unit is milliseconds. If zero is specified, synchronisation is disabled. The default port number determines the default port used in the Connect Name Server dialog when adding a name server to the name service view without explicitly specifying a port.
The timeout value determines how long to wait when attempting to connect during synchronisation. The units are milliseconds.
The effects of the connection period and timeout value are illustrated below. In this example, the period is 1000ms and the timeout is 100ms.
A. RT System Editor is constantly gathering information about the system. If a registered object does not exist, it must wait for a timeout. This can cause a large slowdown. Objects that do not exist should be deleted from the Name Service View, as well as any connections to other objects. This should restore performance.
A. RT System Editor stores temporary information at runtime in these files. Do not delete them while RT System Editor is running. When RT System Editor is stopped, it is safe to delete them.
A. The Name Service View is constantly gathering information about objects registered with the name servers. If a registered object does not exist, it must wait for a timeout. This can cause a large slowdown. Objects that do not exist should be deleted from the Name Service View, as well as any connections to other objects. This should restore performance.
A. It is not possible to tell many connections apart. Check using the project file.
RT System Editor is developed using the following libraries and products. We thank these projects.
Apache Jakarta Commons Lang Copyright 2001-2006 The Apache Software Foundation
This product includes software developed by The Apache Software Foundation.