Git Product home page Git Product logo

universal_robot's Introduction

universal_robot

ROS-Industrial universal_robot meta-package. See the ROS wiki page for compatibility information and other more information.

This repository provides ROS support for the universal robots. This repo holds source code for all versions > groovy. For those versions <= groovy see: hg https://kforge.ros.org/ros_industrial/universal_robot

Installation from Source
There are releases available for ROS Hydro and ROS Indigo. However, for the latest features and developments you might want to install from source.

First set up a catkin workspace (see this tutorials).
Then clone the repository into the src/ folder. It should look like /path/to/your/catkin_workspace/src/universal_robot.
Make sure to source the correct setup file according to your workspace hierarchy, then use catkin_make to compile.


Usage with real Hardware
There are launch files available to bringup a real robot - either UR5 or UR10.
In the following the commands for the UR5 are given. For the UR10, simply replace the prefix accordingly.

Don't forget to source the correct setup shell files and use a new terminal for each command!

To bring up the real robot, run:

roslaunch ur_bringup ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]

A simple test script that moves the robot to predefined positions can be executed like this:

rosrun ur_driver test_move.py

CAUTION:
Remember that you should always have your hands on the big red button in case there is something in the way or anything unexpected happens.

MoveIt! with real Hardware
Additionally, you can use MoveIt! to control the robot.
There exist MoveIt! configuration packages for both robots.

For setting up the MoveIt! nodes to allow motion planning run:

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch

For starting up RViz with a configuration including the MoveIt! Motion Planning plugin run:

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

NOTE:
As MoveIt! seems to have difficulties with finding plans for the UR with full joint limits [-2pi, 2pi], there is a joint_limited version using joint limits restricted to [-pi,pi]. In order to use this joint limited version, simply use the launch file arguments 'limited', i.e.:

roslaunch ur_bringup ur5_bringup.launch limited:=true robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true

roslaunch ur5_moveit_config moveit_rviz.launch config:=true


Usage with Gazebo Simulation
There are launch files available to bringup a simulated robot - either UR5 or UR10.
In the following the commands for the UR5 are given. For the UR10, simply replace the prefix accordingly.

Don't forget to source the correct setup shell files and use a new terminal for each command!

To bring up the simulated robot in Gazebo, run:

roslaunch ur_gazebo ur5.launch

MoveIt! with a simulated robot
Again, you can use MoveIt! to control the simulated robot.

For setting up the MoveIt! nodes to allow motion planning run:

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true

For starting up RViz with a configuration including the MoveIt! Motion Planning plugin run:

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

NOTE:
As MoveIt! seems to have difficulties with finding plans for the UR with full joint limits [-2pi, 2pi], there is a joint_limited version using joint limits restricted to [-pi,pi]. In order to use this joint limited version, simply use the launch file arguments 'limited', i.e.:

roslaunch ur_gazebo ur5.launch limited:=true

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true limited:=true

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

universal_robot's People

Contributors

130s avatar abubeck avatar achim-k avatar airplanesrule avatar codebot avatar davetcoleman avatar de-vri-es avatar destogl avatar equanox avatar fmessmer avatar gavanderhoorn avatar ipa-nhg avatar ipa-robotino avatar ipr-sr2 avatar jacknlliu avatar jeppewalther avatar jeremyzoss avatar jonbinney avatar jrgnicho avatar karlyeurl avatar kphawkins avatar machinekoder avatar marcoesposito1988 avatar mathias-luedtke avatar miguelprada avatar scottpaulin avatar shaun-edwards avatar thomastimm avatar tnl-woi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

universal_robot's Issues

ur3 real robot execute failed

I just finished the setup and use the code below:
'roslaunch ur_robot_driver ur3_bringup.launch robot_ip:=192.168.56.10 limited:=ture'
'roslaunch ur3_moveit_config ur3_moveit_planning_execution.launch limited:=true'
'roslaunch ur3_moveit_config moveit_rviz.launch rviz_config:=$(rospack find ur3_moveit_config)/launch/moveit.rviz'

but it failed when executed

Screenshot from 2023-09-19 00-16-23
Screenshot from 2023-09-19 00-17-01

It also failed in gazebo.

Upgrade Boost include directories for `ur_kinematics`

Branch: calibration_devel
Use case: The issue came up here.

Problem statement:

The ur_kinematics package seems to use Boost includes via include_directories(SYSTEM ${Boost_INCLUDE_DIR}), which is a cache entry.

I'm not sure, though, why and how ur_kinematics would drop the own generation of such cache entries in that case, despite the package's

find_package(Boost REQUIRED COMPONENTS system)

Possible solution:
Use the result variable instead, as recommended here.

include_directories(SYSTEM ${Boost_INCLUDE_DIRS})

Rviz motion planning plugin works but c++ interface produces non-optimal trajectories

Hi,

I have a similar issue to the one posted here: moveit/moveit#3159

Motion planning with the rviz plugin looks fine but if I use the C++ interface it can plan a correct path to the goal pose but it is completely non-optimal as the trajectory makes a huge movement although the goal pose is just a small translation.

I do not understand if the issue lies within moveit or within this repository or somewhere else?
However, for me the error just occured unter noetic, I had it running on melodic before and that was fine.

Do you have an idea?

Thank you and best regards

UR16 Interface

Hi,

I am using the repository for a UR10 (calibration devel), which works fine!
However, we are thinking about switching to an UR16e, how tested/stable is the interface here?

Thank you

