Skip to content

Automated workshop simulation developed in ROS1, featuring a mobile robot and a fixed manipulator cooperating through SLAM-based navigation for autonomous tool delivery.

Notifications You must be signed in to change notification settings

AndreaMazzera/RoboticsLabProjectAutonomousWorkshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robotics Lab Project - Autonomous Workshop

This repository contains the software packages developed for the Robotics Lab exam project.
The goal of the project is the design and implementation of an automated workshop composed of:

  • A fixed robotic manipulator
  • A differential-drive mobile robot The system is designed to demonstrate autonomous navigation, task execution, and cooperation between heterogeneous robotic platforms.

The entire project has been developed using ROS 1. Future updates may include a migration to ROS 2 to take advantage of improved communication, real-time capabilities, and long-term support.

📦 Package Overview

  • apriltag: is a Robot Operating System (ROS) wrapper of the AprilTag 3 visual fiducial detector.
  • apriltag_ros: depends on the latest release of the AprilTag library. Clone it into your catkin workspace before building.
  • kuka_iiwa: URDF description of Kuka Iiwa manipulator including its sensors and plugin.
  • kuka_iiwa_config: configuration of Kuka Iiwa for using MoveIt.
  • project_package: package that contain services, custom libraries and launchers necessary for the project.
  • turtlebot3_description: URDF description of turtlebot including its sensors, plugin, SLAM and navigation stack configuration.

🔨 How to Build

To build the packages in this repository follow these steps:

  1. cd into an existing ROS Noetic catkin workspace or create a new one:

    mkdir -p catkin_ws/src
  2. Clone this repository in the src folder of your ROS Noetic catkin workspace:

    cd catkin_ws/src
    git clone https://github.com/AndreaMazzera/Project_Robotics_Lab.git
  3. Install the requried binary dependencies of all packages in the catkin workspace using the following rosdep command (I added this command because I've read that it often helps with the dependency issue):

    rosdep install --from-paths src --ignore-src -r -y
    
  4. After installing the required dependencies build the catkin workspace:

    catkin_ws$ catkin build
  5. Finally, source the newly built packages with the devel/setup.* script, depending on your used shell:

    catkin_ws$ source devel/setup.bash

✅ Usage

To test the project open three terminal and launch respectively:

  1. Launcher for Gazebo, Rviz, Moveit, Navigation Stack and a service server that us a tf listener (get_coordinates server):
roslaunch project_package project_bringup.launch

gazebo_rviz_moveit_navstack

  1. Launcher for servers of each robot. Each robot has its server for receive commands from user script, so in this console we can see the history of commands received from the two servers. Notice that, each notification is preceded by the name of the robot it is associated with (Ex. KUKA: Request for homing position successfully received).
roslaunch project_package servers.launch

servers

  1. Launcher for user script. In this console the user send commands to two robot, for example go take a specif tool.
roslaunch project_package script.launch

script

Now in console of last launcher, the script ask to user if he wants to carry out the exploration phase or not:

  • Case A – Negative Answer: the user script send first exploration command to manipulator and, when it finish, send exploration command to mobile robot.
  • Case B – Affirmative Answer: the user script send auto-exploration command for both robots. This mean that we want skip this phase for both robots. So, information about delivery point and collocation of tools will be resolve automatically without any action from the robots.
Kuka Exploration Turtlebot Exloration
kukaexploratio turtlebotexploratio

After this step, the user can choose a option from menu: usermenu

About

Automated workshop simulation developed in ROS1, featuring a mobile robot and a fixed manipulator cooperating through SLAM-based navigation for autonomous tool delivery.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published