improve ros1 myarm-c650 code

This commit is contained in:
Tenero-Jz 2024-05-13 17:15:02 +08:00
parent 8537ab39bb
commit 3f79f24b91
27 changed files with 13257 additions and 2031 deletions

View file

@ -17,7 +17,7 @@ def talker():
rospy.init_node('joint_state_publisher')
# 创建发布器,发布到'joint_states'话题消息类型为JointState
pub = rospy.Publisher('joint_states', JointState, queue_size=10)
pub = rospy.Publisher('/joint_states', JointState, queue_size=10)
# 设置发布频率
rate = rospy.Rate(10)

View file

@ -10,7 +10,7 @@ Panels:
- /TF1
- /TF1/Frames1
Splitter Ratio: 0.5
Tree Height: 719
Tree Height: 523
- Class: rviz/Selection
Name: Selection
- Class: rviz/Tool Properties
@ -69,32 +69,42 @@ Visualization Manager:
Show Axes: false
Show Trail: false
Value: true
endeffector:
gripper:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
joint1:
gripper_left:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
joint2:
gripper_right:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
joint3:
link1:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
joint4:
link2:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
joint5:
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
@ -123,18 +133,22 @@ Visualization Manager:
All Enabled: false
base:
Value: false
endeffector:
gripper:
Value: false
joint1:
gripper_left:
Value: false
joint2:
gripper_right:
Value: false
joint3:
link1:
Value: false
joint4:
link2:
Value: false
link3:
Value: false
link4:
Value: false
link5:
Value: false
joint5:
Value: true
Marker Alpha: 1
Marker Scale: 0.5
Name: TF
@ -143,13 +157,16 @@ Visualization Manager:
Show Names: true
Tree:
base:
joint1:
joint2:
joint3:
joint4:
joint5:
endeffector:
{}
link1:
link2:
link3:
link4:
link5:
gripper:
gripper_left:
{}
gripper_right:
{}
Update Interval: 0
Value: true
Enabled: true
@ -180,7 +197,7 @@ Visualization Manager:
Views:
Current:
Class: rviz/Orbit
Distance: 0.4026777744293213
Distance: 1.1106241941452026
Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1
@ -188,25 +205,25 @@ Visualization Manager:
Value: false
Field of View: 0.7853981852531433
Focal Point:
X: 0.38038063049316406
Y: 0.01517818495631218
Z: 0.2767482399940491
X: 0.31777650117874146
Y: 0.11575467139482498
Z: 0.21179701387882233
Focal Shape Fixed Size: true
Focal Shape Size: 0.05000000074505806
Invert Z Axis: false
Name: Current View
Near Clip Distance: 0.009999999776482582
Pitch: 1.5697963237762451
Pitch: 0.6647977232933044
Target Frame: <Fixed Frame>
Yaw: 0.16815289855003357
Yaw: 4.894510269165039
Saved: ~
Window Geometry:
Displays:
collapsed: false
Height: 1016
Height: 820
Hide Left Dock: false
Hide Right Dock: false
QMainWindow State: 000000ff00000000fd0000000400000000000001560000035afc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d0000035a000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f0000035afc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d0000035a000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007380000003efc0100000002fb0000000800540069006d0065010000000000000738000003bc00fffffffb0000000800540069006d00650100000000000004500000000000000000000004c70000035a00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
QMainWindow State: 000000ff00000000fd00000004000000000000015600000296fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d00000296000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000296fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d00000296000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007320000003efc0100000002fb0000000800540069006d0065010000000000000732000003bc00fffffffb0000000800540069006d00650100000000000004500000000000000000000004c10000029600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection:
collapsed: false
Time:
@ -215,6 +232,6 @@ Window Geometry:
collapsed: false
Views:
collapsed: false
Width: 1848
Width: 1842
X: 72
Y: 27

View file

