mirror of
https://github.com/elephantrobotics/mycobot_ros.git
synced 2026-07-05 19:47:04 +00:00
增加280JN自适应夹爪URDF模型
This commit is contained in:
parent
f23363f4a8
commit
f4434066c2
25 changed files with 3402 additions and 433 deletions
|
|
@ -26,9 +26,7 @@ catkin_install_python(PROGRAMS
|
||||||
scripts/teleop_keyboard.py
|
scripts/teleop_keyboard.py
|
||||||
scripts/listen_real.py
|
scripts/listen_real.py
|
||||||
scripts/listen_real_of_topic.py
|
scripts/listen_real_of_topic.py
|
||||||
scripts/detect_marker.py
|
scripts/slider_control_gripper.py
|
||||||
scripts/following_marker.py
|
|
||||||
scripts/follow_and_pump.py
|
|
||||||
scripts/simple_gui.py
|
scripts/simple_gui.py
|
||||||
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ Panels:
|
||||||
- /RobotModel1
|
- /RobotModel1
|
||||||
- /TF1
|
- /TF1
|
||||||
Splitter Ratio: 0.5
|
Splitter Ratio: 0.5
|
||||||
Tree Height: 579
|
Tree Height: 609
|
||||||
- Class: rviz/Selection
|
- Class: rviz/Selection
|
||||||
Name: Selection
|
Name: Selection
|
||||||
- Class: rviz/Tool Properties
|
- Class: rviz/Tool Properties
|
||||||
|
|
@ -63,6 +63,46 @@ Visualization Manager:
|
||||||
Expand Link Details: false
|
Expand Link Details: false
|
||||||
Expand Tree: false
|
Expand Tree: false
|
||||||
Link Tree Style: Links in Alphabetic Order
|
Link Tree Style: Links in Alphabetic Order
|
||||||
|
g_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
|
||||||
joint1:
|
joint1:
|
||||||
Alpha: 1
|
Alpha: 1
|
||||||
Show Axes: false
|
Show Axes: false
|
||||||
|
|
@ -106,9 +146,27 @@ Visualization Manager:
|
||||||
Visual Enabled: true
|
Visual Enabled: true
|
||||||
- Class: rviz/TF
|
- Class: rviz/TF
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
Filter (blacklist): ""
|
||||||
|
Filter (whitelist): ""
|
||||||
Frame Timeout: 15
|
Frame Timeout: 15
|
||||||
Frames:
|
Frames:
|
||||||
All Enabled: true
|
All Enabled: true
|
||||||
|
g_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
|
||||||
joint1:
|
joint1:
|
||||||
Value: true
|
Value: true
|
||||||
joint2:
|
joint2:
|
||||||
|
|
@ -124,20 +182,31 @@ Visualization Manager:
|
||||||
joint6_flange:
|
joint6_flange:
|
||||||
Value: true
|
Value: true
|
||||||
Marker Alpha: 1
|
Marker Alpha: 1
|
||||||
Marker Scale: 0.30000001192092896
|
Marker Scale: 0.10000000149011612
|
||||||
Name: TF
|
Name: TF
|
||||||
Show Arrows: true
|
Show Arrows: true
|
||||||
Show Axes: true
|
Show Axes: true
|
||||||
Show Names: true
|
Show Names: true
|
||||||
Tree:
|
Tree:
|
||||||
joint1:
|
g_base:
|
||||||
joint2:
|
joint1:
|
||||||
joint3:
|
joint2:
|
||||||
joint4:
|
joint3:
|
||||||
joint5:
|
joint4:
|
||||||
joint6:
|
joint5:
|
||||||
joint6_flange:
|
joint6:
|
||||||
{}
|
joint6_flange:
|
||||||
|
gripper_base:
|
||||||
|
gripper_left2:
|
||||||
|
{}
|
||||||
|
gripper_left3:
|
||||||
|
gripper_left1:
|
||||||
|
{}
|
||||||
|
gripper_right2:
|
||||||
|
{}
|
||||||
|
gripper_right3:
|
||||||
|
gripper_right1:
|
||||||
|
{}
|
||||||
Update Interval: 0
|
Update Interval: 0
|
||||||
Value: true
|
Value: true
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
|
@ -184,17 +253,17 @@ Visualization Manager:
|
||||||
Invert Z Axis: false
|
Invert Z Axis: false
|
||||||
Name: Current View
|
Name: Current View
|
||||||
Near Clip Distance: 0.009999999776482582
|
Near Clip Distance: 0.009999999776482582
|
||||||
Pitch: 0.44039833545684814
|
Pitch: 0.7653981447219849
|
||||||
Target Frame: <Fixed Frame>
|
Target Frame: <Fixed Frame>
|
||||||
Yaw: 0.43038973212242126
|
Yaw: 3.990389108657837
|
||||||
Saved: ~
|
Saved: ~
|
||||||
Window Geometry:
|
Window Geometry:
|
||||||
Displays:
|
Displays:
|
||||||
collapsed: false
|
collapsed: false
|
||||||
Height: 876
|
Height: 906
|
||||||
Hide Left Dock: false
|
Hide Left Dock: false
|
||||||
Hide Right Dock: false
|
Hide Right Dock: false
|
||||||
QMainWindow State: 000000ff00000000fd00000004000000000000016a000002cefc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000002ce000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000022f000002cefc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000002ce000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007380000003efc0100000002fb0000000800540069006d0065010000000000000738000003bc00fffffffb0000000800540069006d0065010000000000000450000000000000000000000393000002ce00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
|
QMainWindow State: 000000ff00000000fd00000004000000000000016a000002ecfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000002ec000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000022f000002ecfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000002ec000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007380000003efc0100000002fb0000000800540069006d0065010000000000000738000003bc00fffffffb0000000800540069006d0065010000000000000450000000000000000000000393000002ec00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
|
||||||
Selection:
|
Selection:
|
||||||
collapsed: false
|
collapsed: false
|
||||||
Time:
|
Time:
|
||||||
|
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
<launch>
|
|
||||||
<!-- Load URDF, rviz, etc. on the parameter server,加载参数服务器上的URDF、rviz等 -->
|
|
||||||
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_280_jn/mycobot_280_jn.urdf"/>
|
|
||||||
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot_with_marker.rviz" />
|
|
||||||
<arg name="gui" default="true" />
|
|
||||||
|
|
||||||
<arg name="num" default="0" />
|
|
||||||
<!-- Add model control,添加模型控制 -->
|
|
||||||
<include file="$(find mycobot_280jn)/launch/slider_control.launch">
|
|
||||||
<arg name="model" value="$(arg model)" />
|
|
||||||
<arg name="rvizconfig" value="$(arg rvizconfig)" />
|
|
||||||
<arg name="gui" value="$(arg gui)" />
|
|
||||||
</include>
|
|
||||||
<!-- vision node -->
|
|
||||||
<node name="opencv_camera" pkg="mycobot_280jn" type="opencv_camera" args="$(arg num)"/>
|
|
||||||
<node name="detect_marker" pkg="mycobot_280jn" type="detect_marker.py" />
|
|
||||||
<node name="following_marker" pkg="mycobot_280jn" type="following_marker.py" />
|
|
||||||
</launch>
|
|
||||||
|
|
@ -3,28 +3,22 @@
|
||||||
<arg name="port" default="/dev/ttyTHS1" />
|
<arg name="port" default="/dev/ttyTHS1" />
|
||||||
<arg name="baud" default="1000000" />
|
<arg name="baud" default="1000000" />
|
||||||
<!-- Load URDF, rviz, etc. on the parameter server,加载参数服务器上的URDF、rviz等 -->
|
<!-- Load URDF, rviz, etc. on the parameter server,加载参数服务器上的URDF、rviz等 -->
|
||||||
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_280_jn/mycobot_280_jn.urdf"/>
|
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_280_jn/mycobot_280_jn_adaptive_gripper_parallel.urdf"/>
|
||||||
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot_with_marker.rviz" />
|
<arg name="rvizconfig" default="$(find mycobot_280jn)/config/mycobot_jn.rviz" />
|
||||||
<arg name="gui" default="false" />
|
<arg name="gui" default="false" />
|
||||||
|
|
||||||
<arg name="num" default="0" />
|
|
||||||
|
|
||||||
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
|
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
|
||||||
|
|
||||||
<!-- Combinejoin values to TF ,将值合并到TF-->
|
<!-- Combinejoin values to TF ,将值合并到TF-->
|
||||||
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
|
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
|
||||||
<!-- Show in Rviz,显示在Rviz -->
|
<!-- Show in Rviz ,显示在Rviz-->
|
||||||
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
|
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
|
||||||
|
|
||||||
<!-- mycobot-topics, mycobot-话题-->
|
<include file="$(find mycobot_communication)/launch/communication_jsnn.launch">
|
||||||
<include file="$(find mycobot_communication)/launch/communication_topic.launch">
|
|
||||||
<arg name="port" value="$(arg port)" />
|
<arg name="port" value="$(arg port)" />
|
||||||
<arg name="baud" value="$(arg baud)" />
|
<arg name="baud" value="$(arg baud)" />
|
||||||
</include>
|
</include>
|
||||||
<!-- listen and pub the real angles ,监听并发布真实的角度-->
|
<!-- listen and pub the real angles ,监听并发布真实的角度-->
|
||||||
<node name="real_listener" pkg="mycobot_280jn" type="listen_real_of_topic.py" />
|
<node name="real_listener" pkg="mycobot_280jn" type="listen_real.py" />
|
||||||
<!-- vision node -->
|
<node name="simple_gui" pkg="mycobot_280jn" type="simple_gui.py" />
|
||||||
<node name="opencv_camera" pkg="mycobot_280jn" type="opencv_camera" args="$(arg num)"/>
|
|
||||||
<node name="detect_marker" pkg="mycobot_280jn" type="detect_marker.py" />
|
|
||||||
<node name="following_marker" pkg="mycobot_280jn" type="following_marker.py" />
|
|
||||||
</launch>
|
</launch>
|
||||||
20
mycobot_280/mycobot_280jn/launch/slider_control_gripper.launch
Executable file
20
mycobot_280/mycobot_280jn/launch/slider_control_gripper.launch
Executable file
|
|
@ -0,0 +1,20 @@
|
||||||
|
<launch>
|
||||||
|
<!-- <arg name="port" default="/dev/ttyTHS1" />
|
||||||
|
<arg name="baud" default="1000000" /> -->
|
||||||
|
<!-- Load URDF, rviz, etc. on the parameter server,加载参数服务器上的URDF、rviz等 -->
|
||||||
|
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_280_jn/mycobot_280_jn_adaptive_gripper_parallel.urdf"/>
|
||||||
|
<arg name="rvizconfig" default="$(find mycobot_280jn)/config/mycobot_jn.rviz" />
|
||||||
|
<arg name="gui" default="true" />
|
||||||
|
|
||||||
|
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
|
||||||
|
|
||||||
|
<!-- Combinejoin values to TF. 将值合并到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>
|
||||||
23
mycobot_280/mycobot_280jn/launch/teleop_keyboard_gripper.launch
Executable file
23
mycobot_280/mycobot_280jn/launch/teleop_keyboard_gripper.launch
Executable file
|
|
@ -0,0 +1,23 @@
|
||||||
|
<launch>
|
||||||
|
<!-- Select connecting device and serial port ,选择连接设备及串口-->
|
||||||
|
<arg name="port" default="/dev/ttyTHS1" />
|
||||||
|
<arg name="baud" default="1000000" />
|
||||||
|
<!-- Load URDF, rviz, etc. on the parameter server,加载参数服务器上的URDF、rviz等 -->
|
||||||
|
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_280_jn/mycobot_280_jn_adaptive_gripper_parallel.urdf"/>
|
||||||
|
<arg name="rvizconfig" default="$(find mycobot_280jn)/config/mycobot_jn.rviz" />
|
||||||
|
<arg name="gui" default="false" />
|
||||||
|
|
||||||
|
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
|
||||||
|
|
||||||
|
<!-- Combinejoin values to TF ,将值合并到TF-->
|
||||||
|
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
|
||||||
|
<!-- Show in Rviz ,显示在Rviz-->
|
||||||
|
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
|
||||||
|
|
||||||
|
<include file="$(find mycobot_communication)/launch/communication_jsnn.launch">
|
||||||
|
<arg name="port" value="$(arg port)" />
|
||||||
|
<arg name="baud" value="$(arg baud)" />
|
||||||
|
</include>
|
||||||
|
<!-- listen and pub the real angles ,监听并发布真实的角度-->
|
||||||
|
<node name="real_listener" pkg="mycobot_280jn" type="listen_real.py" />
|
||||||
|
</launch>
|
||||||
18
mycobot_280/mycobot_280jn/launch/test_adaptive_gripper.launch
Executable file
18
mycobot_280/mycobot_280jn/launch/test_adaptive_gripper.launch
Executable file
|
|
@ -0,0 +1,18 @@
|
||||||
|
<launch>
|
||||||
|
<!-- Load URDF, rviz, etc. on the parameter server,加载参数服务器上的URDF、rviz等 -->
|
||||||
|
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_280_jn/mycobot_280_jn_adaptive_gripper_parallel.urdf"/>
|
||||||
|
<!-- <arg name="model" default="$(find mycobot_description)/urdf/mycobot_280_jn/mycobot_280_jn_adaptive_gripper_vertical.urdf"/> -->
|
||||||
|
<arg name="rvizconfig" default="$(find mycobot_280jn)/config/mycobot_jn.rviz" />
|
||||||
|
<arg name="gui" default="true" />
|
||||||
|
|
||||||
|
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
|
||||||
|
|
||||||
|
<!-- Combinejoin values to TF ,将值合并到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>
|
||||||
17
mycobot_280/mycobot_280jn/launch/test_camera_flange.launch
Executable file
17
mycobot_280/mycobot_280jn/launch/test_camera_flange.launch
Executable file
|
|
@ -0,0 +1,17 @@
|
||||||
|
<launch>
|
||||||
|
<!-- Load URDF, rviz, etc. on the parameter server,加载参数服务器上的URDF、rviz等 -->
|
||||||
|
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_280_jn/mycobot_280_jn_camera_flange.urdf"/>
|
||||||
|
<arg name="rvizconfig" default="$(find mycobot_280jn)/config/mycobot_jn.rviz" />
|
||||||
|
<arg name="gui" default="true" />
|
||||||
|
|
||||||
|
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
|
||||||
|
|
||||||
|
<!-- Combinejoin values to TF ,将值合并到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>
|
||||||
|
|
@ -1,123 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
import rospy
|
|
||||||
import cv2 as cv
|
|
||||||
import numpy as np
|
|
||||||
from cv_bridge import CvBridge, CvBridgeError
|
|
||||||
from sensor_msgs.msg import Image
|
|
||||||
import tf
|
|
||||||
from tf.broadcaster import TransformBroadcaster
|
|
||||||
import tf_conversions
|
|
||||||
from mycobot_communication.srv import (
|
|
||||||
GetCoords,
|
|
||||||
SetCoords,
|
|
||||||
GetAngles,
|
|
||||||
SetAngles,
|
|
||||||
GripperStatus,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class ImageConverter:
|
|
||||||
def __init__(self):
|
|
||||||
self.br = TransformBroadcaster()
|
|
||||||
self.bridge = CvBridge()
|
|
||||||
self.aruco_dict = cv.aruco.Dictionary_get(cv.aruco.DICT_6X6_250)
|
|
||||||
self.aruo_params = cv.aruco.DetectorParameters_create()
|
|
||||||
calibrationParams = cv.FileStorage(
|
|
||||||
"calibrationFileName.xml", cv.FILE_STORAGE_READ
|
|
||||||
)
|
|
||||||
self.dist_coeffs = calibrationParams.getNode("distCoeffs").mat()
|
|
||||||
self.camera_matrix = None
|
|
||||||
# subscriber, listen wether has img come in. 订阅者,监听是否有img
|
|
||||||
self.image_sub = rospy.Subscriber("/camera/image", Image, self.callback)
|
|
||||||
|
|
||||||
def callback(self, data):
|
|
||||||
"""Callback function.
|
|
||||||
|
|
||||||
Process image with OpenCV, detect Mark to get the pose. Then acccording the
|
|
||||||
pose to transforming.
|
|
||||||
"""
|
|
||||||
try:
|
|
||||||
# trans `rgb` to `gbr` for opencv. 将 `rgb` 转换为 opencv 的 `gbr`。
|
|
||||||
cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8")
|
|
||||||
except CvBridgeError as e:
|
|
||||||
print(e)
|
|
||||||
size = cv_image.shape
|
|
||||||
focal_length = size[1]
|
|
||||||
center = [size[1] / 2, size[0] / 2]
|
|
||||||
if self.camera_matrix is None:
|
|
||||||
# calc the camera matrix, if don't have.如果没有,则计算相机矩阵
|
|
||||||
self.camera_matrix = np.array(
|
|
||||||
[
|
|
||||||
[focal_length, 0, center[0]],
|
|
||||||
[0, focal_length, center[1]],
|
|
||||||
[0, 0, 1],
|
|
||||||
],
|
|
||||||
dtype=np.float32,
|
|
||||||
)
|
|
||||||
gray = cv.cvtColor(cv_image, cv.COLOR_BGR2GRAY)
|
|
||||||
# detect aruco marker.检测 aruco 标记
|
|
||||||
ret = cv.aruco.detectMarkers(gray, self.aruco_dict, parameters=self.aruo_params)
|
|
||||||
corners, ids = ret[0], ret[1]
|
|
||||||
# process marker data.处理标记数据
|
|
||||||
if len(corners) > 0:
|
|
||||||
if ids is not None:
|
|
||||||
# print('corners:', corners, 'ids:', ids)
|
|
||||||
|
|
||||||
# detect marker pose. 检测marker位姿。
|
|
||||||
# argument:
|
|
||||||
# marker corners,标记角
|
|
||||||
# marker size (meter),标记尺寸(米)
|
|
||||||
ret = cv.aruco.estimatePoseSingleMarkers(
|
|
||||||
corners, 0.05, self.camera_matrix, self.dist_coeffs
|
|
||||||
)
|
|
||||||
(rvec, tvec) = (ret[0], ret[1])
|
|
||||||
(rvec - tvec).any()
|
|
||||||
|
|
||||||
print("rvec:", rvec, "tvec:", tvec)
|
|
||||||
|
|
||||||
# just select first one detected marker.只需选择第一个检测到的标记。
|
|
||||||
for i in range(rvec.shape[0]):
|
|
||||||
cv.aruco.drawDetectedMarkers(cv_image, corners)
|
|
||||||
cv.aruco.drawAxis(
|
|
||||||
cv_image,
|
|
||||||
self.camera_matrix,
|
|
||||||
self.dist_coeffs,
|
|
||||||
rvec[i, :, :],
|
|
||||||
tvec[i, :, :],
|
|
||||||
0.03,
|
|
||||||
)
|
|
||||||
|
|
||||||
xyz = tvec[0, 0, :]
|
|
||||||
xyz = [xyz[0] - 0.045, xyz[1], xyz[2] - 0.03]
|
|
||||||
|
|
||||||
# get quaternion for ros. 为ros获取四元数
|
|
||||||
euler = rvec[0, 0, :]
|
|
||||||
tf_change = tf.transformations.quaternion_from_euler(
|
|
||||||
euler[0], euler[1], euler[2]
|
|
||||||
)
|
|
||||||
print("tf_change:", tf_change)
|
|
||||||
|
|
||||||
# trans pose according [joint1],根据 [joint1] 变换姿势
|
|
||||||
self.br.sendTransform(
|
|
||||||
xyz, tf_change, rospy.Time.now(), "basic_shapes", "joint6_flange"
|
|
||||||
)
|
|
||||||
|
|
||||||
# [x, y, z, -172, 3, -46.8]
|
|
||||||
cv.imshow("Image", cv_image)
|
|
||||||
|
|
||||||
cv.waitKey(3)
|
|
||||||
try:
|
|
||||||
pass
|
|
||||||
except CvBridgeError as e:
|
|
||||||
print(e)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
try:
|
|
||||||
rospy.init_node("detect_marker")
|
|
||||||
rospy.loginfo("Starting cv_bridge_test node")
|
|
||||||
ImageConverter()
|
|
||||||
rospy.spin()
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
print("Shutting down cv_bridge_test node.")
|
|
||||||
cv.destroyAllWindows()
|
|
||||||
|
|
@ -1,194 +0,0 @@
|
||||||
#!/usr/bin/env python2
|
|
||||||
# coding:utf-8
|
|
||||||
import rospy
|
|
||||||
from visualization_msgs.msg import Marker
|
|
||||||
import time
|
|
||||||
import os
|
|
||||||
|
|
||||||
# Type of message communicated with mycobot,与 mycobot 通信的消息类型
|
|
||||||
from mycobot_communication.msg import MycobotSetAngles, MycobotSetCoords, MycobotPumpStatus
|
|
||||||
|
|
||||||
|
|
||||||
rospy.init_node("gipper_subscriber", anonymous=True)
|
|
||||||
|
|
||||||
# Control the topic of mycobot, followed by angle, coordinates, gripper
|
|
||||||
# 控制 mycobot 的 topic,依次是角度、坐标、夹爪
|
|
||||||
angle_pub = rospy.Publisher("mycobot/angles_goal",
|
|
||||||
MycobotSetAngles, queue_size=5)
|
|
||||||
coord_pub = rospy.Publisher("mycobot/coords_goal",
|
|
||||||
MycobotSetCoords, queue_size=5)
|
|
||||||
# 判断设备:ttyUSB*为M5;ttyACM*为wio,Judging equipment: ttyUSB* is M5;ttyACM* is wio
|
|
||||||
robot = os.popen("ls /dev/ttyUSB*").readline()
|
|
||||||
|
|
||||||
if "dev" in robot:
|
|
||||||
Pin = [2, 5]
|
|
||||||
else:
|
|
||||||
Pin = [20, 21]
|
|
||||||
|
|
||||||
pump_pub = rospy.Publisher("mycobot/pump_status",
|
|
||||||
MycobotPumpStatus, queue_size=5)
|
|
||||||
|
|
||||||
# instantiate the message object,实例化消息对象
|
|
||||||
angles = MycobotSetAngles()
|
|
||||||
coords = MycobotSetCoords()
|
|
||||||
pump = MycobotPumpStatus()
|
|
||||||
|
|
||||||
# Deviation value from mycobot's real position,与 mycobot 真实位置的偏差值
|
|
||||||
x_offset = -20
|
|
||||||
y_offset = 20
|
|
||||||
z_offset = 110
|
|
||||||
|
|
||||||
# With this variable limit, the fetching behavior is only done once
|
|
||||||
# 通过该变量限制,抓取行为只做一次
|
|
||||||
flag = False
|
|
||||||
|
|
||||||
# In order to compare whether the QR code moves later,为了后面比较二维码是否移动
|
|
||||||
temp_x = temp_y = temp_z = 0.0
|
|
||||||
|
|
||||||
temp_time = time.time()
|
|
||||||
|
|
||||||
|
|
||||||
def pub_coords(x, y, z, rx=-150, ry=10, rz=-90, sp=70, m=2):
|
|
||||||
"""Post coordinates,发布坐标"""
|
|
||||||
coords.x = x
|
|
||||||
coords.y = y
|
|
||||||
coords.z = z
|
|
||||||
coords.rx = rx
|
|
||||||
coords.ry = ry
|
|
||||||
coords.rz = rz
|
|
||||||
coords.speed = 70
|
|
||||||
coords.model = m
|
|
||||||
# print(coords)
|
|
||||||
coord_pub.publish(coords)
|
|
||||||
|
|
||||||
|
|
||||||
def pub_angles(a, b, c, d, e, f, sp):
|
|
||||||
"""Publishing angle,发布角度"""
|
|
||||||
angles.joint_1 = float(a)
|
|
||||||
angles.joint_2 = float(b)
|
|
||||||
angles.joint_3 = float(c)
|
|
||||||
angles.joint_4 = float(d)
|
|
||||||
angles.joint_5 = float(e)
|
|
||||||
angles.joint_6 = float(f)
|
|
||||||
angles.speed = sp
|
|
||||||
angle_pub.publish(angles)
|
|
||||||
|
|
||||||
|
|
||||||
def pub_pump(flag, Pin):
|
|
||||||
"""Publish gripper status,发布夹爪状态"""
|
|
||||||
pump.Status = flag
|
|
||||||
pump.Pin1 = Pin[0]
|
|
||||||
pump.Pin2 = Pin[1]
|
|
||||||
pump_pub.publish(pump)
|
|
||||||
|
|
||||||
|
|
||||||
def target_is_moving(x, y, z):
|
|
||||||
"""Determine whether the target moves"""
|
|
||||||
"""判断目标是否移动"""
|
|
||||||
count = 0
|
|
||||||
for o, n in zip((x, y, z), (temp_x, temp_y, temp_z)):
|
|
||||||
print(o, n)
|
|
||||||
if abs(o - n) < 2:
|
|
||||||
count += 1
|
|
||||||
print(count)
|
|
||||||
if count == 3:
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
|
|
||||||
|
|
||||||
def grippercallback(data):
|
|
||||||
"""callback function,回调函数"""
|
|
||||||
global flag, temp_x, temp_y, temp_z
|
|
||||||
# rospy.loginfo('gripper_subscriber get date :%s', data)
|
|
||||||
if flag:
|
|
||||||
return
|
|
||||||
|
|
||||||
# Parse out the coordinate value,解析出坐标值
|
|
||||||
# pump length: 88mm
|
|
||||||
x = float(format(data.pose.position.x * 1000, ".2f"))
|
|
||||||
y = float(format(data.pose.position.y * 1000, ".2f"))
|
|
||||||
z = float(format(data.pose.position.z * 1000, ".2f"))
|
|
||||||
|
|
||||||
# When the running time is less than 30s, or the target position is still changing, perform tracking behavior
|
|
||||||
# 当运行时间小于 30s,或目标位置还在改变时,进行追踪行为
|
|
||||||
if (
|
|
||||||
time.time() - temp_time < 30
|
|
||||||
or (temp_x == temp_y == temp_z == 0.0)
|
|
||||||
or target_is_moving(x - x_offset, y - y_offset, z)
|
|
||||||
):
|
|
||||||
|
|
||||||
x -= x_offset
|
|
||||||
y -= y_offset
|
|
||||||
pub_coords(x - 20, y, 280)
|
|
||||||
time.sleep(0.1)
|
|
||||||
|
|
||||||
temp_x, temp_y, temp_z = x, y, z
|
|
||||||
return
|
|
||||||
else: #Indicates that the target is stationary and can try to grab, 表示目标处于静止状态,可以尝试抓取
|
|
||||||
|
|
||||||
print(x, y, z)
|
|
||||||
|
|
||||||
# detect heigth + pump height + limit height + offset
|
|
||||||
x += x_offset
|
|
||||||
y += y_offset
|
|
||||||
z = z + 88 + z_offset
|
|
||||||
|
|
||||||
pub_coords(x, y, z)
|
|
||||||
time.sleep(2.5)
|
|
||||||
|
|
||||||
# down
|
|
||||||
for i in range(1, 17):
|
|
||||||
pub_coords(x, y, z - i * 5, rx=-160, sp=10)
|
|
||||||
time.sleep(0.1)
|
|
||||||
|
|
||||||
time.sleep(2)
|
|
||||||
|
|
||||||
pub_pump(True, Pin)
|
|
||||||
# pump on
|
|
||||||
|
|
||||||
pub_coords(x, y, z + 20, -165)
|
|
||||||
time.sleep(1.5)
|
|
||||||
|
|
||||||
pub_angles(0, 30, -50, -40, 0, 0, 50)
|
|
||||||
time.sleep(1.5)
|
|
||||||
|
|
||||||
put_z = 140
|
|
||||||
pub_coords(39.4, -174.7, put_z, -177.13, -4.13, -152.59, 70, 2)
|
|
||||||
time.sleep(1.5)
|
|
||||||
|
|
||||||
for i in range(1, 8):
|
|
||||||
pub_coords(39.4, -174.7, put_z - i * 5, -
|
|
||||||
177.13, -4.13, -152.59, 15, 2)
|
|
||||||
time.sleep(0.1)
|
|
||||||
|
|
||||||
pub_pump(False, Pin)
|
|
||||||
|
|
||||||
time.sleep(0.5)
|
|
||||||
|
|
||||||
pub_angles(0, 30, -50, -40, 0, 0, 50)
|
|
||||||
time.sleep(1.5)
|
|
||||||
|
|
||||||
# finally
|
|
||||||
flag = True
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
for _ in range(10):
|
|
||||||
# pub_coords(150, 20, 220, -175, 0, -90, 70, 2)
|
|
||||||
pub_angles(0, 30, -50, -40, 0, 0, 50)
|
|
||||||
# pub_angles(random.randint(-30, 30), random.randint(-30, 30), random.randint(-30, 30), random.randint(-30, 30), random.randint(-30, 30), random.randint(-30, 30), 70)
|
|
||||||
time.sleep(0.5)
|
|
||||||
|
|
||||||
pub_pump(False, Pin)
|
|
||||||
# time.sleep(2.5)
|
|
||||||
|
|
||||||
# subscribers to mark information,mark 信息的订阅者
|
|
||||||
rospy.Subscriber("visualization_marker", Marker,
|
|
||||||
grippercallback, queue_size=1)
|
|
||||||
|
|
||||||
print("gripper test")
|
|
||||||
rospy.spin()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
#!/usr/bin/env python2
|
|
||||||
import time
|
|
||||||
|
|
||||||
import rospy
|
|
||||||
from sensor_msgs.msg import JointState
|
|
||||||
from std_msgs.msg import Header
|
|
||||||
from visualization_msgs.msg import Marker
|
|
||||||
import tf
|
|
||||||
|
|
||||||
|
|
||||||
def talker():
|
|
||||||
rospy.init_node("following_marker", anonymous=True)
|
|
||||||
|
|
||||||
pub_marker = rospy.Publisher("visualization_marker", Marker, queue_size=10)
|
|
||||||
rate = rospy.Rate(20)
|
|
||||||
|
|
||||||
listener = tf.TransformListener()
|
|
||||||
|
|
||||||
marker_ = Marker()
|
|
||||||
marker_.header.frame_id = "/joint1"
|
|
||||||
marker_.ns = "basic_cube"
|
|
||||||
|
|
||||||
print("publishing ...")
|
|
||||||
while not rospy.is_shutdown():
|
|
||||||
now = rospy.Time.now() - rospy.Duration(0.1)
|
|
||||||
|
|
||||||
try:
|
|
||||||
trans, rot = listener.lookupTransform("joint1", "basic_shapes", now)
|
|
||||||
except Exception as e:
|
|
||||||
print(e)
|
|
||||||
continue
|
|
||||||
|
|
||||||
print(type(trans), trans)
|
|
||||||
print(type(rot), rot)
|
|
||||||
|
|
||||||
# marker
|
|
||||||
marker_.header.stamp = now
|
|
||||||
marker_.type = marker_.CUBE
|
|
||||||
marker_.action = marker_.ADD
|
|
||||||
marker_.scale.x = 0.04
|
|
||||||
marker_.scale.y = 0.04
|
|
||||||
marker_.scale.z = 0.04
|
|
||||||
|
|
||||||
# marker position initial,标记位置初始化
|
|
||||||
marker_.pose.position.x = trans[0]
|
|
||||||
marker_.pose.position.y = trans[1]
|
|
||||||
marker_.pose.position.z = trans[2]
|
|
||||||
marker_.pose.orientation.x = rot[0]
|
|
||||||
marker_.pose.orientation.y = rot[1]
|
|
||||||
marker_.pose.orientation.z = rot[2]
|
|
||||||
marker_.pose.orientation.w = rot[3]
|
|
||||||
|
|
||||||
marker_.color.a = 1.0
|
|
||||||
marker_.color.g = 1.0
|
|
||||||
pub_marker.publish(marker_)
|
|
||||||
|
|
||||||
rate.sleep()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
try:
|
|
||||||
talker()
|
|
||||||
except rospy.ROSInterruptException:
|
|
||||||
pass
|
|
||||||
57
mycobot_280/mycobot_280jn/scripts/slider_control_gripper.py
Executable file
57
mycobot_280/mycobot_280jn/scripts/slider_control_gripper.py
Executable file
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
# encoding: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/ttyTHS1'
|
||||||
|
baud: serial prot baudrate. Defaults is 1000000.
|
||||||
|
"""
|
||||||
|
import time
|
||||||
|
import math
|
||||||
|
import rospy
|
||||||
|
from sensor_msgs.msg import JointState
|
||||||
|
|
||||||
|
from pymycobot.mycobot import MyCobot
|
||||||
|
|
||||||
|
|
||||||
|
mc = None
|
||||||
|
|
||||||
|
|
||||||
|
def callback(data):
|
||||||
|
# rospy.loginfo(rospy.get_caller_id() + "%s", data.position)
|
||||||
|
data_list = []
|
||||||
|
for index, value in enumerate(data.position):
|
||||||
|
data_list.append(round(value,3))
|
||||||
|
# print(data_list[6:])
|
||||||
|
|
||||||
|
data_list = data_list[:7]
|
||||||
|
print("radians:%s"%data_list[:6])
|
||||||
|
mc.send_radians(data_list[:6], 25)
|
||||||
|
gripper_value = int(abs(-0.7-data_list[6])* 117)
|
||||||
|
print("gripper_value:%s"%gripper_value)
|
||||||
|
mc.set_gripper_value(gripper_value, 80, 1)
|
||||||
|
|
||||||
|
|
||||||
|
def listener():
|
||||||
|
global mc
|
||||||
|
rospy.init_node("control_slider", anonymous=True)
|
||||||
|
|
||||||
|
rospy.Subscriber("joint_states", JointState, callback)
|
||||||
|
port = rospy.get_param("~port", "/dev/ttyTHS1")
|
||||||
|
baud = rospy.get_param("~baud", 1000000)
|
||||||
|
print(port, baud)
|
||||||
|
mc = MyCobot(port, baud)
|
||||||
|
time.sleep(0.05)
|
||||||
|
mc.set_fresh_mode(1)
|
||||||
|
time.sleep(0.05)
|
||||||
|
|
||||||
|
# spin() simply keeps python from exiting until this node is stopped
|
||||||
|
# spin()只是阻止python退出,直到该节点停止
|
||||||
|
print("spin ...")
|
||||||
|
rospy.spin()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
listener()
|
||||||
260
mycobot_description/urdf/mycobot_280_jn/G_base.dae
Normal file
260
mycobot_description/urdf/mycobot_280_jn/G_base.dae
Normal file
File diff suppressed because one or more lines are too long
308
mycobot_description/urdf/mycobot_280_jn/camera_flange.dae
Executable file
308
mycobot_description/urdf/mycobot_280_jn/camera_flange.dae
Executable file
File diff suppressed because one or more lines are too long
311
mycobot_description/urdf/mycobot_280_jn/gripper_base.dae
Normal file
311
mycobot_description/urdf/mycobot_280_jn/gripper_base.dae
Normal file
File diff suppressed because one or more lines are too long
254
mycobot_description/urdf/mycobot_280_jn/gripper_left1.dae
Normal file
254
mycobot_description/urdf/mycobot_280_jn/gripper_left1.dae
Normal file
File diff suppressed because one or more lines are too long
197
mycobot_description/urdf/mycobot_280_jn/gripper_left2.dae
Normal file
197
mycobot_description/urdf/mycobot_280_jn/gripper_left2.dae
Normal file
File diff suppressed because one or more lines are too long
197
mycobot_description/urdf/mycobot_280_jn/gripper_left3.dae
Normal file
197
mycobot_description/urdf/mycobot_280_jn/gripper_left3.dae
Normal file
File diff suppressed because one or more lines are too long
254
mycobot_description/urdf/mycobot_280_jn/gripper_right1.dae
Normal file
254
mycobot_description/urdf/mycobot_280_jn/gripper_right1.dae
Normal file
File diff suppressed because one or more lines are too long
197
mycobot_description/urdf/mycobot_280_jn/gripper_right2.dae
Normal file
197
mycobot_description/urdf/mycobot_280_jn/gripper_right2.dae
Normal file
File diff suppressed because one or more lines are too long
197
mycobot_description/urdf/mycobot_280_jn/gripper_right3.dae
Normal file
197
mycobot_description/urdf/mycobot_280_jn/gripper_right3.dae
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -3,6 +3,20 @@
|
||||||
|
|
||||||
<xacro:property name="width" value=".2" />
|
<xacro:property name="width" value=".2" />
|
||||||
|
|
||||||
|
<link name="g_base">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/G_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.032" rpy = "0 0 1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/G_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.032" rpy = "0 0 1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
<link name="joint1">
|
<link name="joint1">
|
||||||
<visual>
|
<visual>
|
||||||
|
|
@ -123,9 +137,18 @@
|
||||||
</link>
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="g_base_to_joint1" type="fixed">
|
||||||
|
<axis xyz="0 0 0"/>
|
||||||
|
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
||||||
|
<parent link="g_base"/>
|
||||||
|
<child link="joint1"/>
|
||||||
|
<origin xyz= "0 0 0" rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
<joint name="joint2_to_joint1" type="revolute">
|
<joint name="joint2_to_joint1" type="revolute">
|
||||||
<axis xyz="0 0 1"/>
|
<axis xyz="0 0 1"/>
|
||||||
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
<limit effort = "1000.0" lower = "-2.9321" upper = "2.9321" velocity = "0"/>
|
||||||
<parent link="joint1"/>
|
<parent link="joint1"/>
|
||||||
<child link="joint2"/>
|
<child link="joint2"/>
|
||||||
<origin xyz= "0 0 0.15756" rpy = "0 0 0"/>
|
<origin xyz= "0 0 0.15756" rpy = "0 0 0"/>
|
||||||
|
|
@ -134,7 +157,7 @@
|
||||||
|
|
||||||
<joint name="joint3_to_joint2" type="revolute">
|
<joint name="joint3_to_joint2" type="revolute">
|
||||||
<axis xyz="0 0 1"/>
|
<axis xyz="0 0 1"/>
|
||||||
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
<limit effort = "1000.0" lower = "-2.0943" upper = "2.0943" velocity = "0"/>
|
||||||
<parent link="joint2"/>
|
<parent link="joint2"/>
|
||||||
<child link="joint3"/>
|
<child link="joint3"/>
|
||||||
<origin xyz= "0 0 -0.001" rpy = "0 1.5708 -1.5708"/>
|
<origin xyz= "0 0 -0.001" rpy = "0 1.5708 -1.5708"/>
|
||||||
|
|
@ -143,7 +166,7 @@
|
||||||
|
|
||||||
<joint name="joint4_to_joint3" type="revolute">
|
<joint name="joint4_to_joint3" type="revolute">
|
||||||
<axis xyz=" 0 0 1"/>
|
<axis xyz=" 0 0 1"/>
|
||||||
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
<limit effort = "1000.0" lower = "-2.6179" upper = "2.6179" velocity = "0"/>
|
||||||
<parent link="joint3"/>
|
<parent link="joint3"/>
|
||||||
<child link="joint4"/>
|
<child link="joint4"/>
|
||||||
<origin xyz= " -0.1104 0 0 " rpy = "0 0 0"/>
|
<origin xyz= " -0.1104 0 0 " rpy = "0 0 0"/>
|
||||||
|
|
@ -153,7 +176,7 @@
|
||||||
|
|
||||||
<joint name="joint5_to_joint4" type="revolute">
|
<joint name="joint5_to_joint4" type="revolute">
|
||||||
<axis xyz=" 0 0 1"/>
|
<axis xyz=" 0 0 1"/>
|
||||||
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
<limit effort = "1000.0" lower = "-2.5307" upper = "2.5307" velocity = "0"/>
|
||||||
<parent link="joint4"/>
|
<parent link="joint4"/>
|
||||||
<child link="joint5"/>
|
<child link="joint5"/>
|
||||||
<origin xyz= "-0.096 0 0.06462" rpy = "0 0 -1.5708"/>
|
<origin xyz= "-0.096 0 0.06462" rpy = "0 0 -1.5708"/>
|
||||||
|
|
@ -161,7 +184,7 @@
|
||||||
|
|
||||||
<joint name="joint6_to_joint5" type="revolute">
|
<joint name="joint6_to_joint5" type="revolute">
|
||||||
<axis xyz="0 0 1"/>
|
<axis xyz="0 0 1"/>
|
||||||
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
<limit effort = "1000.0" lower = "-2.8797" upper = "2.8797" velocity = "0"/>
|
||||||
<parent link="joint5"/>
|
<parent link="joint5"/>
|
||||||
<child link="joint6"/>
|
<child link="joint6"/>
|
||||||
<origin xyz= "0 -0.07318 0" rpy = "1.5708 -1.5708 0"/>
|
<origin xyz= "0 -0.07318 0" rpy = "1.5708 -1.5708 0"/>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,375 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter" >
|
||||||
|
|
||||||
|
<xacro:property name="width" value=".2" />
|
||||||
|
|
||||||
|
<link name="g_base">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/G_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.032" rpy = "0 0 1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/G_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.032" rpy = "0 0 1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="joint1">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 1.5708 3.14159-->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint1_jet.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0 " rpy = " 0 0 3.14159"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint1_jet.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0" rpy = "0 0 3.14159"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="joint2">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.06096" rpy = "0 0 -1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint3">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03256" rpy = "0 -1.5708 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint4">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint4.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint4.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03056" rpy = "0 -1.5708 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint5">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint5.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.03356 " rpy = " 0 -1.5708 1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint5.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.03356" rpy = "0 -1.5708 1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint6">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint6.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint6.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0 0.00 -0.038" rpy = "0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint6_flange">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint7.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint7.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.012" rpy = "0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="gripper_base">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_left1">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left1.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.039 -0.0133 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
<!-- <origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/> -->
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left1.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.039 -0.0133 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_left2">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.005 -0.0195 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.005 -0.0195 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_left3">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.012 0.0025 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.012 0.0025 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_right1">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right1.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.039 -0.0133 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right1.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.039 -0.0133 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_right2">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.005 -0.0195 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.005 -0.0195 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_right3">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.012 0.0025 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.012 0.0025 -0.012" rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="g_base_to_joint1" type="fixed">
|
||||||
|
<axis xyz="0 0 0"/>
|
||||||
|
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
||||||
|
<parent link="g_base"/>
|
||||||
|
<child link="joint1"/>
|
||||||
|
<origin xyz= "0 0 0" rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint2_to_joint1" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.9321" upper = "2.9321" velocity = "0"/>
|
||||||
|
<parent link="joint1"/>
|
||||||
|
<child link="joint2"/>
|
||||||
|
<origin xyz= "0 0 0.15756" rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint3_to_joint2" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.0943" upper = "2.0943" velocity = "0"/>
|
||||||
|
<parent link="joint2"/>
|
||||||
|
<child link="joint3"/>
|
||||||
|
<origin xyz= "0 0 -0.001" rpy = "0 1.5708 -1.5708"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint4_to_joint3" type="revolute">
|
||||||
|
<axis xyz=" 0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.6179" upper = "2.6179" velocity = "0"/>
|
||||||
|
<parent link="joint3"/>
|
||||||
|
<child link="joint4"/>
|
||||||
|
<origin xyz= " -0.1104 0 0 " rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint5_to_joint4" type="revolute">
|
||||||
|
<axis xyz=" 0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.5307" upper = "2.5307" velocity = "0"/>
|
||||||
|
<parent link="joint4"/>
|
||||||
|
<child link="joint5"/>
|
||||||
|
<origin xyz= "-0.096 0 0.06462" rpy = "0 0 -1.5708"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
<joint name="joint6_to_joint5" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.8797" upper = "2.8797" velocity = "0"/>
|
||||||
|
<parent link="joint5"/>
|
||||||
|
<child link="joint6"/>
|
||||||
|
<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="joint6"/>
|
||||||
|
<child link="joint6_flange"/>
|
||||||
|
<origin xyz= "0 0.0456 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.14" upper = "3.14159" velocity = "0"/> -->
|
||||||
|
<parent link="joint6_flange"/>
|
||||||
|
<child link="gripper_base"/>
|
||||||
|
<origin xyz= "0 0 0.034" rpy = "1.579 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="gripper_controller" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-0.7" upper = "0.15" velocity = "0"/>
|
||||||
|
<parent link="gripper_base"/>
|
||||||
|
<child link="gripper_left3"/>
|
||||||
|
<origin xyz= "-0.012 0.005 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.005 0.027 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.027 0.016 0" 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.15" upper = "0.7" velocity = "0"/>
|
||||||
|
<parent link="gripper_base"/>
|
||||||
|
<child link="gripper_right3"/>
|
||||||
|
<origin xyz= "0.012 0.005 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.005 0.027 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.027 0.016 0" rpy = "0 0 0"/>
|
||||||
|
<mimic joint="gripper_controller" multiplier="1.0" offset="0" />
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
</robot>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,372 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter" >
|
||||||
|
|
||||||
|
<xacro:property name="width" value=".2" />
|
||||||
|
|
||||||
|
<link name="g_base">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/G_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.032" rpy = "0 0 1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/G_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.032" rpy = "0 0 1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="joint1">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 1.5708 3.14159-->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint1_jet.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0 " rpy = " 0 0 3.14159"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint1_jet.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0" rpy = "0 0 3.14159"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="joint2">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.06096" rpy = "0 0 -1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint3">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03256" rpy = "0 -1.5708 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint4">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint4.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint4.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03056" rpy = "0 -1.5708 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint5">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint5.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.03356 " rpy = " 0 -1.5708 1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint5.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.03356" rpy = "0 -1.5708 1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint6">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint6.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint6.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0 0.00 -0.038" rpy = "0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint6_flange">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint7.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint7.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.012" rpy = "0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="gripper_base">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0.0077 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0.0077 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_left1">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left1.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.039 -0.0133 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left1.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.039 -0.0133 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_left2">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.005 -0.0195 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.005 -0.0195 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_left3">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.012 0.0025 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_left3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.012 0.0025 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_right1">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right1.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.039 -0.0133 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right1.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.039 -0.0133 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_right2">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.005 -0.0195 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.005 -0.0195 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="gripper_right3">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.012 0.0025 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/gripper_right3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "-0.012 0.0025 -0.012" rpy = " 0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="g_base_to_joint1" type="fixed">
|
||||||
|
<axis xyz="0 0 0"/>
|
||||||
|
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
||||||
|
<parent link="g_base"/>
|
||||||
|
<child link="joint1"/>
|
||||||
|
<origin xyz= "0 0 0" rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint2_to_joint1" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.9321" upper = "2.9321" velocity = "1.0"/>
|
||||||
|
<parent link="joint1"/>
|
||||||
|
<child link="joint2"/>
|
||||||
|
<origin xyz= "0 0 0.15756" rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint3_to_joint2" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.0943" upper = "2.0943" velocity = "0"/>
|
||||||
|
<parent link="joint2"/>
|
||||||
|
<child link="joint3"/>
|
||||||
|
<origin xyz= "0 0 -0.001" rpy = "0 1.5708 -1.5708"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint4_to_joint3" type="revolute">
|
||||||
|
<axis xyz=" 0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.6179" upper = "2.6179" velocity = "0"/>
|
||||||
|
<parent link="joint3"/>
|
||||||
|
<child link="joint4"/>
|
||||||
|
<origin xyz= " -0.1104 0 0 " rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint5_to_joint4" type="revolute">
|
||||||
|
<axis xyz=" 0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.5307" upper = "2.5307" velocity = "0"/>
|
||||||
|
<parent link="joint4"/>
|
||||||
|
<child link="joint5"/>
|
||||||
|
<origin xyz= "-0.096 0 0.06462" rpy = "0 0 -1.5708"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
<joint name="joint6_to_joint5" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.8797" upper = "2.8797" velocity = "0"/>
|
||||||
|
<parent link="joint5"/>
|
||||||
|
<child link="joint6"/>
|
||||||
|
<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.14" velocity = "0"/>
|
||||||
|
<parent link="joint6"/>
|
||||||
|
<child link="joint6_flange"/>
|
||||||
|
<origin xyz= "0 0.0456 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.14" upper = "3.14159" velocity = "0"/> -->
|
||||||
|
<parent link="joint6_flange"/>
|
||||||
|
<child link="gripper_base"/>
|
||||||
|
<origin xyz= "0 0 0.0139" rpy = "0 0 3.14159"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="gripper_controller" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-0.7" upper = "0.15" velocity = "0"/>
|
||||||
|
<parent link="gripper_base"/>
|
||||||
|
<child link="gripper_left3"/>
|
||||||
|
<origin xyz= "-0.012 0.005 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.005 0.027 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.027 0.016 0" 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.15" upper = "0.7" velocity = "0"/>
|
||||||
|
<parent link="gripper_base"/>
|
||||||
|
<child link="gripper_right3"/>
|
||||||
|
<origin xyz= "0.012 0.005 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.005 0.027 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.027 0.016 0" rpy = "0 0 0"/>
|
||||||
|
<mimic joint="gripper_controller" multiplier="1.0" offset="0" />
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
</robot>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,227 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter" >
|
||||||
|
|
||||||
|
<xacro:property name="width" value=".2" />
|
||||||
|
|
||||||
|
<link name="g_base">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/G_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.032" rpy = "0 0 1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/G_base.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.032" rpy = "0 0 1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="joint1">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 1.5708 3.14159-->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint1_jet.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0 " rpy = " 0 0 3.14159"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint1_jet.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0" rpy = "0 0 3.14159"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
<link name="joint2">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint2.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.06096" rpy = "0 0 -1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint3">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint3.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03256" rpy = "0 -1.5708 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint4">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint4.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint4.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 0.03056" rpy = "0 -1.5708 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint5">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint5.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.03356 " rpy = " 0 -1.5708 1.5708"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint5.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.03356" rpy = "0 -1.5708 1.5708"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint6">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint6.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint6.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0 0.00 -0.038" rpy = "0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="joint6_flange">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<!--- 0.0 0 -0.04 -->
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint7.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/joint7.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.0 0 -0.012" rpy = "0 0 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<link name="camera_flange">
|
||||||
|
<visual>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/camera_flange.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.024 -0.008 0.0 " rpy = " 0 3.14159 0"/>
|
||||||
|
</visual>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<mesh filename="package://mycobot_description/urdf/mycobot_280_jn/camera_flange.dae"/>
|
||||||
|
</geometry>
|
||||||
|
<origin xyz = "0.024 -0.008 0.0 " rpy = " 0 3.14159 0"/>
|
||||||
|
</collision>
|
||||||
|
</link>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="g_base_to_joint1" type="fixed">
|
||||||
|
<axis xyz="0 0 0"/>
|
||||||
|
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
|
||||||
|
<parent link="g_base"/>
|
||||||
|
<child link="joint1"/>
|
||||||
|
<origin xyz= "0 0 0" rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint2_to_joint1" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.9321" upper = "2.9321" velocity = "0"/>
|
||||||
|
<parent link="joint1"/>
|
||||||
|
<child link="joint2"/>
|
||||||
|
<origin xyz= "0 0 0.15756" rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint3_to_joint2" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.0943" upper = "2.0943" velocity = "0"/>
|
||||||
|
<parent link="joint2"/>
|
||||||
|
<child link="joint3"/>
|
||||||
|
<origin xyz= "0 0 -0.001" rpy = "0 1.5708 -1.5708"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint4_to_joint3" type="revolute">
|
||||||
|
<axis xyz=" 0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.6179" upper = "2.6179" velocity = "0"/>
|
||||||
|
<parent link="joint3"/>
|
||||||
|
<child link="joint4"/>
|
||||||
|
<origin xyz= " -0.1104 0 0 " rpy = "0 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<joint name="joint5_to_joint4" type="revolute">
|
||||||
|
<axis xyz=" 0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.5307" upper = "2.5307" velocity = "0"/>
|
||||||
|
<parent link="joint4"/>
|
||||||
|
<child link="joint5"/>
|
||||||
|
<origin xyz= "-0.096 0 0.06462" rpy = "0 0 -1.5708"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
<joint name="joint6_to_joint5" type="revolute">
|
||||||
|
<axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-2.8797" upper = "2.8797" velocity = "0"/>
|
||||||
|
<parent link="joint5"/>
|
||||||
|
<child link="joint6"/>
|
||||||
|
<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="joint6"/>
|
||||||
|
<child link="joint6_flange"/>
|
||||||
|
<origin xyz= "0 0.0456 0" rpy = "-1.5708 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
<joint name="joint6output_to_camera_flange" type="fixed">
|
||||||
|
<!-- <axis xyz="0 0 1"/>
|
||||||
|
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/> -->
|
||||||
|
<parent link="joint6_flange"/>
|
||||||
|
<child link="camera_flange"/>
|
||||||
|
<!-- <origin xyz= "0 0.0 0" rpy = "-1.5708 0 0"/> -->
|
||||||
|
<origin xyz= "0 0 0.01" rpy = "1.579 0 0"/>
|
||||||
|
</joint>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</robot>
|
||||||
|
|
||||||
Loading…
Add table
Reference in a new issue