Skip to content
Marc Hanheide edited this page Feb 19, 2021 · 22 revisions

Week 2: First steps with ROS Programming

Preparation

On the simulated robot (gazebo)

  • maybe run sudo apt update && sudo apt upgrade to ensure you have got the latest software available.
  • To work in simulation, start the simulator, see last week's tutorial at first-turtlebot-tutorial.

Mini Tasks of week 2:

Task 1: Make your robot move using the command line:

  1. Run rostopic list and consider what you see. Also, try rostopic echo /odom and move in simulation using the keyop from last week. What do you see? (This is more exciting on the real robot, you probably have already done it in simulation last week)

  2. use rostopic pub to make the robot move! Try to develop the following command using the Tab key for auto-completion (do not directly copy this, as it will not work):

    rostopic pub /mobile_base/commands/velocity geometry_msgs/Twist "
    linear:
      x: 0.0
      y: 0.0
      z: 0.0
    angular:
      x: 0.0
      y: 0.0
      z: 0.5" -r 1 
    

    (You can stop this command by hitting [Ctrl]-C on your keyboard!)

  3. Watch your turtlebot move. Reflect what is happening. Try to make it go around in a circle (with about 0.5m radius) smoothly by modifying the above command.

  4. Optional, but very relevant: run roslaunch uol_turtlebot_simulator turtlebot-rviz.launch again (you did last week?!) and in particular inspect the output of the robot's sensors! Find out how to display different sensory information of the robots: Pointcloud, "laserscans" (discuss what this actually is, as there is no laser sensor on the robot!), and images.

Task 2: Python programming

  1. Read this tutorial on how to create a publisher in python. Remember that we want to publish a geometry_msgs/Twist to /mobile_base/commands/velocity! Make sure you look back at the code that has been developed live in the lecture as a good example.
  2. To create a workspace and package and start VS Code correctly, please have a look at First Turtlebot coding
  3. Time to code our first Python program using ROS: The goal is (again) to have the turtlebot first go around in a circle of about 0.5m radius, this time from the Python program!
  • In the simulation, you just run the simulation as before, and then your code in VS Code or from the command line.
  1. Optional: When you have accomplished this, the next challenge for you is to make it go in the shape of a square of 1m length each side.

Background that may help you

What to send to the robot?*

A Twist message has two parts that are important:

  • Twist.linear: this has x,y,z components for which you can specify the speed in m/s. Please don't go beyond 0.6

  • Twist.angular: this also has x,y,z components and determines how quick the robot should rotate around one of the axes in radians/s. Please don't go beyond PI. To determine which axis you want to move along and turn around, please have a look at the picture below:

    Turtlebot axes

Red: x, green: y, blue: z

Clone this wiki locally