@ -19,13 +19,31 @@ import rospy, sys
import moveit_commander
from geometry_msgs.msg import Pose
global mam
mam = MyArmC('/dev/ttyACM0', debug=False)
angle = mam.get_joints_angle()
print(angle)
mam.set_tool_led_color(255,255,255)
# global mam
# mam = MyArmC('/dev/ttyACM0', debug=False)
# angle = mam.get_joints_angle()
# print(angle)
# mam.set_tool_led_color(255,255,255)
# for i in range(8):
# mam.set_servo_calibrate(i)
# time.sleep(0.5)
def linear_transform(x):
# 两个已知数据点
x1, y1 = -89.5, 0.022
x2, y2 = 0, 0
# 计算斜率
m = (y2 - y1) / (x2 - x1)
# 计算截距
c = y1 - m * x1
# 应用线性变换
y = m * x + c
return y
# 测试
print(linear_transform(-89.5)) # 应该输出0.022
# print(linear_transform(0)) # 应该输出0

View file

@ -15,6 +15,21 @@ from std_msgs.msg import Header
from pymycobot.myarmc import MyArmC
import rosnode
def linear_transform(x):
# 两个已知数据点
x1, y1 = -89.5, 0.022
x2, y2 = 0, 0
# 计算斜率
m = (y2 - y1) / (x2 - x1)
# 计算截距
c = y1 - m * x1
# 应用线性变换
y = m * x + c
return y
global mam
mam = MyArmC('/dev/ttyACM0', debug=False)
@ -27,7 +42,7 @@ rospy.loginfo("已成功杀死节点")
# 创建发布者
pub = rospy.Publisher('/joint_states', JointState, queue_size=10)
# 设置发布频率
rate = rospy.Rate(50) # 50Hz
rate = rospy.Rate(100) # 100Hz
# 消息实例
joint_state = JointState()
# 发布消息
@ -35,11 +50,14 @@ while not rospy.is_shutdown():
joint_state.header = Header()
# 填充消息内容,例如关节名称、位置、速度和力
joint_state.header.stamp = rospy.Time.now()
joint_state.name = ['joint1_to_base', 'joint2_to_joint1', 'joint3_to_joint2','joint4_to_joint3', 'joint5_to_joint4', 'endeffector_to_joint5']
joint_state.name = ['joint1', 'joint2', 'joint3','joint4', 'joint5', 'joint6','gripper']
angles = mam.get_joints_angle()
angles.pop(6)
gripper_angle = angles.pop(6)
angle = [a/180*pi for a in angles]
gripper_angle = linear_transform(gripper_angle)
# gripper_angle = linear_transform(-107.66)
angle.append(gripper_angle)
joint_state.position = angle
joint_state.effort = []
joint_state.velocity = []

View file

@ -8,6 +8,7 @@ from math import pi
import subprocess
import sys
import time
import datetime
def shutdown_ros_node(node_name):
try:
@ -18,15 +19,18 @@ def shutdown_ros_node(node_name):
def set_angle(mam, angles, speed):
def set_angle(mam, angles, speed=40):
# 弧度转角度
angle = [-int(a*180/pi) for a in angles]
joint_id = {0:1, 1:2, 2:3, 3:4, 4:5, 5:6}
angle = [int(a*180/pi) for a in angles]
angle.append(0)
# joint_id = {0:1, 1:2, 2:3, 3:4, 4:5, 5:6}
# joint_id = [0,1,2,3,4,5,6]
mam.set_joints_angle(angle, speed)
for i in range(6):
# if joint_id[i] == 2 or joint_id[i] == 5:
# angle[i] *= -1
mam.set_joint_angle(joint_id[i], -angle[i], 20)
# for i in range(6):
# # if joint_id[i] == 2 or joint_id[i] == 5:
# # angle[i] *= -1
# mam.set_joint_angle(joint_id[i], -angle[i], 50)
def main():
# 初始化ROS节点
rospy.init_node("combined_control", anonymous=True)
@ -63,12 +67,17 @@ def main():
joint_state.velocity = []
# 发布消息
pub_m.publish(joint_state)
current_time1 = datetime.datetime.now()
joint_state.position = angle_c
pub_c.publish(joint_state)
current_time2 = datetime.datetime.now()
set_angle(myarm_m, angle_m, 30)
current_time = current_time2-current_time1
rospy.loginfo('消息成功发布')
rospy.loginfo(current_time)
# 等待,允许其他节点处理
rate.sleep()

View file

