5 minute read

Lab 1 : 14/08/25

Tasks expected to be completed before Lab 2

Lab 2 : 21/08/25

  • Completing ROS installation and remaining tasks from lab 1
  • ROS basics

  • Navigating the ROS Filesystem
    -Navigating the ROS Filesystem
  • CMake basics [Lecture]
  • Creating a ROS workspace

  • Understanding ROS Nodes

    -ROS nodes - Learn about ROS nodes, topics, ROS commands - roscore, rosnode, rosrun

Lab Task

Lab 3 : 11/09/25 - Publisher Subscriber

Lab Task
  • Create a new package named lab3_sub_pub in the src folder of your catkin_ws. The package dependencies are std_msgs and rospy
    -Video demo - Creating ROS package using catkin_create_pkg command
  • Create a simple publisher and Subscriber
  • Create three publishers within a ROS node
  • Create two ROS nodes that subscribes to the topics published (ROS node1 : subcribes to topic 1 & 3, ROS node 2 : subscribes to topic2)
Assignment 1
  • Questions will be shared via Github Classroom

Preparatory work

(To be completed by all students before lab 4)

Lab 4 : 18/09/25 - Service-Client

Lab 5 : 25/09/25 - Turtlesim

Lab Task
  • Create a new package lab5_turtlesim
  • Launch turtlesim turtle
    • List all the running topics
    • Using suitable commands find more info about the topic related to turtlesim turtle (cmd_vel, color_sensor, pose)
    • Using suitable commands find more info about the ROS message(s) of the above topics (geometry_msgs/Twist, turtlesim/Color,turtlesim/Pose)
    • Using the above messages control the turtlesim turtle
    • Write a single python script that makes the turtle do the following actions in sequence:
      • Move x units towards top (ensure the turtle does not hit the top wall), make a 90 degree right turn, draw a circle of radius y units, move z units to the right (ensure the turtle does not hit the right wall), move w units towards down, make a 45 degree turn and move to the top by p units and then stop.

Lab 6 : 9/10/25 - URDF

Lab 7 : 16/10/25 - Gazebo

  • Gazebo
    Gazebo is an open-source 3D robotics simulator
    Read and understand the gazebo ros documentation in the two links below before you install gazebo
    -Which combination of ROS/Gazebo versions to use
    -Installing gazebo_ros_pkgs (ROS 1)

    Navigate your mobile robot (Lab 6 work) in the gazebo world
    To navigate your mobile robot in the gazebo world you may need to install additional controllers and packages (as given below)
    sudo apt-get install ros-kinetic-noetic-ros-pkgs ros-noetic-gazebo-ros-control ros-noetic-ros-control ros-noetic-ros-controllers
    Additional references:
    -Teleop twist keyboard
    -Steer drive controller

Lab Task
  • Create a gazebo world for the mobile robot you built in lab 6.
    Building a Gazebo world
  • Create a gazebo.launch file to launch the bot in the world you have created. \
  • Create Rviz laaunch file for the bot
  • Troubleshoot errors referring to online documentation