Giter Club home page Giter Club logo

ur3_ros-hardware's Introduction

Universal Robot (UR3) Pick and Place Hardware Implementation with ROS using a USB Cam and an Electromagnetic Gripper

Simulation video Hardware video

  • How to cite this repository:
      Huang, L., Zhao, H., Universal Robot (UR3) Pick and Place Hardware Implementation with ROS using a USB Cam and an Electromagnetic Gripper, (2018), GitHub repository, https://github.com/lihuang3/ur3_ROS-hardware
    
    or BibTex
      @misc{Huang2018,
        author = {Huang, L., Zhao, H.},
        title = {Universal Robot (UR3) Pick and Place Hardware Implementation with ROS using a USB Cam and an Electromagnetic Gripper},
        year = {2018},
        publisher = {GitHub},
        journal = {GitHub repository},
        howpublished = {\url{https://github.com/lihuang3/ur3_ROS-hardware}}
      }
    

1. Connecting Universal Robot (UR3) to PC (Ubuntu 16.04)

1.1 Configure your hardware

Follow the steps on the official website "Getting Started with a Universal Robot and ROS-Industrial" to set up network using a router.

Download the repo ur_modern_driver to src in your Universal Robot workspace, and catkin_make. If there is hardware interface error during catkin make, replace ur_hardware_interface.cpp in ur_modern_driver

To connect your PC and an UR3, run the following launch file, (you need to source devel/setup.bash first, and go to each folder that includes the launch file to launch it)

  roslaunch ur_modern_driver ur3_bringup.launch robot_ip:=ROBOT_IP_ADDRESS

  roslaunch ur3_moveit_config ur3_moveit_planning_execution.launch

  roslaunch ur3_moveit_config moveit_rviz.launch config:=true

You may need to change your joint limit file before you run any motion planning program on the hardware. (Example)

2. Image Processing

3. ROS-Arduino

3.1

official tutorial Generating Message Header File

After you download rosserial, to generate custom messages you should follow the following step:

  cd <your workspace>
  source devel/setup.bash
  rosrun rosserial_arduino make_libraries.py /home/<username>/arduino-1.8.5/libraries

you can check you custom message folder at /home//arduino-1.8.5/libraries/ros_lib/ur5_notebook (or ur3_hardware)

To use arduino subscribe ROS topic: Template for a ROS Subscriber Using rosserial on Arduino

  1. compile /ur3_hardware/arduino_gripper/arduino_gripper.ino in Arduino IDE, and uplaod to board
  2. Open a new Terminal and run initialize.roslaunch
  3. Open another Terminal and start the subscriber node by typing the following command:
cd <your workspace>
source devel/setup.bash
rosrun rosserial_python serial_node.py /dev/ttyACM1
  1. In Arduino IDE open serial monitor

ur3_ros-hardware's People

Contributors

haoran-zhao avatar lihuang3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ur3_ros-hardware's Issues

ImportError: No module named ur5_notebook.msg`

Hello
Thanks for sharing your effort

when i rosrun ur3_hardware ur3_mp.py, it show:

Failed to import pyassimp, see https://github.com/ros-planning/move it/issues/86 for more info Traceback (most recent call last): File "/home/lzm/lzm/projects/ur/ur_ros_hardware/ur_ros_hardware_w s/src/ur3_ROS-hardware/src/ur3_mp.py", line 41, in <module> from ur5_notebook.msg import Tracker ImportError: No module named ur5_notebook.msg

But import ur5_notebook.msg in the simulation did not report an error.

how to soloved this error?

Moving an end-effector in straight line ??

Hello
Thanks for sharing your effort

I am trying to run this testmove2.py which is supposed to move the end-effector in straight line. When I run it, I don't get a complete motion, the arm start moving for short distance then stops and I get the following output.

Waiting for server...
Connected to server
This program makes the robot move between the following three poses:
[126.05071492878113, 0.0, -89.95437383553926, 0.0, 0.0, 0.0]
[85.94366926962348, 0.0, -89.95437383553926, 0.0, 0.0, 0.0]
[85.94366926962348, -11.459155902616464, -89.95437383553926, 0.0, 0.0, 0.0]
Please make sure that your robot can move freely between these poses before proceeding!
Continue? y/n: y
[ INFO] [1536936715.150929467]: Loading robot model 'ur5'...
[ WARN] [1536936715.151110798]: Skipping virtual joint 'fixed_base' because its child frame 'base_link' does not match the URDF frame 'world'
[ INFO] [1536936715.151222745]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1536936715.301756277]: Loading robot model 'ur5'...
[ WARN] [1536936715.301801600]: Skipping virtual joint 'fixed_base' because its child frame 'base_link' does not match the URDF frame 'world'
[ INFO] [1536936715.301825382]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1536936716.085013355]: TrajectoryExecution will use old service capability.
[ INFO] [1536936716.085093833]: Ready to take MoveGroup commands for group manipulator.
[ INFO] [1536936716.085165308]: Replanning: yes
Current pose:  position: 
  x: 0.241668097972
  y: -0.184739773876
  z: 0.724640447581
orientation: 
  x: 0.840875885171
  y: -0.530649554288
  z: 0.0723547173422
  w: 0.0781254833625
1.0
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
  what():  boost: mutex lock failed in pthread_mutex_lock: Invalid argument
Aborted (core dumped)

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.