@ -1,5 +1,6 @@
#!/usr/bin/env python3
# encoding:utf-8
# 订阅RVIZ数据控制实际机器人运动
from pymycobot import MyArmM
from sensor_msgs.msg import JointState
import rospy
@ -20,11 +21,14 @@ for i in range(8):
def callback_fun(msg): # 回调函数
# print(type(msg.position))
angle = list(msg.position)
angles = list(msg.position)
angles.pop(7)
gripper_angle = angles.pop(6)
angle = [a*180/pi for a in angles]
angle.append(gripper_angle*(-3500))
rospy.loginfo("The Subscriber Data:%s", angle)
set_angle(angle, 20)
set_angle(mam, angle, 10)
# set_angle(angle, 20)
# for i in range(6):
# mam.set_joint_angle(i, angle[i]*180/pi, 50) # 角度直接控制
# set_angle_by_encoder(i, angle[i]*180/pi, 50) # 电位值控制
@ -34,15 +38,9 @@ def main():
rospy.Subscriber('/joint_states', JointState, callback_fun)
rospy.spin()
def set_angle(angles, speed):
def set_angle(mam, angles, speed):
# 弧度转角度
angle = [-int(a*180/pi) for a in angles]
joint_id = {0:1, 1:2, 2:3, 3:4, 4:5, 5:6}
for i in range(6):
# if joint_id[i] == 2 or joint_id[i] == 5:
# angle[i] *= -1
mam.set_joint_angle(joint_id[i], -angle[i], 20)
mam.set_joints_angle(angles, speed)
# def set_angle_by_encoder(servo_id, angle, speed): # 输入角度 通过电位值控制机器人
# # 1:left 2:right 3:left 4:left 5:left 6:right 7:left

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3
# encoding:utf-8
# 订阅RVIZ关节角数据发送给机器人
# 读取机器人关节角数据发送给RVIZ
from pymycobot import MyArmM
import rospy
@ -23,7 +23,7 @@ def shutdown_ros_node(node_name):
print(f"Error: {e}")
global mam
mam = MyArmM('/dev/ttyACM0', debug=False)
mam = MyArmM('/dev/ttyACM1', debug=False)
# 1 3 4 6
# 放松关节
for i in range(8):
@ -45,11 +45,14 @@ while not rospy.is_shutdown():
joint_state.header = Header()
# 填充消息内容,例如关节名称、位置、速度和力
joint_state.header.stamp = rospy.Time.now()
joint_state.name = ['joint1_to_base', 'joint2_to_joint1', 'joint3_to_joint2','joint4_to_joint3', 'joint5_to_joint4', 'endeffector_to_joint5']
joint_state.name = ['joint1', 'joint2', 'joint3','joint4', 'joint5', 'joint6', 'gripper']
angles = mam.get_joints_angle()
angles.pop(6)
gripper_angle = angles.pop(6)
gripper_angle /= -3500
# angle:弧度 angles:角度
angle = [a/180*pi for a in angles]
angle.append(gripper_angle)
print(angle)
joint_state.position = angle
joint_state.effort = []
joint_state.velocity = []

File diff suppressed because one or more lines are too long

View file

