rtc.conf reference

General settings


Version of the configuration file.
  • Example:
     config.version: 1.0


Version of OpenRTM-aist.
  • Example:
     openrtm.version: 1.0.0

Settings related to manager


Name of manager. When a manager is registered with a name server, it is registered with the name set here.

  • Designation: Any name that can be registered in a name server etc.
  • Default value: manager
  • Example:
     manager.name: manager


Specify the format for registering the manager in the name server. below You can use specifiers that begin with % .

Specifier meaning
%n Manager name
%h Host name
%M Manager name
%p Manager process ID
  • Specification:/<name>.<Kind>/<name>.<Kind>/...
  • Default value:% h.host_cxt /%n.mgr
  • Example:
     manager.name: %h.host_cxt/%n.mgr


Whether or not to make this process master manager? Command line option If you specify - d , even if this value is set to NO, it becomes the master manager.

  • Designation: YES or NO
  • Default value:
  • Example:
     manager.is_master: NO


Setting whether to activate manager 's CORBA servant. If you set YES, the manager's CORBA servant will start, so you can operate the manager remotely. In the case of NO, since the CORBA servant is not activated, it is impossible for the manager to operate via CORBA.

  • Designation: YES or NO
  • Default value: YES
  • Example:
     manager.corba_servant: YES


Master manager address and port number. The master manager can access by corbaloc format URL specification, but specifies the port number to be used at that time. In addition, the slave manager interprets the master manager specified here as its own master manager, and accesses and negotiates the master manager at startup.

  • Specification: <host_name>: <port>
  • Default: localhost: 2810
  • Example:
     corba.master_manager: localhost:2810


When there is no RTC on the process, that is, when the last one of the RTCs on the same process is terminated, it specifies whether to shut down the manager and terminate the process. In the case of YES, the process is terminated when there is no RTC. In the case of NO, both the manager and the process continue to move even when there is no RTC.

  • Designation: YES or NO
  • Default: YES
  • Example:
     manager.shutdown_on_nortcs: YES


Check the presence or absence of RTC in the process at regular time intervals, and if there is no RTC, set whether or not to shut down manager and process. If yes, if there is no RTC, the manager and process are automatically shut down. If NO, the manager and processes continue to operate even if there is no RTC.

The difference from manager.shutdown_on_nortcs is that the shutdown trigger, While manager.shutdown_on_nortcs removes RTC, manager.shutdown_auto is a point in time.
  • Designation: YES or NO
  • Default: YES
  • Example:
     manager.shutdown_auto: YES


Period to check for the presence or absence of RTC in the process. The unit is seconds. If manager.shutdown_auto above is set to YES, check the presence or absence of RTC at the cycle set by this option.

  • Designation: Numeric value (Unit [s])
  • Default: 10.0
  • Example:
     manager.auto_shutdown_duration: 10.0


This option binds manager processes to specific CPUs. Optional arguments must be one or more CPU IDs separated by commas. The CPU ID starts from 0, and the maximum value is the number of CPU cores minus one. If an incorrect CPU ID is specified, this process is set to use all CPUs.

  • Specify: Specify the CPU ID to be bound by a comma
  • Default: None
  • Example:
     manager.cpu_affinity: 0,1


The master manager activates the slave manager and the RTC in response to a request from a remote application or the like. Slave managers may be not only C++ language versions, but also Java and Python versions. This option sets the language supported by the master manager.

  • Designation: Comma separated languages such as C++, Java, Python etc.
  • Default: C++, Java, Python
  • Example:
     manager.supported_languages: C++, Python, Java


Extension of RTC module for each language.

  • Designation: extension name of shared object
  • Default:
  • Windows: dll
  • Linux, etc.: so
  • Mac OS X: dylib
  • Example
     manager.modules.C++.suffixes: dll
     manager.modules.C++.suffixes: so
     manager.modules.C++.suffixes: dylib


Manager program name by language.

  • Specify: Manager command name
  • Default:
  • C++: rtcd
  • Python: rtcd_python
  • Java: rtc_java
  • Example
     manager.modules.C++.manager_cmd: rtcd
     manager.modules.Python.manager_cmd: rtcd_python
     manager.modules.Java.manager_cmd: rtcd_java


