RoBorregos/home

Main engine migration

Closed this issue · 4 comments

Base on the legacy repo Main engine, and adapt a template and documentation to build all main engine's on top of that template

After spending some time reading the previous main engine node, as well as the recent task manager released by Karelics, it was decided the main_engine package should be renamed to task_manager as it's a more intuitive and widely used among ROS.

The development of the package will be based on the legacy node, but adopting good practices from the Karelics's task manager.

Also, according to the ROS convention for naming packages, the names should be "specific enough to identify what the package does", and "if a package is specialized for a robot, prepend its name".

Following an internal discussion of the best name for our current robot, the winning choice was FRIDA (Friendly Robotic Interactive Domestic Assistant).

So this package will be named frida_task_manager

In order to have a working node for testing this task manager, the ROS nodes of NLP: command_interpreter.py and conversation.py were developed.

Task manager structure added

Based on the legacy implementation and some practices from the open source task generator, the script task_manager_server.py was built, using the class from script hri_tasks.py as module import.

The idea is to have a general manager, and each area task inside of its own script for readability and maintainability.

It worked well with the NLP nodes, but for goal overriding it had to be ran outside of the legacy while loop in the callback and removing checking the current_thread, as it was found unneccesary with this implementation.

image

In order to share custom messages, the task manager terminal had to source the language proccessing package.