# Advanced Robotics Lab 3 – ROS / Kinematics

This repository contains the source code and supporting files for **Lab 3** of the Advanced Robotics course. The lab focuses on controlling a custom Poppy Ergo Jr robot arm using ROS Noetic to explore direct and inverse kinematics.

## Overview
The main objectives of this lab are:
1. To control the robot arm using ROS nodes and topics.
2. To implement forward and inverse kinematics for precise positioning of the end-effector.
3. To develop a ROS node capable of building a tower of soft coloured cubes based on Cartesian positions.

## Setup
The setup includes:
- **Hardware**: Custom Poppy Ergo Jr robot arm (4 revolute joints powered by Dynamixel XL-320 servomotors).
- **Software**: ROS Noetic running on Ubuntu 20.04, with dependencies on `ros_cpp` and `std_msgs`.

## Contents
- **src/**: Contains the ROS nodes for robot control and kinematics.
- **msg/**: Custom message types for joint and gripper control.
- **srv/**: Custom service for inverse kinematics.
- **launch/**: Launch files for testing and running the system.

