config.version: 1.0
openrtm.version: 1.0.0
Name of manager. When a manager is registered with a name server, it is registered with the name set here.
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 |
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.
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.
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.
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.
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.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.
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.
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.
manager.supported_languages: C++, Python, Java
Extension of RTC module for each language.
manager.modules.C++.suffixes: dll manager.modules.C++.suffixes: so manager.modules.C++.suffixes: dylib
Manager program name by language.
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.
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.
manager.modules.C++.profile_cmd: ./, /usr/share/OpenRTM-aist/components/cxx
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.
corba.args: -ORBInitialHost myhost -ORBInitialPort 8888
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.
corba.endpoint: 192.168.0.45: corba.endpoint: 192.168.0.45:8776 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.
corba.endpoints: 192.168.1.10:1111, 192.168.10.11:2222 corba.endpoints: 192.168.1.10, 192.168.10.11 corba.endpoints: all
corba.endpoints:
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.
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 192.168.0.10 and 192.168.1.10 and is registered on two name servers existing in 192.168.0.1 and 192.168.1.1, if 192.168.0.10 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 192.168.0.10. At this time, in the 192.168.1.0 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 192.168.1.1 name server with 192.168.1.10 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 192.168.1.0 network, it is impossible to connect the port etc.
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.
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.
corba.alternate_iiop_addresses: addr:port
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.
manager.is_master: NO
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 |
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.
naming.update.enable: YES
If naming.update.enable is YES, specify the period for checking and re-registering the name server.
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.
naming.update.rebind: NO
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 \\.
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.
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.
manager.components.precreate: ConsoleIn, ConsoleOut, SeqIn, SeqOut
Designation to enable / disable logger.
logger.enable: YES
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 |
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.
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) |
INFO | includes (ERROR, WARN, INFO) |
DEBUG | includes (ERROR, WARN, INFO, DEBUG) |
TRACE | includes (ERROR, WARN, INFO, DEBUG, TRACE) |
VERBOSE | includes (ERROR, WARN, INFO, DEBUG, TRACE, VERBOSE) |
PARANOID | includes (ERROR, WARN, INFO, DEBUG, TRACE, VERBOSE, PARA) |
Each TRACE, VERBOSE, PARANOID log level usually produces a huge log file. If PARANOID is specified, the log format may be lost.
logger.log_level: DEBUG
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.
timer.enable: YES
timer.tick: 1.0
The type of default execution context.
exec_cxt.periodic.type: PeriodicExecutionContext exec_cxt.periodic.type: ArtExecutionContext
exec_cxt.periodic.rate: 100