@ -7,19 +7,19 @@
<link name="base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/base.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_basic_base.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/base.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_basic_base.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint1">
<link name="link1">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/joint1.dae"/>
@ -34,7 +34,7 @@
</collision>
</link>
<link name="joint2">
<link name="link2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/joint2.dae"/>
@ -49,7 +49,7 @@
</collision>
</link>
<link name="joint3">
<link name="link3">
<visual>
<geometry>
@ -66,7 +66,7 @@
</link>
<link name="joint4">
<link name="link4">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/joint4.dae"/>
@ -82,7 +82,7 @@
</link>
<link name="joint5">
<link name="link5">
<visual>
<geometry>
@ -100,23 +100,62 @@
</link>
<link name="endeffector">
<link name="gripper">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_Base.dae"/>
</geometry>
<origin xyz = "0 0 0.003 " rpy = " 3.14159 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_Base.dae"/>
</geometry>
<origin xyz = "0 0 0.003 " rpy = " 3.14159 0 0"/>
</collision>
</link>
<link name="gripper_left">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_R.dae"/>
</geometry>
<origin xyz = "0.010 0 0 " rpy = " 1.5708 3.14159 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_R.dae"/>
</geometry>
<origin xyz = "0.010 0 0 " rpy = " 1.5708 3.14159 -1.5708"/>
</collision>
</link>
<link name="gripper_right">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_L.dae"/>
</geometry>
<origin xyz = "0.010 0 0 " rpy = " 1.5708 3.14159 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_L.dae"/>
</geometry>
<origin xyz = "0.010 0 0 " rpy = " 1.5708 3.14159 -1.5708"/>
</collision>
</link>
<!-- <link name="endeffector">
<visual>
<geometry>
@ -136,59 +175,77 @@
<joint name="joint1_to_base" type="revolute">
<joint name="joint1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.7925" upper = "2.7925" velocity = "0"/>
<parent link="base"/>
<child link="joint1"/>
<child link="link1"/>
<origin xyz= "0 0 0.070" rpy = "3.14159 0 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute">
<joint name="joint2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-1.3962" upper = "1.3962" velocity = "0"/>
<parent link="joint1"/>
<child link="joint2"/>
<parent link="link1"/>
<child link="link2"/>
<!-- <origin xyz= "0 0 0" rpy = "1.5708 3.14159 0"/> -->
<origin xyz= "0 0 -0.080" rpy = "1.5708 0 0"/>
</joint>
<joint name="joint3_to_joint2" type="revolute">
<joint name="joint3" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-2.8797" upper = "2.8797" velocity = "0"/>
<parent link="joint2"/>
<child link="joint3"/>
<limit effort = "1000.0" lower = "-1.3962" upper = "1.32" velocity = "0"/>
<parent link="link2"/>
<child link="link3"/>
<origin xyz= "0.0565 -0.296 0 " rpy = "0 0 0"/>
</joint>
<joint name="joint4_to_joint3" type="revolute">
<joint name="joint4" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-1.7453" upper = "1.3962" velocity = "0"/>
<parent link="joint3"/>
<child link="joint4"/>
<limit effort = "1000.0" lower = "-1.7453" upper = "1.7453" velocity = "0"/>
<parent link="link3"/>
<child link="link4"/>
<origin xyz= "0.081 0 0.004" rpy = "0 -1.5708 0"/>
</joint>
<joint name="joint5_to_joint4" type="revolute">
<joint name="joint5" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.8797" upper = "2.8797" velocity = "0"/>
<parent link="joint4"/>
<child link="joint5"/>
<limit effort = "1000.0" lower = "-1.3962" upper = "1.3962" velocity = "0"/>
<parent link="link4"/>
<child link="link5"/>
<origin xyz= "0.0 0.0003 -0.250" rpy = "-1.5708 3.14159 -1.5708"/>
</joint>
<joint name="endeffector_to_joint5" type="revolute">
<joint name="joint6" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-1.9198" upper = "1.9198" velocity = "0"/>
<parent link="joint5"/>
<child link="endeffector"/>
<origin xyz= "0 -0.045 0" rpy = "-1.5708 0 0"/>
<parent link="link5"/>
<child link="gripper"/>
<origin xyz= "0 -0.055 0" rpy = "-1.5708 0 0"/>
</joint>
<joint name="gripper" type="prismatic">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "0" upper = "0.022" velocity = "0"/>
<parent link="gripper"/>
<child link="gripper_left"/>
<origin xyz= "-0.030 0 -0.066" rpy = "3.14 -1.57 1.57"/>
</joint>
<joint name="gripper_r" type="prismatic">
<axis xyz="0 0 -1"/>
<limit effort = "1000.0" lower = "0" upper = "0.022" velocity = "0"/>
<parent link="gripper"/>
<child link="gripper_right"/>
<origin xyz= "-0.030 0 -0.066" rpy = "3.14 -1.57 1.57"/>
<!-- 跟随左手指运动 -->
<mimic joint="gripper" multiplier="1.0" offset="0" />
</joint>
<!-- <joint name="endeffector_to_endeffector" type="revolute">

View file

