This repository contains practicals designed for the CS3340 and CS4352 - Robotics and Automation module offered by Department of Computer Science and Engineering of University of Moratuwa. This branch contains lab activities related to Batches starting from 2019. This series of practicals are designed to support the theory components taught in the CS4352 and CS3340 lectures and will have complementing activities each week. This work assumes that the students have a basic understanding of Robot Operating System (ROS) including its internal structure, Broadcaster-Listener architecture and Client-Server architecture which can be covered by following the ROS Introduction webinar series.
This practical series uses the latest version of Robot Operating System (ROS2) running in Ubuntu 22.04
Best practice is to create a new directory for every new workspace. Let's create a new workspace for all our practicals related to the module. Follow these instructions and create the "robotics" workspace.
This lab focuses on learning about TF broadcasters & TF listeners. The practical focuses on creating a TF broadcaster that recives input from keybaord and bradocasting them as a tf transform and a listener that listens to the broadcasted transform and controls the velocity of the turrtlesim accodingly. The static frame transform braodcasts a fixed transformation which a second tutrle follows. The dynamic frame transformation broadcasts a dynamic frame that a second turtle follow.
- Package Creation - here
- Broadcaster creation - here
- Listener creation - here
- Additional static frame - here
- Additional dynamic frame - here
- Compiling and Running - here
- Exercise - here
This lab focuses on learning about the relationship between 3 Angle representation, Quaternions and ROS2. The server implements a converter that converts the 3 angle representation to quarternions. The client can send the 3 angle representation and receive the converted quaternion value back. This lab exercise will also give an understating of ROS Server client architecture.
- Package Creation - here
- Srv creation - here
- Server and Client creation - here
- Exercise - here