Webots project

This page contains the details of a technical writing project accepted for Google Season of Docs.

Project summary

Open source organization:
Webots
Technical writer:
Soft illusion Channel
Project name:
Video Tutorials series for Webots (Integration with ROS2)
Project length:
Standard length (3 months)

Project description

Learnings:

This video tutorial series will enable new users to get the best possible start with Webots and provides the viewers with clear step-by-step solutions to achieve specific simulations.

Goal:

By the end of this series, viewers will be able to make basic ROS2 nodes and interact with Webots as well as gain the confidence to work on advanced projects in mobile robots. This video series will also give good theoretical explanations of several vital concepts in the field of robotics.

Video Series Details:

  1. ROS 2 installation and setting-up a repository in Visual Studio Code. This includes command wise installation of ROS2 and the basics of its working. Secondly, it will also include setting up of ROS workspace on VS code and functionality of basic tabs in VS code.

  2. Basic ROS2 and Webots example. Some examples of Webots ROS2 will be used to engage the viewers in understanding what wonders can be done if we use ROS2 with Webots for simulation. This will also include basic theories of communication between ROS2 and Webots.

  3. Using ROS2 services to interact with Webots. Teaching basics of ROS service explaining the difference between services in ROS and ROS2. Secondly, showing stepwise tutorials to call services and enable sensor topic for readings and actuators for motion.

  4. Control custom robot with ROS2 Publisher. Learning how to publish messages using ROS2 publishers to Webots. We can implement an example of controlling robot motion by publishing keyboard output to a topic which can then be used by ROS services for motion in Webots.

  5. Get feedback from robot with ROS2 Subscriber. In this video, we will subscribe to sensor readings of distance sensors and stop the robot if it is about to collide. So basically this will be an obstacle avoidance node with interactive messages being published.

  6. Master(Publisher) Slave(Subscriber) robots with ROS2. In this video, we will control one robot with a Keyboard and make another robot run away from the manual robot. Similar to a scenario of Thief and Cops :) [This will be a continuation of 3,4,5 videos]. This will enable viewers to test communication and will get flaws in the simulation if there is an issue in ROS.

  7. Setting up Rviz (Showing different sensor output ). In this video, we will add a few other sensors and publish their data on Rviz. At the end of this video, the viewer will be able to set up Rviz (i.e adding sensors like Lidar, Camera, etc for visualization), saving the configuration and spawning saved configuration next time.

  8. Debugging video (Rostopic echo, Rostopic info, RQT_graph). This video will include deliberate incorrect functionality of a few topics to help understand the technique of debugging. We will follow a process of viewing the RQT graph and knowing which topics are responsible for the problem. Using rostopic echo to check if the topic is publishing and at the end checking rostopic info to get our issue. Solve the issue and have normal functionality.

  9. Debugging video(rqt_console, rqt_gui) In this video, Ros messages(info, debug, error, etc) will be used in the node, and the use of rqt_console will be explored. This video will also be extended to use rqt_gui to publish dummy messages to get the required functionality. This can be an alternative approach to fix some bugs.

  10. Advance topic videos: On the integration of SLAM library in an unknown environment (SLAM toolbox or LaMa) [Part 1] This video will start with the basic theory of SLAM problems. After which we will use the above taught concepts infrastructure to understand the crux of the project. Lastly, we will spawn the necessary nodes through the terminal and see the mapping output in Rviz.

  11. Advance topic videos: On the integration of SLAM library in an unknown environment (SLAM toolbox or LaMa) [Part 2] As a continuation of the 10th video, in this video, I will teach how to make a launch file to launch all nodes together and examine rqt_graph for a proper understanding of concepts in ROS framework. In the end, we will save the map generated by the package using a map server.

  12. Advance topic videos: On the integration of OpenCV (AR-tag detection, Ar_track_alvar package) [Part 1] The video will start with what AR tags are and their significance in localization using computer vision. Then we will build on how the AR track Alvar package works. This will help to provide an overall perspective of the project. Finally, service will be made to enable a stream of video frames from Webots to a ROS topic.

  13. Advance topic videos: On the integration of OpenCV (AR-tag detection, Ar_track_alvar package) [Part 2] This video will be a continuation of the 12th video where the above image stream will be used by the package and a topic of transform between the robot and the AR Tag will be published which can be viewed on Rviz. Finally, as we move the robot around, we will see different tags being located and their position changing in Rviz and in rostopic messages.

Conclusion:

This GSOD project is a self-reliant package to enable a basic understanding of the integration of ROS2 with Webots. This package will also include practical implementation of the concepts in ROS2 like topics, services, nodes, launch files, publisher, subscriber, different debugging tools, and the use of VS code. This will also involve advanced topic projects like SLAM and OpenCV. This will give viewers a paradigm of an end to end work using ROS2 and Webots.