@ -7,19 +7,19 @@
<link name="base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/base.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_basic_base.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/base.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/bamyarm_basic_basese.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint1">
<link name="link1">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/joint1.dae"/>
@ -34,7 +34,7 @@
</collision>
</link>
<link name="joint2">
<link name="link2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/joint2.dae"/>
@ -49,7 +49,7 @@
</collision>
</link>
<link name="joint3">
<link name="link3">
<visual>
<geometry>
@ -66,7 +66,7 @@
</link>
<link name="joint4">
<link name="link4">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/joint4.dae"/>
@ -82,7 +82,7 @@
</link>
<link name="joint5">
<link name="link5">
<visual>
<geometry>
@ -100,104 +100,134 @@
</link>
<link name="endeffector">
<link name="gripper">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_Base.dae"/>
</geometry>
<origin xyz = "0 0 0.003 " rpy = " 3.14159 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_Base.dae"/>
</geometry>
<origin xyz = "0 0 0.003 " rpy = " 3.14159 0 0"/>
</collision>
</link>
<!-- <link name="endeffector">
<link name="gripper_left">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_R.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.009 " rpy = " 0 0 -1.5708"/>
<origin xyz = "0.010 0 0 " rpy = " 1.5708 3.14159 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_R.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.009 " rpy = " 0 0 -1.5708"/>
<origin xyz = "0.010 0 0 " rpy = " 1.5708 3.14159 -1.5708"/>
</collision>
</link> -->
</link>
<link name="gripper_right">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_L.dae"/>
</geometry>
<origin xyz = "0.010 0 0 " rpy = " 1.5708 3.14159 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_c650/myarm_c_grip_L.dae"/>
</geometry>
<origin xyz = "0.010 0 0 " rpy = " 1.5708 3.14159 -1.5708"/>
</collision>
</link>
<joint name="joint1_to_base" type="revolute">
<joint name="joint1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.7925" upper = "2.7925" velocity = "0"/>
<parent link="base"/>
<child link="joint1"/>
<child link="link1"/>
<origin xyz= "0 0 0.070" rpy = "3.14159 0 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute">
<joint name="joint2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-1.3962" upper = "1.3962" velocity = "0"/>
<parent link="joint1"/>
<child link="joint2"/>
<parent link="link1"/>
<child link="link2"/>
<!-- <origin xyz= "0 0 0" rpy = "1.5708 3.14159 0"/> -->
<origin xyz= "0 0 -0.080" rpy = "1.5708 0 0"/>
</joint>
<joint name="joint3_to_joint2" type="revolute">
<joint name="joint3" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-2.8797" upper = "2.8797" velocity = "0"/>
<parent link="joint2"/>
<child link="joint3"/>
<parent link="link2"/>
<child link="link3"/>
<origin xyz= "0.0565 -0.296 0 " rpy = "0 0 0"/>
</joint>
<joint name="joint4_to_joint3" type="revolute">
<joint name="joint4" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-1.7453" upper = "1.3962" velocity = "0"/>
<parent link="joint3"/>
<child link="joint4"/>
<parent link="link3"/>
<child link="link4"/>
<origin xyz= "0.081 0 0.004" rpy = "0 -1.5708 0"/>
</joint>
<joint name="joint5_to_joint4" type="revolute">
<joint name="joint5" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.8797" upper = "2.8797" velocity = "0"/>
<parent link="joint4"/>
<child link="joint5"/>
<parent link="link4"/>
<child link="link5"/>
<origin xyz= "0.0 0.0003 -0.2595" rpy = "-1.5708 3.14159 -1.5708"/>
</joint>
<joint name="endeffector_to_joint5" type="revolute">
<joint name="joint6" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-1.9198" upper = "1.9198" velocity = "0"/>
<parent link="joint5"/>
<child link="endeffector"/>
<parent link="link5"/>
<child link="gripper"/>
<origin xyz= "0 -0.045 0" rpy = "-1.5708 0 0"/>
</joint>
<!-- <joint name="endeffector_to_endeffector" type="revolute">
<joint name="gripper" type="prismatic">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.8797" upper = "2.8797" velocity = "0"/>
<parent link="endeffector"/>
<child link="endeffector"/>
<origin xyz= "0 -0.056 0" rpy = "1.5708 0 0"/>
</joint> -->
<limit effort = "1000.0" lower = "0" upper = "0.022" velocity = "0"/>
<parent link="gripper"/>
<child link="gripper_left"/>
<origin xyz= "-0.030 0 -0.066" rpy = "3.14 -1.57 1.57"/>
</joint>
<joint name="gripper_r" type="prismatic">
<axis xyz="0 0 -1"/>
<limit effort = "1000.0" lower = "0" upper = "0.022" velocity = "0"/>
<parent link="gripper"/>
<child link="gripper_right"/>
<origin xyz= "-0.030 0 -0.066" rpy = "3.14 -1.57 1.57"/>
<!-- 跟随左手指运动 -->
<mimic joint="gripper" multiplier="1.0" offset="0" />
</joint>

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

