- ROS Melodic
- Qt5
- Moveit
- Universal_Robot_Client_Library
- Universal_Robot_ROS_Driver
- universal_robot
Clone this repo into your workspace
$ cd ~/path/to/your/ws/src && git clone -b e_series https://github.com/sean85914/arm_operation.git
$ rosdep install --from-paths src --ignore-src -r -y
$ cd ~/path/to/your/ws && catkin_make && source devel/setup.bash
- Advertise some useful services for controlling the robot, such as set TCP link of the robot arm to user given cartesian/joint pose, etc.
- Services
- ~ur_control/goto_pose
- ~ur_control/linear_move
- ~ur_control/goto_joint_pose
- ~ur_control/velocity_control
Note This is not real velocity control (speedl or speedj in URScript), but using position control to simulate velocity control
- Subscribed Topics
- Published Topics
- Parameters
- ~tool_length (double): length from end effector to TCP, default is 0.0
- ~tf_prefix (string): joint name prefix, default is ""
- ~action_server_name (string): action server name for trajectory control
- ~maximum_speed (dict): allowed joint maximum speed
- Services
- joint_value.msg
- float32[6] joint_value
- joint_pose.srv
- Request:
- arm_operation/joint_value target_joint
- Response:
- (string) plan_result
- Request:
- target_pose.srv
- Request:
- geometry_msgs/Pose target_pose
- (float32) factor: executation speed factor, the smaller the faster
- Response:
- (string) plan_result
- Request:
- velocity_ctrl.srv
- Request:
- geometry_msgs/Twist twist
- (float32) duration: How long should this twist apply
- (bool) frame: true for ee_link, false for base_link
- Response:
- (string) plan_result
- Request:
For real robot, follow the preparation in here, conect the Ethernet cable to your PC and run
$ roslaunch arm_operation urX_real.launch robot_ip:=[ur_robot_ip]
[TODO]
- Fix velocity control link in real robot
- Implement real velocity control