Skip to content

roamlab/arm_teleop_ur5

Repository files navigation

Arm Teleoperation - Universal Robot

Prerequisite and dependencies

  • Install ROS
  • Install ROS-Industrial
    sudo apt-get install ros-kinetic-industrial-core
    sudo apt-get install ros-kinetic-universal-robot
  • Install MoveIt!
  • Downlaod and build cisst-saw, using catkin build tools in a seperate workspace, following instructions in the documentation. Go under sawUniversalRobot, check the git branch to be [devel], and compile again.
    Note: In this application, we use the sawUniversalRobot component to establish an interface that we can set velocities at 125 Hz.
  • As a web-based implementation, ros web tool utilities are also needed if one wishes to run a teleoperation via a browser. The code is available at roamlab/teelop-ros-web-util. And rosbridge_server is needed, which can be installed:
    sudo apt-get install ros-kinetic-rosbridge-server
    sudo apt-get install ros-kinetic-tf2-web-republisher
    sudo apt-get install ros-kinetic-interactive-marker-proxy
    sudo apt-get install ros-kinetic-web-video-server
    sudo apt-get install ros-kinetic-video-stream-opencv

[Optional] Debuggin interface and tools

  • Install iPython
    sudo apt-get install ipython
  • Install ipdb for setting break point in command line ipython
    sudo apt-get install python-ipdb
  • Install MoveIt
    sudo apt-get install ros-kinetic-moveit

Downlaod & Compiling

We are using catkin_make for this repo, and first, let's set up the workspace:

  • mkdir -p catkin_ws/src
  • cd catkin_ws
  • catkin_make

Then, let's get the code (if this is the first time you download this repo):

  • cd src
  • git clone [email protected]:roamlab/arm_teleop_ur5.git --recursive
  • cd arm_teleop_ur5
  • bash update_repo.sh

Finally, to compile, since this repo depends on another catkin workspace, we need to overlay workspaces

  • cd catkin_ws
  • rm -rf build & rm -rf devel
  • IMPORTANT source <cisst_catkin_ws/devel_release/setup.bash>
  • catkin_make
    Note that if the first time catkin_make failed, try it again, it should succeed in the second time.

Running Instructions

Environment

Before running the code, you need to source and define env var:
source <teleop_catkin_workspace>/devel/setup.bash
export ARM_TELEOP_UR5_SRC="<src/arm_teleop_ur5>"
You may also choose to copy them at the end of your ~/.bashrc file

Check camera setup for teleoperation

  • run
    ls -ltrh /dev/video*
  • you should see at least two video sources, something like /dev/video[X], and they correspond to the video parameters video_stream_provider in the lannch file teleop_arm_hand_web.launch

Main script

run roslaunch teleop teleop_arm_hand_web.launch
Note: although the website interface include the control interface for a hand, you need to launch the hand ros program seperately. For example:
run roslaunch nasa_hand_robot nasa_hand_no_UI.launch
and see https://github.com/roamlab/nasa_hand for more details.

Camera Calibration

A camera is mounted on the end-effector (EE), and the frame offset between the camera and the EE needs calibrating for supervised autonomy. The calibration steps include:

  • run the robot using teach pandent to a pose that the camera can see its base
  • run roslaunch teleop camera_calibration.launch
  • adjust the interactive marker such that the pointcloud of the robot base and the urdf rendering overlap
  • copy the result output from the command line and input it in the config.cfg files