Real UR5e wrong IK and collision with MoveIt

Hello everyone,

I am a master science student and for my thesis I am working on a UR5e robot with a Robotiq 2f 85 gripper directly attached. In this project I have to grasp some objects in different positions and orientations, so for this reason I am using MoveIt to get directly the Inverse Kinematics of a desired position and orientation depending on the object detected. But when I send the Pose goal = [0.2554, 0.5753, -0.65, 2.6285, -0.0219, 2.1827] to the robot, the Pose is in front of the robot, so it would be easy to reach for him, but often he wants to reach this Poses doing some joint movements (for example going behind or rotate a lot of times) that makes him to collide with some object in the environment. I tried various planners as RRTConnect, PRM or TRRT but no one worked well and with no collisions.

Could you suggest me a solution please?
Maybe to use another planner that works different and is fine in this case, some parameter changes or to set like some space movement allowances.

Could you please help me to solve this problem? Thank you very much in advance!

Best regards,
Franci

OSError: [Errno 8] Exec format error

Hello everyone I'm trying to control a UR3 robot through ROS using both command :

  • roslaunch ur_bringup ur3_bringup.launch robot_ip:=193.61.190.48
  • roslaunch ur3_moveit_config ur3_moveit_planning_execution.launch limited:=true
    but I have a OSError that stop the first command :
    OSError: [Errno 8] Exec format error: '/home/cesar/catkin_ws/src/universal_robot/ur_description/urdf/ur.xacro'

I am trying to launch this via Ubuntu 20.04 and ROS Noetic.

If someone could help me I will be grateful.

link `base_link` is not unique for UR10

Ubuntu 20.04
ROS Noetic
Moveit (from source) a2be2d8f569399123ac84d71279bbd143f49d17e

I'm having issues when trying to run moveit setup assistant with the urdfs in ur_description from this package. I just pulled the latest calibration-devel and compilation goes just fine. When I run the setup assistant and try to load the ur10.xacro, I am met with the error link 'base_link' is not unique

Interestingly I just tried the same with ur10e.xacro and ur5.xacro and it passes just fine. I'll look into what's different with the ur10 file. But just an FYI that something is going on here.

Outdated instructions for launching moveit_rviz.launch

The readme still says to run the moveit_rviz.launch with config:=true, however the interface has changed with the recent updates:

<arg name="rviz_config" default="" />
<arg if="$(eval rviz_config=='')" name="command_args" value="" />
<arg unless="$(eval rviz_config=='')" name="command_args" value="-d $(arg rviz_config)" />

From UniversalRobots/Universal_Robots_ROS_Driver#403 (comment) it seems like config:=true should be config:=$(rospack find ur5_moveit_config)/launch/moveit.rviz

I will open a separate issue regarding moveit.rviz defaulting to the endeffector group rather than manipulator

moevit.rviz has confusing defaults for beginners

Opening the moveit.rviz file will by default open with the Planning Group set to endeffector rather than manipulator. This means the TCP of the robot cannot be dragged around to plan a motion. This is confusing to beginners why don't understand all the parts.

I also noticed that there was a large diff between the moveit.rviz file before and after opening it and changing the Planning Group to manipulator https://pastebin.com/UkrCVB3C

ur_robot_driver error

roslaunch ur_robot_driver ur3e_bringup.launch robot_ip:=133.91.72.106 limited:=true kinematics_config:="${HOME}/my_robot_calibration.yaml" use_tool_communication:=true tool_voltage:=24 tool_parity:=0 tool_baud_rate:=115200 tool_stop_bits:=1 tool_rx_idle_chars:=1.5 tool_tx_idle_chars:=3.5 tool_device_name:=/tmp/ttyUR

As a result of the above, I got the following error
[ERROR] [1633341844.617668903]: This controller requires a hardware interface of type 'scaled_controllers::ScaledPositionJointInterface'. Make sure this is registered in the hardware_interface::RobotHW class. [ERROR] [1633341844.617689600]: Initializing controller 'scaled_pos_joint_traj_controller' failed

Since there is no ur_e_description package in the universal_robot repository that is open now, it cannot be re-installed. Committing the repository to the latest version does not change. I would like to know how to improve it.

How to change the planning frame in moveit to make it match the base frame definition on the UR robot

Hi,

I am trying to use the new UR robot driver. But it seems that the planning frame used in the Moveit is "base_link", which has a different frame definition compared to the one used on the UR robot. "base" frame matches the frame definition on the real UR robot. I tried to change the base_link in this line to 'base' or 'base_link_inertia". However, this does not change the planning reference frame used in Moveit. How can I change the reference frame? Thanks.

IK with Robotiq gripper 2f 85 attached on UR5e

Hello everyone,

I am a master science student and for my thesis I am working on a UR5e robot with a Robotiq 2f 85 gripper directly attached.
In this project I have to grasp some objects in different positions and orientations, so for this reason I am using MoveIt to get directly the Inverse Kinematics of a desired position and orientation depending on the object detected.
But the problem is that MoveIt considers as the reference frame of the endeffector the original one that ends in tool0, but as I am working with the gripper, I need that the referenze frame of the ee has to be of the robotiq gripper, so tranlates of ~19 cm wrt z-azis of previous one.
Without this setting the IK is always wrong as it changes completely the result.
Unfortunately ur5e_moveit_config package of has no gripper in the configuration, i tried to make one by me but did not worked.

Could you please help me to solve this problem?
Thank you very much in advance!

Best regards,
Franci

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.