ROS Immersion
Get to know the ROS with a small project

Intro

ROS is quite complicated to get up and running, and to really understand. This is a warmup project which will allow students to really get familiar with it in a hands-on manner.

Learning Objectives

  • Install ROS on your computer and demonstrate operation
  • Write a simple example program with ROS and run in simulator
  • Understanding the role and purpose of nodes, topics, commands and services
  • Understanding the key components and utilities: ROSCORE, ROSTOPICS
  • Ability to write and run ROS Nodes
  • Join the community

Deliverables

  • A brief report in your lab notebook describing the results of each of the “Steps” below. Include a link to a video of your results to your lab notebook.

Steps to do

Part 1 - Setup
  • Acquire and read the first 4 Chapters of Programming Robots with ROS
  • Get Ubuntu ready and install ROS on your computer, FOLLOW EXACTLY THESE INSTUCTIONS.
  • Use gazebo simulator to view the robot in a simulated world.
  • Use teleop to drive the robot around
  • See what it does and try to record a video (Screencast).
  • Read especially Chapter 4 again carefully.
  • Watch and follow the recommended youtube tutorials in ROS concept.
Part 2 - First program
  • First thing first: Sign up a ROS answer account. Join the community.
  • Post a question! See what it’s like to get help from the community!
  • In part One, you learned about how to try around the simulated robot, in this part you are going to explore the idea of “Node”.
  • Write a node that subscribes the location(hint: use command rostopic list to see what you can subscribe) of the monitor and print out the result with ROS_INFO.
Part 3 - Random walk
  • With the code you write before. Now try to publish a message.
  • Publish twist messages to make the robot walk randomly.
  • Write and get to run the WanderBot example from the book
Part 4 - Something more complicated
  • With the knowledge of Subscriber and Publisher, write your version of teleop.
  • Advanced: make a gui teleop. You can start from here: https://github.com/rozoalex/ROS_NavigationControlPanel/blob/master/scripts/location_monitor_node.py
  • Run the similators and move the TB3 with teleop
  • Write a ROS program to have the robot drive around one of the obstacles in the simulator

A video for your enjoyment