@ -9,165 +9,210 @@
<link name="base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/base.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/myarm_m_base.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/base.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/myarm_m_base.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint1">
<link name="link1">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint1.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link1.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.1 " rpy = " 0 3.14 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint1.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link1.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.1 " rpy = "0 3.14 0"/>
</collision>
</link>
<link name="joint2">
<link name="link2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint2.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link2.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = "0 3.14159 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint2.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link2.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = "0 3.14159 0"/>
</collision>
</link>
<link name="joint3">
<link name="link3">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint3.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link3.dae"/>
</geometry>
<origin xyz = "0.0 0 0" rpy = "0 3.14159 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint3.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.0" rpy = "0 3.14159 0"/>
</collision>
</link>
<link name="joint4">
<link name="link4">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint4.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link4.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 3.14159 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint4.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link4.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 3.14159 -1.5708"/>
</collision>
</link>
<link name="joint5">
<link name="link5">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint5.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link5.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint5.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link5.dae"/>
</geometry>
<origin xyz = "0 0.00 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="endeffector">
<link name="gripper">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_holder.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_holder.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</collision>
</link>
<link name="gripper_left">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_left.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_left.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 0 0"/>
</collision>
</link>
<joint name="joint1_to_base" type="revolute">
<link name="gripper_right">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_right.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_right.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</collision>
</link>
<joint name="joint1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.0368" upper = "2.9147" velocity = "0"/>
<parent link="base"/>
<child link="joint1"/>
<child link="link1"/>
<origin xyz= "0 0 0" rpy = "0 3.14 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute">
<joint name="joint2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-1.6057" upper = "1.6232" velocity = "0"/>
<parent link="joint1"/>
<child link="joint2"/>
<parent link="link1"/>
<child link="link2"/>
<origin xyz= "0 0 -0.175" rpy = "-1.57079 -1.57079 0"/>
</joint>
<joint name="joint3_to_joint2" type="revolute">
<joint name="joint3" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-1.5882" upper = "1.7977" velocity = "0"/>
<parent link="joint2"/>
<child link="joint3"/>
<parent link="link2"/>
<child link="link3"/>
<origin xyz= "-0.303 -0.057 0 " rpy = "0 3.14159 -1.57079"/>
</joint>
<joint name="joint4_to_joint3" type="revolute">
<joint name="joint4" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-2.9671" upper = "2.9671" velocity = "0"/>
<parent link="joint3"/>
<child link="joint4"/>
<parent link="link3"/>
<child link="link4"/>
<origin xyz= "-0.08 0 0" rpy = "0 1.57079 0"/>
</joint>
<joint name="joint5_to_joint4" type="revolute">
<joint name="joint5" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-1.6755" upper = "1.5533" velocity = "0"/>
<parent link="joint4"/>
<child link="joint5"/>
<parent link="link4"/>
<child link="link5"/>
<origin xyz= "0 0 -0.258" rpy = "0 1.57079 0"/>
</joint>
<joint name="endeffector_to_joint5" type="revolute">
<joint name="joint6" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.9671" upper = "2.9671" velocity = "0"/>
<parent link="joint5"/>
<child link="endeffector"/>
<parent link="link5"/>
<child link="gripper"/>
<origin xyz= "0.07 0 0" rpy = "0 -1.57079 0"/>
</joint>
<joint name="gripper" type="prismatic">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "0" upper = "0.0345" velocity = "0"/>
<parent link="gripper"/>
<child link="gripper_left"/>
<origin xyz= "0.008 0 -0.036" rpy = "-1.57 0 -1.57"/>
</joint>
<joint name="gripper_r" type="prismatic">
<axis xyz="0 0 -1"/>
<limit effort = "1000.0" lower = "0" upper = "0.06" velocity = "0"/>
<parent link="gripper"/>
<child link="gripper_right"/>
<origin xyz= "-0.008 0 -0.036" rpy = "-1.57 0 -1.57"/>
<!-- 跟随左手指运动 -->
<mimic joint="gripper" multiplier="1.0" offset="0" />
</joint>
</robot>

View file