Profile acquisition command name for each language.

  • Specify: Profile acquisition command name
  • Default:
  • C++: rtcprof
  • Python: rtcprof_python
  • Java: rtc_java
  • Example
     manager.modules.C++.profile_cmd: rtcprof
     manager.modules.Python.profile_cmd: rtcprof_python
     manager.modules.Java.profile_cmd: rtcprof_java


RTC module load path for each language.

  • Specification: RTC module load path.
  • Default:
  • C++: ./
  • Python: ./
  • Java: ./
  • Example

 manager.modules.C++.profile_cmd: ./, /usr/share/OpenRTM-aist/components/cxx

Settings related to CORBA


Specify arguments to give to CORBA. CORBA has different command line options for each implementation. Normally the command line argument is given to the ORB_init () function which is the CORBA API, but this option passes the specified character string to this ORB_init () function.

  • Specified: String
  • Default: Empty string
  • Example:
     corba.args: -ORBInitialHost myhost -ORBInitialPort 8888

Designation example 1

Be careful when sending image data etc. over the data port when the data size to be sent at once exceeds about 2 MB. In omniORB, the size handled by giop (General Inter-ORB Protocol) is "2097152 B (2 MB)" by default, and if you try to send data exceeding this size, it is impossible to send correct data due to giop limitation. It is possible to change the maximum size using the corba.args option. This specification must be specified in both OutPort and InPort.

 corba.args: -ORBgiopMaxMsgSize 3145728 # Add this line
                               # Max size to 3M

In addition to specifying it in corba.args, this restriction can be relaxed by specifying environment variables as follows.

  export ORBgiopMaxMsgSize=3145728


In CORBA, access is made by referring to the remote object called IOR, but in the IOR, usually only one set of the address and port number of the node where the object operates is described. When there are two or more network interfaces in the node on which OpenRTM is running, unintended addresses may be allocated as addresses of nodes included in the IOR.

In order to solve this, you can specify the address of the network used by CORBA with this option. Host address: port number , but you can omit port number. However, : (colon) can not be omitted.

  • Specification: <host_addr>: <port>
  • Default: Empty string
  • Example:
     corba.endpoints: myhost:      (use myhost and default port)
     corba.endpoints: :9876        (use default addr and port 9876)
     corba.endpoints: myhost:9876  (use myhost and port 9876)


An option that allows you to specify multiple endpoints of corba.endpoint. Depending on the implementation of the ORB, the IOR can contain multiple addresses. However, in JavaIDL which is the Java standard CORBA, when accessing the object via IOR specifying multiple addresses, problems such as slow operation are reported, so care is required.

You can specify multiple address: port pairs separated by , (comma) . By specifying all as a special string, all addresses of the node can be included in the IOR.

  • Specification: <host_addr>: <port>, <host_addr>: <port>, ... or all
  • Default: Empty string
  • Example:
     corba.endpoints: all



Option to specify a name server to register RTC etc. Multiple name servers can be specified with comma separated values. Especially when there is no name server at the specified address and port number, it does not cause an error in particular, and it registers the name of RTC only to existing name servers.

  • Specification: <host_addr>: <port>, <host_addr>: <port>, ...
  • Default: localhost
  • Example:
     corba.nameservers: openrtm.aist.go.jp:9876
     corba.nameservers: rtm0.aist.go.jp, rtm1.aist.go.jp, rtm2.aist.go.jp
     corba.nameservers: localhost


When there are multiple NICs in a node, there are cases where the address included in the IOR of the RTC registered on the name server is not appropriate. For example, if a node has two addresses of and and is registered on two name servers existing in and, if is the default on this node If it is a network interface to be used, the IOR registered in the above two name server name servers includes only At this time, in the network, the IOR on the name server is meaningless in which an unreachable address is described.

If this option is specified, replace the address of the IOR registered in the name server with in the case like the above case.

However, by designating this option, although it is possible to use the profile etc. of the RTC from other nodes on the network, it is impossible to connect the port etc.

  • Designation: YES or NO
  • Default: NO
  • Example:
     corba.nameservice.replace_endpoint: NO


