Represent your robot
I, robot
Launch Overworld
Now that we have fully described our robot, we will be able to launch Overworld. Nevertheless, we have to make our previous descriptions available to Overworld. To do so, we will launch Ontologenius to expose the semantic description and we will configure Overworld.
Ontologenius launch file
The first to do is to launch Ontologenius. Let's create a new launch file called "ontologenius.launch" in our launch folder. Then fill it with the following:
Here we have the simplest Ontologenius launch file. For more detail, you can refer to Ontologenius documentation.
With the previous launch file, we register the ontologies to be loaded. We ask for loading our "agents" ontology as well as the entire common ground ontology. Note that Ontologenius automatically resolve the ontologies imports.
When we will need to add more ontologies, we will always add them there.
Our launch file launch two nodes. While the first is Ontologenius itself, the second is a GUI which can be useful to debug your application.
Overworld configuration
Before launching Overworld, we need to configure it. Overworld is based on plugins called perception modules. Each module is in charge of a perception modality and thanks to the plugin mechanism, you can easily add your own. However, Overworld comes with default ones for basic purposes. At this step, we will use one allowing the robot to listen to its joint state.
For the list of the available modules as well as external ones, you can refer to this page.
Let's now create a "configurations" folder and in it an "overworld.yaml" file with the following content.
An Overworld configuration file always has at its root a "modules" key. In there, we can have three keys: robot, humans, and objects. Each of them will contain the modules to be loaded for each entity type. For now, we will only use the robot one.
Under the robot key, we have a key-value pair where the key is the module type and the value is the name of the module instance. Here we want to load a JointStatePerceptionModule that we call robot_joints.
At the root of the file, we can then add specific configurations for each module instance. To do so, we put the instance name as a root key then below we can add several key-value pairs where the keys are the parameters names and the values, the parameters' values (obvious). Here we set a value to the robot_name parameter of the robot_joints instance. This parameter is mandatory for this module.
To get information about the modules and their parameters, you can use this page and to get additional details about Overworld configuration file, you can refer to this other page.
Overworld launch file
A last file and we are done! Create an "overworld.launch" file in the launch folder with the following content.
Here we have two important and mandatory arguments, the configuration file and the robot name. We thus register our previously created configuration file and we set the robot name to eve, as we have defined it in the ontology. The third argument is to deactivate the physics simulation for the moment.
Arguments are then filled to Overworld node using keys (-n, -c). To get the list and the effects of all keys, you can refer to the launch page.
Launch Overworld
We are finally ready to launch Overworld! In different terminals, run the following in order:
A blue window should appear within it, our robot! Using the sliders of the joint state publisher gui you can move the robot's head and arms. Putting the focus on the terminal containing the teleop node, you should be able to move it.
To know how to move in the GUI, you can take a look at the GUI page.
You have loaded your first robot in Overworld! However, we can go further in the robot description...