Sample component location
Once the installer has completed successfully, OpenRTM-aist can be tested using the included sample components. These are typically stored in one of the following locations:
- The start menu: [Start] > [OpenRTM-aist 1.1] > [Python] > [Components] > [Examples]
- C:\Program Files\OpenRTM-aist\1.1\examples\Python
- OpenRTM-aist\examples (When building from source.)
We will use the SimpleIO components to check that OpenRTM-aist has built and installed correctly.
Test using sample (SimpleIO)
This set contains the ConsoleInComp and ConsoleOutComp components. ConsoleInComp receives numbers as input from the console and sends them over an OutPort. ConsoleOutComp receives numbers via an InPort and prints them to the console. They use this very simple I/O to illustrate the basics of RT Components. Connect the OutPort of ConsoleInComp to the InPort of ConsoleOutComp and activate them.
The explanation below assumes OpenRTM-aist-python has been installed using the MSI package and the sample components are available in the Start Menu. Right-clicking on the OpenRTM-aist entry in the Start Menu and selecting "Open" will make accessing these more convenient.
Start the name server
First, a name server that the components can register on must be started. Start it using the shortcut in the Start Menu at [OpenRTM-aist 1.1] > [Tools] > [Start Naming Service].
A console like the following will open.
When the console doesn't open
There are cases where the name server console screen does not open. In this case, there are several causes as below, so investigate the cause and take appropriate action.
omniORBpy is not installed
The msi installer provided by openrtm.org contains omniORBpy, but if you select Custom installation you can also install OpenRTM - aist - Python without installing omniORBpy.
Also, if installing manually, omniORBpy may not be included, so please make sure omniORBpy is installed.
py file association is wrong
The file to start the name server is C:\Program Files (x86)\OpenRTM-aist\1.1\bin\rtm-naming.py. (When installing with 32 bit version msi)
Opening the console screen in this directory and running python rtm-naming.py will start up the name server, but if you can not start by double clicking rtm-naming.py, please check the python you are installing.
If you install both 32-bit and 64-bit Python, it seems that the one you installed earlier can be associated with a py file, so installing Python with the same architecture as the OpenRTM-aist-Python installer may be fixed first I do not.
In rare cases, the host name or address settings of the machine may be incorrect, causing the name server to start incorrectly. Informing omniNames.exe of the correct IP can resolve this problem. Set the OMNIORB_USEHOSTNAME environment variable in the following way (the example assumes the host's IP is 192.168.0.11):
Variable name: OMNIORB_USEHOSTNAME Variable value: 192.168.0.11
Start the sample components
After starting the name server, start some suitable components. The OpenRTM-aist-Python start menu folder contains a sub-folder called "Examples," which contains many components as shown below.
Start ConsoleIn.py and ConsoleOut.py, causing two consoles to open.
When the components don't start
Sometimes the component consoles do not open. There are several possible causes for this, described below.
The console opens and immediately closes
There may be an error in the rtc.conf file, preventing the components from starting. Confirm the contents of the rtc.conf file in C:\Program Files\OpenRTM-aist\1.0\examples\Python\SimpleIO. For example, the corba.endpoint/corba.endpoints settings should match the host address of the current computer.
Try creating a minimal rtc.conf, as below.
Start RTSystemEditor (RTSE)
RTSystemEditor can be started from the Start Menu: [OpenRTM-aist] > [Tools] > [RTSystemEditor].
Browsing the name server
Connect to the name server and browse the registered components. You can connect to a name server using the Name Service View on the left side of RTSystemEditor. Click the plug icon to connect to a name server and enter its address (localhost or localhost:2809) in the dialog box. The default port for omniNames is 2809.
The name server running on localhost will appear in the Name Service View. Open the tree branches by clicking the arrows to find the two components you started.
Adding components to the system
Connecting and activating
The OutPort of ConsoleIn0 is displayed on its right-hand side . Drag from this to the InPort on the ConsoleOut0 component to connect these data ports. The connection dialog will be displayed. Click "OK" to accept the defaults and connect the components.
A line indicating the connection will appear between the two ports. Next, click the [Activate All] button in the toolbar. This will activate all components in the editor at once. Active components will appear green.
After connecting the ports of ConsoleInComp and ConsoleOutComp, the terminal for ConsoleInComp will display:
Please input number:
Enter a number and press enter. This number should fit within a short int. Look at the ConsoleOutComp terminal. The number you entered should have been printed out. If this is the case, OpenRTM-aist is functioning correctly.
Other sample components are included in the installed OpenRTM-aist-Python. They can all be used in the same way as the above example.
|ConsoleIn.py||Receive numbers from the console and send them over an OutPort. Connect it to ConsoleOut.py to use.|
|ConsoleOut.py||Receive numbers over an InPort and print them in a console. Connect it to ConsoleIn.py to use.|
|SequenceIn.py||A component to output various simple data types (short, long, float, double, and sequences). Connect it to SequenceOut.py to use.|
|SequenceOut.py||Display various simple data types received over an InPort. Connect it to SequenceIn.py to use.|
|MyServiceProvider.py||Provides a simple service, MyService. Connect it to MyServiceConsumer.py to use.|
|MyServiceConsumer.py||Consumes a simple service, MyService. Connect it to MyServiceProvider.py to use.|
|ConfigSample.py||Sample demonstrating configuration parameters. Modify the configuration parameters in RTSystemEditor or with rtconf to see the effect.|
|TkMobileRobotSimulator.py||Simple mobile robot simulator. Receive velocities via an InPort, provide position via an OutPort.|
|NXTRTC.py||LEGO MindStorms interface component. Command velocities via an InPort, receive infra-red sensor information and odometry via an OutPort.|
|AutoControl.py||Calculate velocities for a mobile robot. Receive robot odometry information via an InPort, calculate the speed and provide it via an OutPort.|
|Composite.py||Sample composite component. Combines the Motor, Controller and Sensor components into a single composite component.|
|Motor.py||Sample component for the composite component sample.|
|Controller.py||Sample component for the composite component sample.|
|Sensor.py||Sample component for the composite component sample.|
|Slider.py||Sample GUI component using Tk. Provides the value of sliders over an OutPort.|
|TkMotorComp.py||Sample GUI component using Tk. Displays the values received via an InPort in the GUI.|
|TkLRFViewer.py||Sample GUI component using Tk. Draws laser data in the GUI.|
|TkJoystickComp.py||Sample GUI component using Tk. Provides a virtual joystick.|