@ -2,171 +2,214 @@
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="myarm_m" >
<xacro:property name="ns" value="$(arg ns)/" />
<link name="base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/base.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/myarm_m_base.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/base.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/myarm_m_base.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint1">
<link name="link1">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint1.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link1.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.1 " rpy = " 0 3.14 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint1.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link1.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.1 " rpy = "0 3.14 0"/>
</collision>
</link>
<link name="joint2">
<link name="link2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint2.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link2.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = "0 3.14159 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint2.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link2.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = "0 3.14159 0"/>
</collision>
</link>
<link name="joint3">
<link name="link3">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint3.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link3.dae"/>
</geometry>
<origin xyz = "0.0 0 0" rpy = "0 3.14159 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint3.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.0" rpy = "0 3.14159 0"/>
</collision>
</link>
<link name="joint4">
<link name="link4">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint4.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link4.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 3.14159 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint4.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link4.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 3.14159 -1.5708"/>
</collision>
</link>
<link name="joint5">
<link name="link5">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint5.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link5.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/joint5.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/link5.dae"/>
</geometry>
<origin xyz = "0 0.00 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="endeffector">
<link name="gripper">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_holder.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/endeffector.dae"/>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_holder.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</collision>
</link>
<link name="gripper_left">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_left.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_left.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 0 0"/>
</collision>
</link>
<joint name="joint1_to_base" type="revolute">
<link name="gripper_right">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_right.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/myarm_m/finger_right.dae"/>
</geometry>
<origin xyz = "0 0.00 0" rpy = " 0 3.14159 -1.57079"/>
</collision>
</link>
<joint name="joint1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.0368" upper = "2.9147" velocity = "0"/>
<parent link="base"/>
<child link="joint1"/>
<child link="link1"/>
<origin xyz= "0 0 0" rpy = "0 3.14 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute">
<joint name="joint2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-1.6057" upper = "1.6232" velocity = "0"/>
<parent link="joint1"/>
<child link="joint2"/>
<parent link="link1"/>
<child link="link2"/>
<origin xyz= "0 0 -0.175" rpy = "-1.57079 -1.57079 0"/>
</joint>
<joint name="joint3_to_joint2" type="revolute">
<joint name="joint3" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-1.5882" upper = "1.7977" velocity = "0"/>
<parent link="joint2"/>
<child link="joint3"/>
<parent link="link2"/>
<child link="link3"/>
<origin xyz= "-0.303 -0.057 0 " rpy = "0 3.14159 -1.57079"/>
</joint>
<joint name="joint4_to_joint3" type="revolute">
<joint name="joint4" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-2.9671" upper = "2.9671" velocity = "0"/>
<parent link="joint3"/>
<child link="joint4"/>
<parent link="link3"/>
<child link="link4"/>
<origin xyz= "-0.08 0 0" rpy = "0 1.57079 0"/>
</joint>
<joint name="joint5_to_joint4" type="revolute">
<joint name="joint5" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-1.6755" upper = "1.5533" velocity = "0"/>
<parent link="joint4"/>
<child link="joint5"/>
<parent link="link4"/>
<child link="link5"/>
<origin xyz= "0 0 -0.258" rpy = "0 1.57079 0"/>
</joint>
<joint name="endeffector_to_joint5" type="revolute">
<joint name="joint6" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.9671" upper = "2.9671" velocity = "0"/>
<parent link="joint5"/>
<child link="endeffector"/>
<parent link="link5"/>
<child link="gripper"/>
<origin xyz= "0.07 0 0" rpy = "0 -1.57079 0"/>
</joint>
<joint name="gripper" type="prismatic">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "0" upper = "0.0345" velocity = "0"/>
<parent link="gripper"/>
<child link="gripper_left"/>
<origin xyz= "0.008 0 -0.036" rpy = "-1.57 0 -1.57"/>
</joint>
<joint name="gripper_r" type="prismatic">
<axis xyz="0 0 -1"/>
<limit effort = "1000.0" lower = "0" upper = "0.06" velocity = "0"/>
<parent link="gripper"/>
<child link="gripper_right"/>
<origin xyz= "-0.008 0 -0.036" rpy = "-1.57 0 -1.57"/>
<!-- 跟随左手指运动 -->
<mimic joint="gripper" multiplier="1.0" offset="0" />
</joint>
</robot>

File diff suppressed because one or more lines are too long