This option adds an alternate IIOP address to the IOR profile. The IOR can contain additional endpoints of servants (servers of CORBA objects). This is almost equivalent to the "corba.endpoints" option, except that it does not actually create endpoints. (The "corba.endpoints" option tries to create the actual endpoint, otherwise an error will be returned.) This option simply adds the alternate IIOP endpoint address information to the IOR.

This option is used when RTC is placed inside NAT or router. In general, the RTC in the private network can not connect the RTC on the global network. However, if NAT and router port forwarding are properly configured, RTC on the global side can connect to RTC of private network.

The setting is done as follows.

  1. Configure NAT and router port forwarding appropriately.
  2. Here, port 2810 on the global side is referred to as an address on the private side It is set to transfer to 2810 of the system.
  3. Set rtc.conf on private side RTC as follows.    corba.nameservers: my.global.nameserver.com <- Set up global name server    corba.endpoints:: 2810 <- Port number of the component    corba.alternate_iiop_addresses: w.x.y.z: 2810 <- IP address and port number on the global side of the router
  4. Start global side RTC and private side RTC

In RTSystemEditor, access to private side RTC may become extremely slow. This is probably because it takes time to reach the private side because implementation of Java's IOR add profile function is not enough. By using rtshell etc., you can reduce the time it takes to connect. Also, even when it takes time to connect with RTSystemEditor or rtshell, the communication speed between the ports once connected is almost the same as normal.

  • Specified: address: port
  • Default: Unspecified
  • Example:
     corba.alternate_iiop_addresses: addr:port

Settings related to name service


This option enables / disables the function related to the naming service. If YES is specified, RTC reference is registered in the name service. If NO, registration of RTC's reference to the name service is not done.

  • Designation: 'YES or NO''
  • Default value: YES
  • Example:
     manager.is_master: NO


This option specifies the type of name service. Currently it only supports corba.
  • Specified: Name service type
  • Default value: corba
  • Example:
     naming.type: corba


Specify the format for registering RTC on the name server. You can use specifiers that begin with % below. The delimiter of the name hierarchy is /, and the delimiter of name and kind (kind) is ..

%n RTC instance name
%t RTC type name
%m RTC module name
%v RTC version
%V RTC vendor name
%c RTC category name
%h Host name
%M Manager name
%p process ID
// %p プロセスID
  • Specification:/<name>.<Kind>/<name>.<Kind>/...
  • Default value:% h.host_cxt /% n.mgr
  • Example:
     naming.formats: %h.host/%n.rtc


Registration of the RTC to the name server is usually done at instance creation time. Therefore, the name and reference of the RTC are not registered in the name server started after RTC generation. Specifying this option periodically checks the name server, and if the name server is confirmed to start up, register the name and reference again.

  • Designation: YES or NO
  • Default value: YES
  • Example:
     naming.update.enable: YES


If naming.update.enable is YES, specify the period for checking and re-registering the name server.

  • Designate: Specify the registration period with [s].
  • Default value: 10.0
  • Example:
     naming.update.interval: 10.0


If you specify YES for this option, even if the name is already deleted on the name server whose name and reference are already registered, registration is done again.

  • Designation: YES or NO
  • Default value:
  • Example:
     naming.update.rebind: NO

Settings related to module loading


The manager searches modules from the search path list specified by this option. Paths are enumerated by comma separators. Path delimiters are On UNIX, it is /, Windows \\.

  • Designation: /dir_name 0/dir_name1/...,/dir_name0/dir_name1/...
  • Default value: ./
  • Example:
     manager.modules.load_path: C:/Program Files/OpenRTM-aist,                              C:\\Program Files\\OpenRTM-aist
     manager.modules.load_path: /usr/lib, /usr/local/lib,                                   /usr/local/lib/OpenRTM-aist/libs


The manager can load the loadable module beforehand at startup. Find the loadable module specified with this option from the search path specified by manager.modules.load_path. If YES is specified in manager.modules.abs_path_allowed , loadable modules can also be specified as absolute paths.

  • Specification: <module_name> .dll, <module_name> .dll, ...
  • Default value: empty
  • Example:
     manager.modules.preload: ConsoleIn.dll, ConsoleOut.dll
     manager.modules.preload: ConsoleIn.so, ConsoleOut.so
     manager.modules.abs_path_allowed: YES
     manager.modules.preload: /usr/lib/OpenRTM-aist/ConsoleIn.so


