Skip to content

About

Assignments in the course DD2410 Introduction to Robotics at KTH

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

DD2410 - Introduction to Robotics @ KTH

This repository contains assignments and a final project completed for the course DD2410 - Introduction to Robotics at KTH Royal Institute of Technology. The assignments provide hands-on experience with ROS (Robot Operating System), kinematics, path planning, and simulation environments like Gazebo.


📦 Requirements

  • ROS Melodic
  • Ubuntu 18.04 or compatible with ROS Melodic
  • Gazebo, Rviz, and other ROS-related tools

📚 Assignment Overview

🧱 Assignment 1: ROS + Wall Following with Kobuki

This programming exercise helps you get acquainted with ROS and development tools through the simulation of a Kobuki differential drive robot. The goal is to make the robot follow a wall using distance sensor data.

Includes:


🔁 Assignment 2: Inverse Kinematics

You will implement inverse kinematics solutions for two robot manipulators: a Scara robot and a Kuka robot.

Scara Robot (3 DOF)

  • Modify IK_functions.py in the ROS package.
  • Analytic IK solution.
roslaunch kinematics_assignment scara_launch.launch

Scara Explanation Scara Values

Kuka Robot

roslaunch kinematics_assignment kuka_launch.launch

Kuka Info Kuka DH


🚗 Assignment 3: Path Planning using Dubin's Car

Learn to model a car-like robot using Dubin’s paths.

git clone https://github.com/cisprague/dubins.git

Constraints to keep in mind:

  • -π/4 ≤ controls[i] ≤ π/4
  • time[i+1] > time[i]
  • ∆t ≥ 0.01s

🗺️ Assignment 4: Mapping

Mapping is a fundamental capability for autonomous robots. The robot builds a map from scratch using onboard sensors.

Use SLAM techniques for mapping, and ensure it works in uncertain, dynamic environments.


🤖 Final Project: Simulation with TIAGo Robot

You will simulate a TIAGo robot in Gazebo to perform manipulation tasks such as pick, carry, and place.

Project Overview

Videos of the system:

🛠 Instructions

Clone and build the project:

cd ~/catkin_ws/src/
git clone https://github.com/kth-ros-pkg/Robotics_intro.git

cd ~/catkin_ws
catkin_make -DCATKIN_ENABLE_TESTING=0
source devel/setup.bash

Launch simulation:

roslaunch robotics_project launch_project.launch

Handle model resets:

  • Manually delete tiago_steel and aruco_cube models in Gazebo after stopping simulation.
  • Relaunch both launch files if needed.

🧠 Notes on Probabilities

Some components rely on probabilistic models. Failures such as AMCL divergence, cube drops, or MoveIt trajectory issues are expected. Implement feedback/error handling in your state machine to account for these.


🤝 Contributions

Feel free to fork, open issues, or submit pull requests!


🧾 License

MIT License

About

Assignments in the course DD2410 Introduction to Robotics at KTH

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages