Simulation

The mapping of the environment was made using ROS package gmapping. In the mapping process, the robot was controlled by a human.

Is possible to see in the next image what nodes and topics are executed to the robot be able to map the environment. If you remember the other graph showed previously, both graphs are too similar, the most important difference between them is the node responsible for the robot movement.

After mapping the environment, we can use this map to navigate in the environment. The navigation was made with the RVIZ interface.

https://youtu.be/eU87Hgl8aak

Now, to understand how this navigation occurs will show the graph of the ROS system responsible to do it.

Navigation system

Another task that we aim to finish yet, is to integrate both the obstacle avoidance and the ARTag following systems. It is still not done, there are some problems that we still need to address, such as the time delay between the readings and the actual velocity update due to the fact that we are now sending velocities between nodes and are limited by the update frequency on the topics that belong to the third party packages that we are using.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e358d7b3-ca0e-4a72-ad73-5e1adc582a90/Manager__Made_with_Clipchamp.mp4

This week, we also made some additions to the simulation aiming to get closer to our defined test scenario, such as adding the person with the ARTag attached to him, being controlled with keyboard commands. Check the video below:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/1d20d38a-1e60-4897-a1c7-02182cecbc47/Person_teleop__Made_with_Clipchamp.mp4

Robot server

The robot needs a way to communicate with the cloud server, to send/receive map data, notification of rent etc.

For that we decided to use NodeJS (same as the cloud server) with the package rosnodejs to make the interface with ROS topics, nodes etc.

Messages

The cloud server sends always JSON formatted requests. With one field 'message', that may contain more fields.