Teleoperating Robot with keyboard | ROS with Webots | Robotic Software PicoDegree | Part 3

Опубликовано: 12 Май 2026
на канале: Soft illusion
4,696
39

Wish to get into shoes of Robotics Software Engineer and see the complete cycle of mobile robot development. Also learn and impelement robotics concepts using ROS with a great simulator named Webots. Then you are at the right place. Soft_illusion Channel is back with a new video..!! (A channel which aims to help the robotics community).

#ROS_tutorial_series #ROS_Services #ROS_Topics #Webots_ROS #ROS

0:00 Soft Illusion intro video
0:16 Introduction of video
1:40 Final Output
8:37 Launch file
9:20 Webots sensor enable node
17:02 Webots tfbroadcaster node
20:25 Cmakelist
21:55 Package.xml

---

Important Links:
Github Repo of PicoDegree: https://github.com/Soft-illusion/Robo...
rosdep to install package dependencies: http://wiki.ros.org/rosdep
Link of playlist to create custom robot with features like GPS, IMU, Camera etc :    • Robot Software Picodegree  

---

Everyday we see a lot of people eager to learn, eager to enter the field of robotics, but they all feel the lack of a good starter pack.
Hence Soft Illusion has come up with this PicoDegree which introduces several concepts of robotics. This tutorial series can be considered a good place to get you started with Robotics Software Engineering.
Before starting the series it's good to get acquainted with ROS as well as Webots. At the end of the tutorial series you will have a fully functional mobile robot which will be able to localize, navigate, avoid obstacles and a lot more.
The tutotial series has been divided into 7 videos:
1. Introduction video - This video shows you how to get started with the github repo that we are developing, and installing the pre-requisites. It also explains how you can either create your own robot or use the Stark robot made by us.
2. Static and Dynamic URDF - This helps ROS understand the actual physical structure of the different links on the robot and where all the sensors and actuators are located.
3. Teleop - This video will show how you can control your robot using the keyboard. The video also explains how Webots services is used to enable the different sensors, and command actuators using sensor values.
4. Mapping - Here you will learn how to have your robot understand and get a feel of its environment using a LiDAR.
5. Navigate - Once the robot undertands it's world, we can use different path planning and optimization algorithms to make it go from point A to point B. This will also include the configuration of costmap and different planners.
6. Obstacle Avoidance - Now when the robot is traveling from point A to B we don’t want it crashing into obstacles or humans. Hence we need good obstacle avoidance algorithms. It will also plan a path around obstacles.
7. Applications - Finally we will use all the above-learned knowledge to enable our robot to perform specific tasks/applications.

The concepts taught in these videos can easily be tweaked for a custom application or any other custom robot.

---

In this 3rd video we will look at how webots integrates with ROS using services. You will see how you can control the robot actuators with different services and get sensor data using ros services and ros topics. Finally after this video you will be able to make a robot move using a keyboard (teleop), enable sensors of any robot and see the sensor data in Rviz.

The video also explains how webots namespaces multiple robot’s different topics and services dynamically. The first part of the topic/service includes the name of robot, a number and the computer username. After this the second part is the type of sensor/actuator, and finally the type of output. This helps you to have several same robot protos in a single world.

To enable the sensors we make a vector of the different clients corresponding to each of the services. And we call the services by sending the timestep. Also, the actuators are velocity controlled, hence we initialize all the actuators with infinite position and 0 velocity.

In this application of our Stark robot we use different buttons for camera motion and robot motion. The data corresponding to each button press is recorded by doing a rostopic echo on the robot_name/keyboard/key topic. These are used in a switch loop to select the action of the actuator - linear/rotary actuator velocity and direction. Similarly we also change the direction of all wheel motion direction based on front/back/left/right direction of motion.

In the second node of the video we publish dynamic links between 2 links. We subscribe to 2 sensor topics, and publish 2 dynamic links using the package TF publisher. Using the architecture shown in the video, we publish a relation between the base_link and the camera_link.