add old 320 M5 gripper ros model

This commit is contained in:
weijian 2023-05-29 10:27:33 +08:00
parent 0d0472ccf1
commit c472e256a3
14 changed files with 5978 additions and 25988 deletions

View file

@ -32,6 +32,7 @@ include_directories(include ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
catkin_install_python(PROGRAMS
scripts/mycobot_320_follow_display.py
scripts/mycobot_320_slider.py
scripts/mycobot_320_gripper_slider.py
scripts/mycobot_320_teleop_keyboard.py
scripts/mycobot_320_listen_real.py
scripts/mycobot_320_listen_real_of_topic.py

View file

@ -0,0 +1,270 @@
Panels:
- Class: rviz/Displays
Help Height: 78
Name: Displays
Property Tree Widget:
Expanded:
- /Global Options1
- /Status1
- /RobotModel1
- /RobotModel1/Links1
- /TF1
- /TF1/Frames1
- /TF1/Tree1
Splitter Ratio: 0.5
Tree Height: 591
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
Expanded:
- /2D Pose Estimate1
- /2D Nav Goal1
- /Publish Point1
Name: Tool Properties
Splitter Ratio: 0.5886790156364441
- Class: rviz/Views
Expanded:
- /Current View1
Name: Views
Splitter Ratio: 0.5
- Class: rviz/Time
Name: Time
SyncMode: 0
SyncSource: ""
Preferences:
PromptSaveOnExit: true
Toolbars:
toolButtonStyle: 2
Visualization Manager:
Class: ""
Displays:
- Alpha: 0.5
Cell Size: 1
Class: rviz/Grid
Color: 160; 160; 164
Enabled: true
Line Style:
Line Width: 0.029999999329447746
Value: Lines
Name: Grid
Normal Cell Count: 0
Offset:
X: 0
Y: 0
Z: 0
Plane: XY
Plane Cell Count: 10
Reference Frame: <Fixed Frame>
Value: true
- Alpha: 1
Class: rviz/RobotModel
Collision Enabled: false
Enabled: true
Links:
All Links Enabled: true
Expand Joint Details: false
Expand Link Details: false
Expand Tree: false
Link Tree Style: Links in Alphabetic Order
base:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
gripper_base:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
gripper_left1:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
gripper_left2:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
gripper_left3:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
gripper_right1:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
gripper_right2:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
gripper_right3:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link1:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link2:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link3:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link4:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link5:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link6:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
Name: RobotModel
Robot Description: robot_description
TF Prefix: ""
Update Interval: 0
Value: true
Visual Enabled: true
- Class: rviz/TF
Enabled: true
Frame Timeout: 15
Frames:
All Enabled: false
base:
Value: true
gripper_base:
Value: true
gripper_left1:
Value: true
gripper_left2:
Value: true
gripper_left3:
Value: true
gripper_right1:
Value: true
gripper_right2:
Value: true
gripper_right3:
Value: true
link1:
Value: true
link2:
Value: true
link3:
Value: true
link4:
Value: true
link5:
Value: true
link6:
Value: true
Marker Alpha: 1
Marker Scale: 0.20000000298023224
Name: TF
Show Arrows: true
Show Axes: true
Show Names: true
Tree:
base:
link1:
link2:
link3:
link4:
link5:
link6:
gripper_base:
gripper_left2:
{}
gripper_left3:
gripper_left1:
{}
gripper_right2:
{}
gripper_right3:
gripper_right1:
{}
Update Interval: 0
Value: true
Enabled: true
Global Options:
Background Color: 48; 48; 48
Default Light: true
Fixed Frame: base
Frame Rate: 30
Name: root
Tools:
- Class: rviz/Interact
Hide Inactive Objects: true
- Class: rviz/MoveCamera
- Class: rviz/Select
- Class: rviz/FocusCamera
- Class: rviz/Measure
- Class: rviz/SetInitialPose
Theta std deviation: 0.2617993950843811
Topic: /initialpose
X std deviation: 0.5
Y std deviation: 0.5
- Class: rviz/SetGoal
Topic: /move_base_simple/goal
- Class: rviz/PublishPoint
Single click: true
Topic: /clicked_point
Value: true
Views:
Current:
Class: rviz/Orbit
Distance: 1.5781474113464355
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
Swap Stereo Eyes: false
Value: false
Field of View: 0.7853981852531433
Focal Point:
X: 0
Y: 0
Z: 0
Focal Shape Fixed Size: true
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
Pitch: 0.5597966313362122
Target Frame: <Fixed Frame>
Yaw: 2.7535898685455322
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 888
Hide Left Dock: false
Hide Right Dock: false
QMainWindow State: 000000ff00000000fd00000004000000000000016a000002dafc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000002da000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002dafc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000002da000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007380000003efc0100000002fb0000000800540069006d0065010000000000000738000003bc00fffffffb0000000800540069006d00650100000000000004500000000000000000000005c8000002da00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
collapsed: false
Tool Properties:
collapsed: false
Views:
collapsed: false
Width: 1848
X: 72
Y: 27

View file

@ -0,0 +1,31 @@
<launch>
<arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" />
<arg name="model" default="$(find mycobot_description)/urdf/320_urdf/mycobot_pro_320_gripper.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_320)/config/mycobot_320_gripper.rviz" />
<arg name="gui" default="true" />
<!-- <include file="$(find mycobot_280)/launch/slider_control.launch">
<arg name="model" value="$(arg model)" />
<arg name="rvizconfig" value="$(arg rvizconfig)" />
<arg name="gui" value="$(arg gui)" />
</include> -->
<!-- new -->
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<!-- <param name="use_gui" value="$(arg gui)" /> -->
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Open control script -->
<!-- <node name="control_slider" pkg="mycobot_280" type="slider_control.py">
<param name="port" type="string" value="$(arg port)" />
<param name="baud" type="int" value="$(arg baud)" />
</node> -->
<!-- Show in Rviz -->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -0,0 +1,17 @@
<launch>
<arg name="model" default="$(find mycobot_description)/urdf/320_urdf/mycobot_pro_320_gripper.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_320)/config/mycobot_320_gripper.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<param name="use_gui" value="$(arg gui)" />
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -0,0 +1,56 @@
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
"""[summary]
This file obtains the joint angle of the manipulator in ROS,
and then sends it directly to the real manipulator using `pymycobot` API.
This file is [slider_control.launch] related script.
Passable parameters:
port: serial prot string. Defaults is '/dev/ttyUSB0'
baud: serial prot baudrate. Defaults is 115200.
"""
import rospy
import time
from sensor_msgs.msg import JointState
from pymycobot.mycobot import MyCobot
mc = None
gripper_value = []
def callback(data):
global mc
# rospy.loginfo(rospy.get_caller_id() + "%s", data.position)
data_list = []
for index, value in enumerate(data.position):
data_list.append(round(value, 3))
data_list = data_list[:7]
print("radians:%s"%data_list[:6])
mc.send_radians(data_list[:6], 80)
gripper_value = int(abs(-0.7-data_list[6])* 117)
print("gripper_value:%s"%gripper_value)
# mc.set_gripper_mode(0)
# time.sleep(1)
mc.set_gripper_value(gripper_value, 100)
def listener():
global mc
global gripper_value
rospy.init_node("control_slider", anonymous=True)
rospy.Subscriber("joint_states", JointState, callback)
port = rospy.get_param("~port", "/dev/ttyUSB0")
baud = rospy.get_param("~baud", 115200)
print(port, baud)
mc = MyCobot(port, baud)
# spin() simply keeps python from exiting until this node is stopped
print("spin ...")
rospy.spin()
if __name__ == "__main__":
listener()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,355 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter" >
<xacro:property name="width" value=".2" />
<link name="base">
<visual>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/320_urdf/base.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 3.1415926"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/320_urdf/base.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 3.1415926"/>
</collision>
</link>
<link name="link1">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/link1.dae"/>
</geometry>
<origin xyz = "0 0 0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/link1.dae"/>
</geometry>
<origin xyz = "0 0 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="link2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/link2.dae"/>
</geometry>
<origin xyz = "0 0 0.0587 " rpy = " 0 0 3.1415926"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/link2.dae"/>
</geometry>
<origin xyz = "0 0 0.0587 " rpy = " 0 0 3.1415926"/>
</collision>
</link>
<link name="link3">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/link3.dae"/>
</geometry>
<origin xyz = "0 0 0.038 " rpy = " 0 0 3.1415926"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/link3.dae"/>
</geometry>
<origin xyz = "0 0 0.038 " rpy = " 0 0 3.1415926"/>
</collision>
</link>
<link name="link4">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/link4.dae"/>
</geometry>
<origin xyz = "0 -0.001 0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/link4.dae"/>
</geometry>
<origin xyz = "0 -0.001 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="link5">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/link5.dae"/>
</geometry>
<origin xyz = "0 0.002 0 " rpy = " 0 0 3.1415926"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/link5.dae"/>
</geometry>
<origin xyz = "0 0.002 0 " rpy = " 0 0 3.1415926"/>
</collision>
</link>
<link name="link6">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/link6.dae"/>
</geometry>
<origin xyz = "-0.502 -0.090 -0.096 " rpy = " 0 1.5708 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/link6.dae"/>
</geometry>
<origin xyz = "-0.502 -0.090 -0.096 " rpy = " 0 1.5708 0"/>
</collision>
</link>
<link name="gripper_base">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_base.dae"/>
</geometry>
<origin xyz = "-0.02 0.012 -0.018 " rpy = " 0 0 1.5708"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_base.dae"/>
</geometry>
<origin xyz = "-0.02 0.012 -0.018 " rpy = " 0 0 1.5708"/>
</collision>
</link>
<link name="gripper_left1">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_left1.dae"/>
</geometry>
<origin xyz = "0.036 -0.052 0.0 " rpy = " 0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_left1.dae"/>
</geometry>
<origin xyz = "0.036 -0.052 0.0 " rpy = " 0 0 1.5708"/>
</collision>
</link>
<link name="gripper_left2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_left2.dae"/>
</geometry>
<origin xyz = "0.03 0.024 -0.018 " rpy = " 0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_left2.dae"/>
</geometry>
<origin xyz = "0.03 0.024 -0.018 " rpy = " 0 0 1.5708"/>
</collision>
</link>
<link name="gripper_left3">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_left3.dae"/>
</geometry>
<origin xyz = "0.034 0.0 -0.012 " rpy = " 0 3.14159 -1.5708"/>
<!-- <origin xyz = "0.0 0 0 " rpy = " 0 0 0"/> -->
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_left3.dae"/>
</geometry>
<origin xyz = "0.034 0.0 -0.012 " rpy = " 0 3.14159 -1.5708"/>
</collision>
</link>
<link name="gripper_right1">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_right1.dae"/>
</geometry>
<origin xyz = "-0.072 -0.05 0.0 " rpy = " 0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_right1.dae"/>
</geometry>
<origin xyz = "-0.036 -0.052 0.0 " rpy = " 0 0 1.5708"/>
</collision>
</link>
<link name="gripper_right2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_right2.dae"/>
</geometry>
<origin xyz = "-0.066 0.023 -0.018 " rpy = " 0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_right2.dae"/>
</geometry>
<origin xyz = "-0.03 0.024 -0.018 " rpy = " 0 0 1.5708"/>
</collision>
</link>
<link name="gripper_right3">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_right3.dae"/>
</geometry>
<origin xyz = "0 0.0 -0.012 " rpy = " 0 3.14159 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/320_urdf/gripper_right3.dae"/>
</geometry>
<origin xyz = "-0.034 0.0 -0.012 " rpy = " 0 3.14159 -1.5708"/>
</collision>
</link>
<joint name="joint2_to_joint1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="base"/>
<child link="link1"/>
<origin xyz= "0 0 0.17846" rpy = "0 0 0"/>
</joint>
<joint name="joint3_to_joint2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="link1"/>
<child link="link2"/>
<origin xyz= "0 0 0" rpy = "0 -1.5708 1.5708"/>
</joint>
<joint name="joint4_to_joint3" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="link2"/>
<child link="link3"/>
<origin xyz= "0.13635 0 0 " rpy = "0 0 0"/>
</joint>
<joint name="joint5_to_joint4" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="link3"/>
<child link="link4"/>
<origin xyz = "0.1 0 0.09 " rpy = " 0 0 1.57080"/>
</joint>
<joint name="joint6_to_joint5" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="link4"/>
<child link="link5"/>
<origin xyz= "0 -0.07318 0" rpy = "1.5708 -1.5708 0"/>
</joint>
<joint name="joint6output_to_joint6" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="link5"/>
<child link="link6"/>
<origin xyz= "0.00 0.06635 0" rpy = "-1.5708 0 0"/>
</joint>
<joint name="joint6output_to_gripper_base" type="fixed">
<!-- <axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.05" upper = "3.05" velocity = "0"/> -->
<parent link="link6"/>
<child link="gripper_base"/>
<origin xyz= "0 0.0 0.034" rpy = "1.5708 0 2.6178"/>
</joint>
<joint name="gripper_controller" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-0.7" upper = "0.3" velocity = "0"/>
<parent link="gripper_base"/>
<child link="gripper_left3"/>
<origin xyz= "-0.018 0.016 0" rpy = "0 0 0"/>
</joint>
<joint name="gripper_base_to_gripper_left2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-0.8" upper = "0.5" velocity = "0"/>
<parent link="gripper_base"/>
<child link="gripper_left2"/>
<origin xyz= "-0.05 -0.01 0" rpy = "0 0 0"/>
<mimic joint="gripper_controller" multiplier="1.0" offset="0" />
</joint>
<joint name="gripper_left3_to_gripper_left1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-0.5" upper = "0.5" velocity = "0"/>
<parent link="gripper_left3"/>
<child link="gripper_left1"/>
<origin xyz= "-0.0356 0.051 -0.018" rpy = "0 0 0"/>
<mimic joint="gripper_controller" multiplier="-1.0" offset="0" />
</joint>
<joint name="gripper_base_to_gripper_right3" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-0.3" upper = "0.7" velocity = "0"/>
<parent link="gripper_base"/>
<child link="gripper_right3"/>
<origin xyz= "0.018 0.016 0" rpy = "0 0 0"/>
<mimic joint="gripper_controller" multiplier="-1.0" offset="0" />
</joint>
<joint name="gripper_base_to_gripper_right2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-0.5" upper = "0.8" velocity = "0"/>
<parent link="gripper_base"/>
<child link="gripper_right2"/>
<origin xyz= "0.046 -0.01 0" rpy = "0 0 0"/>
<mimic joint="gripper_controller" multiplier="-1.0" offset="0" />
</joint>
<joint name="gripper_right3_to_gripper_right1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-0.5" upper = "0.5" velocity = "0"/>
<parent link="gripper_right3"/>
<child link="gripper_right1"/>
<origin xyz= "0.033 0.051 -0.018" rpy = "0 0 0"/>
<mimic joint="gripper_controller" multiplier="1.0" offset="0" />
</joint>
</robot>