- 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
- 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
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 timecatkin_make
failed, try it again, it should succeed in the second time.
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
- 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
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.
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