To compile Gimbo go to Gimbo-folder and type make

cd Gimbo

After compiling you can run it


To connect to GIMnetAP, press Connect button in the lower left corner. The choose your accespoint hostname and address and press ok.

If you have MaCI services connected to the GIMnetAP, tey appear on the left side. To see what services a machine is providing open the list by pressing '+'. On the right side there is all the GUI components that can be launched. The usage of Gimbo is simple, choose wanted services(you can choose also the whole machine) to connect, choose the component what is launched and press load.




MaCI_Logger is a component to log data coming from MaCI-interfaces. The data is logged in text-files. The logged data can also be re-runned to the netwoek as it was logged with MaCI_Player.Currently (v.1.8.1) MaCI_Logger supports the following interfaces:

  • CoordinateDrive
  • Energy
  • IMU
  • Position
  • Ranging
  • SpeedCtrl
  • Wireless
  • Image

The usage of MaCI_Logger is simple. You can start logging all the selected service by pressing 'Start All' or you can select a group by clicking the services when pressing ctrl and start the with 'Start Selected'. Correspondingly, you can stop logging with 'Stop all' and 'Stop selected'.

When logging the services that are logged, change color to green. Also they print something(depending on the interface) in additional information-field.

The logged data is stored in directory Gimbo/components/MaCI_Logger/data. Every instance is its own file named in the following way: FullMaCIName+Timestamp.txt (e.g Robot.MaCI_Position.Motion_12_09_2011_11:18:53.txt). All the log files has a header where is explanation how the data is logged. MaCI_Image logger contains one text file where information about the images are stored and one directory where all the images are stored.

MaCI_Logger has also a text_based UI. To use it you have to compile differently:

cd Gimbo/components/MaCI_Logger
make -f Makefile.terminal

To run it, connecting to localhost:40002, type:

./MaCI_Logger_terminal -u localhost -p 40002

A Following screen should appear. Under services all the services are printed with MaCI-group name.

If you don't have all the services that should be on the network, you can update the service list by pressing 'u'.

To select logged services press 's'. Then select services by pressing typing the index number of the service and pressing enter. After selecting a 'S' should appear in front of the service name. When you have selected all the wanted services type '0' and enter.

To start logging press '1'. To stop logging press '1'. When the component is logging there should appear "LOGGING" text on top of the terminal screen.

To quit the logger just press 'q'


MaCI_Player is a component for playing files logged with MaCI_Logger. They appear in the network as if they were the same services as logged. They provide the data at the same rate as they were sent in the logged data. The data can also be played faster/slower speed if wanted.

Because this component doesn't connect to any service, no need to choose services from Gimbo. Just launch it without services. When started choose from 'File->Load log files' the logged files that you want to play. If the log-files are long it can take a while to load them. When loaded all the services should appear as well as the length of the logged data.

As default the MaCI_Group name for these services is MaCI_Logger. You can change it from 'set->MaCI Group Name'.

When playing the service are green and the slider indicating the time is moving. You can move the slider if you want. To play faster press the '>>' button and slower with '<<'. You can also choose to play once the data or to loop pressing the '->' button


ImageViewer is to see image feeds provided with MaCI_Image-interface. If the stream contains multiple camera image, you can cycle between these with left- and right-keys. With 'f' you can flip the image.



MaCI_Behaviour client

MaCI_Behaviour client is for switching on/off MaCI_Behaviour services. Also their commanding values are shown in the GUI.

MaCI_Text Client

With MaCI_Text client, text can be sent through MaCI_Text-interface. On the right side choose the service where to send the text writed on the left side. To send the text At the bottom you see the sent text and a text appears when the text is accomplished at the server side (eg. When a Text-to-Speech system has spoken the line).

MaCI_EmergencyStop Client



MaCI_Parameter component is for sending parameters to MaCI-parameter instances. On the right hand side , all the instances are listed. Selecting one instance the parameters are listed one the left. Set your wanted value under 'new value' and press 'send value(s)' button to send them.



An template to create an own component can be found at "Gimbo/TestComponent/TestComponent.cpp

To create a new component to Gimbo, you have to follow the following guideline. The component has to accept the following command line parameters:

  • -u <hostname> hostname of the GIMnetAP
  • -p <port> port of the GIMnetAP
  • -i <index> identifier for component
  • -g <gimboIndex> GIMnetID of Gimbo

In addition your component have to implement the component protcol interface. Easiest way is to inherit Gimbo::CComponent-class where you have to implement OnServiceAssignment-function. It is called every time that new services are assigned to the component. As a parameter a Gimbo::TServiceAssignmentList is given. It contains:

  • targetID the GIMnet ID of the target
  • majorType the GIMnet Major number
  • minorType the GIMnet Minor number
  • serviceType type of service(provided/accepted), no need to worry about
  • assignmentType tells if you have to connect or disconnect from
  • targetName GIMnetName
  • MaCISL MaCISL-name

When your program has connected to GIMnet, you have to inform Gimbo, by calling Start(gimi,gimboIndex,index)-function of the CComponent-class.

To have your component in the component list of Gimbo, it has to have an xml file with a postfix .gimbo . It is situated normally in the directory of the component. An template of the xml file can be found at "Gimbo/components/TestComponent.xml". The following xml-nodes are good to be described:

  • <name> The name of the component
  • <location> The location of the binary
  • <compile> Compile rule in case the binary pointed by 'location' doesn't exist
  • <description> Free form description of the component
  • <accepts> list of the accepted service. Can be defined one by one with <service> tags or a range with <range>, <start> and <end>-tags.
  • <provide> list of providing services