Absolute path designation permission flag of the module. If this option is YES, the entertainment path specification of the module is permitted.

  • Designation: YES or NO
  • Default value: YES
  • Example: manager.modules.abs_path_allowed: YES


This option specifies the component name (module name) to be started at the start of the manager. The factory of the component specified here needs to be registered, such as manager.module.preload or statically linked to the manager.
  • Specification: <module_name>, <module_name>, ...
  • Default value: empty
  • Example:
     manager.components.precreate: ConsoleIn, ConsoleOut, SeqIn, SeqOut

Logger relationship setting


Designation to enable / disable logger.

  • Designation: YES or NO
  • Default value: YES
  • Example:
     logger.enable: YES


Specify the log file name. You can also output to multiple files separated by commas. The specifier% p to replace the process ID is available. Also, if the file name is' stdout '', the log is outputted to the standard output.
  • Specify: File name including path
  • Default value: ./rtc%p.log
  • Example:
     logger.file_name: /tmp/rtc%p.log
     logger.file_name: /tmp/rtc%p.log, stdout


Date / time format specification in the log. The format specifier similar to strftime (3) below can be used. If you do not specify a time, specify No or Disable.

%a abbreviated weekday name
%A full weekday name
%b abbreviated month name
%B full month name
%c the standard date and time string
%d day of the month, as a number (1-31)
%H hour, 24 hour format (0-23)
%I hour, 12 hour format (1-12)
%j day of the year, as a number (1-366)
%m month as a number (1-12).
Note: some versions of Microsoft Visual C++ may use values that range from 0-11.
%M minute as a number (0-59)
%p locale's equivalent of AM or PM
%S second as a number (0-59)
%U week of the year, sunday as the first day
%w weekday as a decimal (0-6, sunday=0)
%W week of the year, monday as the first day
%x standard date string
%X standard time string
%y year in decimal, without the century (0-99)
%Y year in decimal, with the century
%Z time zone name
%% a percent sign
  • Specification:/<name>.<Kind>/<name>.<Kind>/...
  • Default value:% b% d% H:% M:% S
  • Example:
     logger.date_format: No
     logger.date_format: Disable
     logger.date_format: [%Y-%m-%dT%H.%M.%S%Z]     // W3C standard format
     logger.date_format: [%b %d %H:%M:%S]          // Syslog format
     logger.date_format: [%a %b %d %Y %H:%M:%S %Z] // RFC2822 format
     logger.date_format: [%a %b %d %H:%M:%S %Z %Y] // data command format
     logger.date_format: [%Y-%m-%d %H.%M.%S]


The following log levels can be specified.

  • WARN
  • INFO

Levels of log messages actually recorded in the log when specifying the log level to be written are as follows.

SILENT completely silent
ERROR includes (ERROR)
WARN includes (ERROR, WARN)

Each TRACE, VERBOSE, PARANOID log level usually produces a huge log file. If PARANOID is specified, the log format may be lost.

  • Default value: INFO
  • Example:
     logger.log_level: DEBUG

Timer settings


Enable/disable the timer function. When the timer is invalidated, the function using the timer, for example, periodic checking and reregistration of the name server, becomes invalid.

  • Designation: YES or NO
  • Default value: YES
  • Example:
     timer.enable: YES


Specify the accuracy of the timer.
  • Designate: Specify the accuracy of the timer with [s].
  • Default value: 0.1 [s], (= 100 ms)
  • Example:
     timer.tick: 1.0


The type of default execution context.

  • Specified: Default execution context name
  • Default value: PeriodicExecutionContext
  • Example:
     exec_cxt.periodic.type: PeriodicExecutionContext
     exec_cxt.periodic.type: ArtExecutionContext


The period of the default execution context.
  • Specified: Specify the default execution context period in [Hz]
  • Default value: 1000
  • Example:
     exec_cxt.periodic.rate: 100


latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects


Motion editor/Dynamics simulator


Dynamics simulator


Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST


Tokyo Opensource Robotics Association


Middleware for DAQ (Data Aquisition) by KEK