UR5: Difference between revisions
(Moved FT sensor page to its own subpage) |
|||
Line 39: | Line 39: | ||
===Gripper information=== | ===Gripper information=== | ||
The parallel gripper can be controlled via a socket connection to rt13 on port 31101. | |||
To launch the server on the computer, you need to be logged in as '''root'''. | |||
The currently most up-to-date server program is ''/shome/ex02/mobotware-3.22b/mrc/trunk/tools/dxl_ros_server'' | |||
It supports the following functions: | |||
'''setpos x''': Sets the servo to a specific position | |||
'''setdist x''': Set the distance between the gripper fingers to x mm | |||
'''getpos''': Returns the servo position | |||
'''stop''': Closes the connection between the client and the server. '''Note that if this is not called, the server needs to be restarted before another connection can be made.''' | |||
The distance between the fingers can be calculated from the servo position with the expression ''math.asin((dist+2.28)/120.0) * 180.0/math.pi''. Note that for very small values, this is not correct. | |||
==Using the robot with ROS== | ==Using the robot with ROS== |
Revision as of 13:35, 13 February 2013
The Universal Robot in 326/005 can be controlled in several different ways. The aim of this page is to collect and present the most relevant data regarding the robot arm.
General information
For remote access to the robot, i.e. from ROS or via a Python scrict, use the host name rt29.
Starting the robot
To power on the robot, press the green button on the control box.
After the controller computer has booted, the screen will report that the robot has changed state and needs to be initialized. To do this, press the button in the noticifation box on the screen. On the new screen, press the top Auto button until the joints reports Ready. Then hold down the Auto button until all joints report ok. Note that this will make the robot joints move, if the robot is about to collide with itself, release the auto button and move the apropriate joint(s) to avoid a collision. When all joints are 'OK', press the Ok button in the lower right corner.
To move the robot into a desired position, press either of the top two buttons, and select the Move-tap. Then move the robot by using the arrows or by holding down the Teach button and move the robot by hand.
All values used for inertia and kinematics calculation can be found in the ROS Model data file.
The most important DH parameters are listed here for reference:
Joint | Type | a | α | d | θ | Offset |
---|---|---|---|---|---|---|
1 | Revolute | 0.00000 | π/2 | 0.089159 | q1 | 0.00 |
2 | Revolute | -0.42500 | 0.00 | 0.00000 | q2 | -π/2 |
3 | Revolute | -0.39225 | 0.00 | 0.00000 | q3 | 0.00 |
4 | Revolute | 0.00000 | π/2 | 0.10915 | q4 | -π/2 |
5 | Revolute | 0.00000 | -π/2 | 0.09465 | q5 | 0.00 |
6 | Revolute | 0.00000 | 0.00 | 0.0823 | q6 | 0.00 |
Force/torque sensor
The UR5 is equipped with a Mini40 force/torque sensor
Gripper information
The parallel gripper can be controlled via a socket connection to rt13 on port 31101.
To launch the server on the computer, you need to be logged in as root. The currently most up-to-date server program is /shome/ex02/mobotware-3.22b/mrc/trunk/tools/dxl_ros_server
It supports the following functions:
setpos x: Sets the servo to a specific position
setdist x: Set the distance between the gripper fingers to x mm
getpos: Returns the servo position
stop: Closes the connection between the client and the server. Note that if this is not called, the server needs to be restarted before another connection can be made.
The distance between the fingers can be calculated from the servo position with the expression math.asin((dist+2.28)/120.0) * 180.0/math.pi. Note that for very small values, this is not correct.
Using the robot with ROS
Setting up ROS
The following information concerns the Fuerte version of ROS, which should be installed on all the desktop computers in the lab. To get it to work properly, you might have to edit ~/.bashrc to use the correct version of ROS. The easiest way to do this is to copy the last 4-5 lines, starting with if [ -f /opt/ros... and paste it just below, and then change the version name (i.e. from electric to fuerte).
Required packages
Besides the currently installed version of ROS, the following packages should be installed using sudo apt-get install ros-fuerte-<package name>
- universal-robot (Universal robot drivers) - Provides drivers and a bringup to test the robot. Do not run the driver/test_move.py without changing the joint values. It will make the robot will smash into the wall with the standard values. (Setup the universal-robot package)
- arm_navigation (Arm navigation documentation) - For kinematics, planning and simulation. (Setup the arm_navigation package)
- moveit (New arm navigation stack) - Will replace the arm_navigation stack in future releases. (Setup MoveIt)
- industrial (Generic industrial robots package) - Not really used at the moment. Maybe useful in Groove.
To use the Force/torque sensor, the follwing package should be installed as well
- netft (Force/torque Sensor) - Interfaces the netft driver to the Mini40 Force/torque sensor using the Net F/T protocol. (Setup netFT )
Common errors and workarounds
The assigned network name is done using a Windows name server. Linux have some difficulties renewing this host name, which might lead to the name server forgetting the network mapping. To resolve the problem, just restart the computer and boot into Windows. The reboot into Linux.