Skip to content
This repository was archived by the owner on Aug 2, 2024. It is now read-only.

ROS simulation of a UR5 robot to pick objects and inverse kinematics implementation in Python. Includes notebooks on Inverse Kinematics theory.

Notifications You must be signed in to change notification settings

mcarfagno/robot_arm_pick_and_place

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pick and Place

My take on simulating a pick and place task. Inspired by Udacity's Robotic arm - Pick & Place project, but with my own solution. I tried to make this a bit more more unique by using a different robot and using an IK solver based on Dampened Least Sqares instead of a purely geometrical one.

Contens

Jupyter Notebooks

Refer to these for theory bits!

  • InverseKinematicsUR5: Forward and Inverse Kinematics theory recap and python code snippets.

  • RobotSimulation: Walkthrough on simulating and controlling a robot using MOVEIT! in ROS.

ROS Packages

  • ur5_arm: ROS nodes used to control the simulated ur5 robot. Kinematics-related software is here.

  • ur5_arm_gazebo: Gazebo simulation world.

  • ur5_arm_description: Custom UR5 robot URDF with gripper for the simulation environment.

  • gripper_description: Gripper standalone URDF.

  • ur5_arm_moveit_config: Package to control the UR5 robot joints using ROS MOVEIT!.

Overview

This is how the simulated environment is setup:

The goal is to pick the object wich spawns on a random location on the table.

Usage

Here is a general overview on how the simulation framework works:

Use the provided ros launch files in this order.

1- Start the simulation: set ups the scene in gazebo and brings-up the robot arm.

roslaunch ur5_arm_gazebo ur5_grasping_world.launch 

2- Start MOVEIT Planner: starts the trajectory planner.

roslaunch ur5_arm_moveit_config ur5_arm_planning_execution.launch 

3- Start the pick and place commander: starts the arm commander node plus the inverse kinematics solver and target spawner server nodes, follow the instructions in the terminal to start the grasping task.

roslaunch ur5_arm_moveit_config ur5_arm_planning_execution.launch 

Dependencies

References and Special Thanks

Not in any particular order:

  • Jennifer Buehler -> grasping plugin used in this project
  • Robot Ignite Accademy -> original gazebo scene and Moveit! tutorials used to set up the arm joint controllers.
  • Robotics Systems Lab -> robotics kinematics and dynamics lecture notes.
  • Udacity -> original project idea & Simpy usage. URDF gripper files are also from here.
  • Rethink Robotics -> Inspiration for the ROS Action Server python interface used for gripper and arm.

About

ROS simulation of a UR5 robot to pick objects and inverse kinematics implementation in Python. Includes notebooks on Inverse Kinematics theory.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published