Robotics lab (221LIA001) : Lab work
Lab 1 : 14/08/25
- Ubuntu 20.04 LTS installation
- Ubuntu/Linux basics
- Basic commands -Ubuntu command line tutorial
- Linux File System/Structure Explained -Linux File System/Structure
- ROS basics
- ROS installation basics
Tasks expected to be completed before Lab 2
- Install ROS on Windows 11 using Windows Subsystem for Linux 2 (WSL2)
- Setting up ROS environment on your PC -Setting up ROS environment on your PC
- Navigating the ROS Filesystem
-Navigating the ROS Filesystem
Python Basics Refresher
- Python basics -PyFlo - A Free, Interactive Guide to Python Programming
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
- Understanding ROS Topics
-ROS topics -video demo
- Understanding ROS Topics
Lab Task
- Create a new package named lab2_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
Lab 3 : 11/09/25 - Publisher Subscriber
- Understanding ROS Nodes (Review)
-ROS nodes
Learn about ROS nodes, topics, ROS commands - roscore, rosnode, rosrun - Understanding ROS Topics
-ROS topics
-video demo - Simple Publisher and Subscriber
-Simple Publisher and Subscriber
-Examining the Simple Publisher and Subscriber
-A ROS publisher node - line by line commented
-A ROS subsriber node line by line commented
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)
- GitHub fundamentals
-GitHub Tutorial - Beginner’s Training Guide
-installing git on Ubuntu 20.04
-Git Tutorial for Beginners: Command-Line Fundamentals
Lab 4 : 18/09/25 - Service-Client
- Service and Client nodes
-Basics of ROS Service-Client (Video )
-Simple Service and Client nodes
-Examining the Simple Service and Client
-Changes to be made in CMakeLists.txt and package.xml files of the Service-Client package
-Summary of changes to be made to CMakeLists.txt and package.xml
-ROS Service - Server node (coding) Video tutorial
-ROS Service - Client node (coding) Video tutorialLab Task
- Create a new package lab4_serv_client
- Create a ROS service that finds the square of the number
- Create a ROS Client that uses the above service
- List the running ROS nodes, topics and services
- Explore details of the nodes using suitable ROS commands
Lab 5 : 25/09/25 - Turtlesim
- Turtlesim
-Getting Started with Turtlesim
-Understanding ROS using Turtlesim by Prof. Madhur Behl
-Madhur Behl, University of Virginia
-Tutorials Using Turtlesim Scroll to the bottom of the page to find the tutorials- Control the turtle with rqt_robot_steering GUI `
rosrun rqt_robot_steering rqt_robot_steering`
- Control the turtle with rqt_robot_steering GUI `
- Launch files
-launch files - Chapter from the book ‘A Gentle Introduction to ROS’ link 2
-Launch multiple nodes using launch file (Video tutorial)
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
- URDF
-How do we describe a robot? With URDF!
-Create a visual model of a robot that you can view in Rviz - Mobile robot URDF
-Creating urdf model of a robot (Video demonstration)
-Adding Physical and Collision Properties to a URDF Model
-Using Xacro to Clean Up a URDF File
-ROS mobile robot URDF , Xacros with Meshes(Video demonstration)Lab Task
- Create a new workspace
_bot - Source the above workspace to your bashrc below the ros noetic workspace
- Within this workspace create the package
_bot_description - Follow the above tutorials and material and write the urdf description of your bot
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