Giter VIP home page Giter VIP logo

miapr_ur5e's Introduction

Metody i algorytmy planowania ruchu robotów - Projekt - 2023

Agnieszka Piórkowska, Miłosz Gajewski

Uruchomienie symulatora

foo@bar:~/ros2_miapr$ ./src/Universal_Robots_ROS2_Driver/ur_robot_driver/scripts/start_ursim.sh -m ur5e

Uruchomienie symulatora robota

foo@bar:~/ros2_miapr$ ros2 launch ur_robot_driver ur_control.launch.py \ 
ur_type:=ur5e robot_ip:=192.168.56.101 \
use_fake_hardware:=true launch_rviz:=false \
initial_joint_controller:=joint_trajectory_controller

Uruchomienie sterownika

foo@bar:~/ros2_miapr$ ros2 launch ur_moveit_config \
ur_moveit.launch.py ur_type:=ur5e \
launch_rviz:=true use_fake_hardware:=true

Zadanie:

Implementacja modułu do planowania ruchu manipulatora UR5 w ROS 2 (Humble) z wykorzystaniem MoveIt.

  • uruchomienie symulacji robota w Gazebo+Rviz;
  • implementacja węzła w C++ do planowania ruchu manipulatora - trajektoria do celu wyrażonego w joint space oraz cartesian space, trajektoria liniowa w cartesian space;
  • wykorzystać należy MoveIt (kinematyka, planning scene), do utworzenia ścieżki - move_group, umożliwienie wyboru planera z poziomu kodu, porównanie kilku algorytmów planowania;
  • planowanie ścieżki z unikaniem kolizji ze środowiskiem reprezentowanym jako Octomapa;

Uruchomienie servera

foo@bar:~/ros2_miapr$ ros2 launch miapr_ur5e trajectory_control_server.launch.py

Trajectory controllers

Joint Space Trajectory

foo@bar:~/ros2_miapr$ ros2 service call /joint_trajectory_service miapr_ur5e_interfaces/srv/JointTrajectoryInterface "{j1: 0, j2: -1.57, j3: -1.57, j4: -1.57, j5: 1.57, j6: 0, controller: 1}"

Cartesian Space Trajectory

foo@bar:~/ros2_miapr$ ros2 service call /cartesian_trajectory_service miapr_ur5e_interfaces/srv/CartesianTrajectoryInterface "{x: 0.2, y: 0, z: 0, qw: 0, qx: 0, qy: 0, qz: 0, controller: 1}"

Cartesian Linear Space Trajectory

foo@bar:~/ros2_miapr$ ros2 service call /cartesian_linear_trajectory_service miapr_ur5e_interfaces/srv/CartesianTrajectoryInterface "{x: 0.2, y: 0, z: 0, qw: 0, qx: 0, qy: 0, qz: 0}"

Przeszkody

Dodanie przeszkody do sceny

foo@bar:~/ros2_miapr$ ros2 service call /obstacle_add_service miapr_ur5e_interfaces/srv/ObstacjeInterface "{x: 1, y: 1, z: -2, box_x: 1, box_y: 1, box_z: 1}"

Usuwanie przeszkód ze sceny

foo@bar:~/ros2_miapr$ ros2 service call /obstacle_del_service miapr_ur5e_interfaces/srv/ObstacleDelInterface

Interfejsy dodatkowe

CartesianTrajectoryInterface.srv

# 
# Request: position, Response: status
# Controlers: 0 - SBLkConfigDefault, 1 - ESTkConfigDefault, 2 - LBKPIECEkConfigDefault, 3 - BKPIECEkConfigDefault, 4 - KPIECEkConfigDefault, 5 - RRTkConfigDefault
# 6 - RRTConnectkConfigDefault, 7 - RRTstarkConfigDefault, 8 - TRRTkConfigDefault, 9 - PRMkConfigDefault, 10 - PRMstarkConfigDefault
# 
float64 x
float64 y
float64 z
float64 qw
float64 qx
float64 qy
float64 qz
uint8 controller
---
bool status

JointTrajectoryInterface.srv

# 
# Request: joiny values, Response: status
# Controlers: 0 - SBLkConfigDefault, 1 - ESTkConfigDefault, 2 - LBKPIECEkConfigDefault, 3 - BKPIECEkConfigDefault, 4 - KPIECEkConfigDefault, 5 - RRTkConfigDefault
# 6 - RRTConnectkConfigDefault, 7 - RRTstarkConfigDefault, 8 - TRRTkConfigDefault, 9 - PRMkConfigDefault, 10 - PRMstarkConfigDefault
# 
float64 j1
float64 j2
float64 j3
float64 j4
float64 j5
float64 j6
uint8 controller
---
bool status

ObstacjeInterface.srv

# 
# Position: x,y,z Dimensions: box_x, box_y, box_z
# 
float64 x
float64 y
float64 z
float64 box_x
float64 box_y
float64 box_z
---
bool status

ObstacleDelInterface.srv

# 
# Clear the stage
# 
bool delete_all
---
bool status

miapr_ur5e's People

Contributors

agniechap avatar mgmike1011 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

miapr_ur5e's Issues

Interfaces

Can i find the interfaces which are included somewhere?
Like:
#include "miapr_ur5e_interfaces/srv/joint_trajectory_interface.hpp"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.