Nao Module

From Intelligent Materials and Systems Lab

Revision as of 01:03, 7 February 2013 by Moment92 (talk | contribs) (Created page with "== How to create a module == === module_generator === The easiest way to create a new module, is by using the module_generator script. For some reason, however, it is not inc...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

How to create a module

module_generator

The easiest way to create a new module, is by using the module_generator script. For some reason, however, it is not included with NAOqi C++ SDK 1.14.1, but it still available in the 1.12.5 SDK package (can be downloaded from http://users.aldebaran-robotics.com/). It is not clear, why the module_generator was dropped, but it seems to be working with the newer version as well.

To use the module_generator, you do not have to keep the whole old SDK package, you only need the python scipt (/path/to/sdk/bin/module_generator.py) and the template files (/path/to/sdk/share/module_generator/templates/module/).

The module_generator generates some skeleton code that can be used to create your own module. Keep in mind to use the cross-toolchain, as the module is going to work in the Nao.


Loading the module

When you have managed to build the module .so file, you also need to place it inside the Nao and make sure the Nao will load your module. According to this page (about older version, some mismatch), it is neccessary to place the module file in /home/nao/naoqi/lib/naoqi/. The directories might not exist yet. Now you need to tell NAOqi to load your module. You can do it by adding the module's name with its full path to the /home/nao/naoqi/preferences/autoload.ini file under the "[user]" tag.

Actually it is probable that the modules could be located anywhere, as long as their full paths are given, but at the time when our team was trying to solve the module-loading problem, we found the aforenamed webpage and used its suggestion. It should be tested to be sure.

The NAOqi loads all the modules at startup. Unfortunately, our team hasn't found a way to load a single module at a time yet, so we just restart the whole NAOqi using the command nao restart. If something fails and you would like to find out the error message, then the easiest way is to execute NAOqi manually with the command naoqi. These messages can most likely be found in some log files as well.