This project implements the forward and inverse kinematics of the UR5 robotic arm and demonstrates their usage in a simulation environment. It also includes implementing trajectory planning for joint space using the Linear Segments with Parabolic Blends (LSPB) method.
This project aims to develop and validate the forward and inverse kinematics of the UR5 robotic arm. A trajectory planning system for joint space is also implemented using the Linear Segments with Parabolic Blends (LSPB).
The project consists of the following components:
-
UR5Kinematics
: This module implements the forward and inverse kinematics equations for the UR5 robotic arm. -
UR5Simulation
: This module provides simulation capabilities for controlling the UR5 robotic arm within the CoppeliaSim environment. -
main.py
: This script demonstrates the usage of the forward and inverse kinematics functions by executing predefined movements of the UR5 robotic arm.
To run this project, follow the instructions below:
-
CoppeliaSim: Install the CoppeliaSim simulation software. You can download it from the official website Coppelia Robotics.
-
Clone the Repository:
- Clone this repository to your local machine using the following command:
git clone https://github.com/julianamaria30/UR5-simulation.git
- Clone this repository to your local machine using the following command:
-
CoppeliaSim Configuration:
- Open CoppeliaSim and import the provided scene file from the repository.
- To ensure the correct configuration, ensure the server side runs in CoppeliaSim. In a child script of the UR5 robot, check if the following command is set up to execute just once at the simulation start:
simRemoteApi.start(19999)
- Start the simulation in CoppeliaSim.
-
Python Dependencies:
- Install the required Python dependencies by running the following command:
pip install numpy transforms3d
- Install the required Python dependencies by running the following command:
In this stage, the goal is to implement the forward and inverse kinematics of the UR5 robotic arm. The modeling can be validated using the simulator. By executing the main.py script, you can validate the modeling of the UR5 robotic arm by observing the calculated forward kinematics and ensuring that the inverse kinematics solution matches the desired end effector poses.
The UR5Kinematics
module provides the implementation of the forward and inverse kinematics equations for the UR5 robotic arm. By using this module, you can calculate the forward kinematics and inverse kinematics for specific joint configurations and end effector poses.
The main.py
script showcases the usage of these functions, demonstrating the calculations of forward kinematics and inverse kinematics.
To execute this demonstration, run the Main Script:
- Navigate to the project directory on your local machine.
- Run the main script using the following command:
python main.py
In this stage, the goal is to implement a trajectory planning to move the UR5 robotic arm from position A to B. The method implemented here is Linear Segments with Parabolic Blends (LSPB). In the scenario, the robotic arm will move to a position where the end-effector can move toward a hole.
The trajectory planning file can be found here:
Also, it is possible to find a simple code to define the robot joints' position through the keyboard. This simple code can be useful during robot tests:
This code was tested in a Ubuntu 22.04 LTs machine:
Please load the .ttt file inside the Scenes directory to proceed with this demonstration. Afterward, go to the main directory and run:
python3 trajetoria.py
The Youtube video showing the trajectory planning of the UR5 can be seen here: UR5 - Trajectory planning
This project was developed as part of the "Sistemas Robóticos" discipline at UFBA (Federal University of Bahia) with the support and guidance of Professor André Scolari.
This project was developed by:
-
Rasmus Skovgaard Andersen. Kinematics of a UR5. Aalborg University.
-
Craig, J. J. (2005). Introduction to Robotics: Mechanics and Control, Volume 3. Pearson/Prentice Hall Upper Saddle River, NJ, USA.
-
Ryan Keating. UR5 Inverse Kinematics. Accessed on: SlideShare.