1

I'm confused about the right process of packaging and deploying a custom Service application to a robot. I'm using Python.

  • I read this document but it looks more like a guide for App creation.
  • At the other hand I tried robot-jumpstarter that looks very promising. I used python jumpstart.py python-service my-package-name MyServiceName command to generate a service template. I could open and install the Service trough a Choregraphe but I didn't find a CLI tool to do this. Moreover the project structure looks different from this and the robot-jumpstarter generates a lot of code. I want to start with something more simple and to complicate if necessary.

I would like to know what is the right QiMessaging service project structure and how to package and deploy to a robot with CLI tools. Now I'm loading the services with autoload.ini.

Edit: I found this guide.

dim
  • 992
  • 11
  • 26

1 Answers1

1

I made robot-jumpstarter, and yes, it has a fair amount of boilerplate code to make debugging more easy etc.

If you want a bare-bones service, How to write a qimessaging service in the documentation covers that; there's also the tutorial you already found that covers that and in addition also how to use qipkg, which is indeed the standard command-line way of packaging a service. The examples given in those two docs are indeed pretty much as simple as can get.

The minimum structure should be a manifest.xml, a .pml file, and your python script (and maybe an icon for the package; heavily recommended at least, apps without icons are ugly).

You should also be aware that:

  • the word "service" can refer either to a NAOqi service (that registers, that you can call with qicli etc. and that is managed by the ServiceDirectory service), or to a systemd service, which is basically a standalone process (that may or may not contain a NAOqi service), that is managed by ALServiceManager
  • often when one makes a NAOqi application in Python, the core code of the application is in one or several NAOqi services contained in the application's package ("application" and "service" are not mutually exclusive categories)
Emile
  • 2,946
  • 2
  • 19
  • 22