Skip to content

Commit 0ca6c6b

Browse files
committed
v1.3.6
支持L20和L25_V2版本
1 parent 66210c8 commit 0ca6c6b

File tree

10 files changed

+41
-139
lines changed

10 files changed

+41
-139
lines changed
629 Bytes
Binary file not shown.
Lines changed: 0 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +0,0 @@
1-
LEFT_HAND:
2-
- ACTION_NAME: 张开
3-
POSITION:
4-
- 255
5-
- 255
6-
- 255
7-
- 255
8-
- 255
9-
- 255
10-
- 10
11-
- 100
12-
- 180
13-
- 240
14-
- 245
15-
- 255
16-
- 255
17-
- 255
18-
- 255
19-
- 255
20-
- 255
21-
- 255
22-
- 255
23-
- 255
24-
- ACTION_NAME: 握拳
25-
POSITION:
26-
- 69.0
27-
- 0.0
28-
- 0.0
29-
- 0.0
30-
- 0.0
31-
- 151.0
32-
- 10.0
33-
- 100.0
34-
- 180.0
35-
- 240.0
36-
- 14.0
37-
- 255.0
38-
- 255.0
39-
- 255.0
40-
- 255.0
41-
- 109.0
42-
- 0.0
43-
- 0.0
44-
- 0.0
45-
- 0.0
46-
RIGHT_HAND:
47-
- ACTION_NAME: 张开
48-
POSITION:
49-
- 255.0
50-
- 255.0
51-
- 255.0
52-
- 255.0
53-
- 255.0
54-
- 255.0
55-
- 10.0
56-
- 100.0
57-
- 180.0
58-
- 240.0
59-
- 245.0
60-
- 255.0
61-
- 255.0
62-
- 255.0
63-
- 255.0
64-
- 255.0
65-
- 255.0
66-
- 255.0
67-
- 255.0
68-
- 255.0
69-
- ACTION_NAME: 握拳
70-
POSITION:
71-
- 69.0
72-
- 0.0
73-
- 0.0
74-
- 0.0
75-
- 0.0
76-
- 151.0
77-
- 10.0
78-
- 100.0
79-
- 180.0
80-
- 240.0
81-
- 14.0
82-
- 255.0
83-
- 255.0
84-
- 255.0
85-
- 255.0
86-
- 109.0
87-
- 0.0
88-
- 0.0
89-
- 0.0
90-
- 0.0
91-
- ACTION_NAME: '666'
92-
POSITION:
93-
- 255.0
94-
- 255.0
95-
- 33.0
96-
- 255.0
97-
- 255.0
98-
- 255.0
99-
- 10.0
100-
- 100.0
101-
- 180.0
102-
- 240.0
103-
- 245.0
104-
- 255.0
105-
- 255.0
106-
- 255.0
107-
- 255.0
108-
- 255.0
109-
- 255.0
110-
- 255.0
111-
- 255.0
112-
- 255.0

LinkerHand/config/setting.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
VERSION: 2.0.1 # 重构核心源码
1+
VERSION: 1.3.6 # 重构核心源码,支持动捕手套速度
22
LINKER_HAND: # 手部配置信息
33
LEFT_HAND:
4-
EXISTS: False # 是否存在左手
4+
EXISTS: True # 是否存在左手
55
TOUCH: True # 是否有压力传感器
6-
JOINT: L20 # 左手关节数 L7/L10/L20/L25/L25_v2
6+
JOINT: L10 # 左手关节数 L7/L10/L20/L25/L25_v2
77
NAME: # 无论l10还是l20 joint name都是20个
88
- joint41
99
- joint42
@@ -27,8 +27,8 @@ LINKER_HAND: # 手部配置信息
2727
- joint60
2828

2929
RIGHT_HAND:
30-
EXISTS: True # 是否存在右手
31-
TOUCH: True # 是否有压力传感器
30+
EXISTS: False # 是否存在右手
31+
TOUCH: False # 是否有压力传感器
3232
JOINT: L25 # 右手关节数量
3333
NAME: # 无论l10还是l20 joint name都是20个
3434
- joint71
27 Bytes
Binary file not shown.

LinkerHand/core/linker_hand_l25_can.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ def __init__(self, can_channel='can0', baudrate=1000000, can_id=0x28):
141141
else:
142142
raise EnvironmentError("Unsupported platform for CAN interface")
143143

144-
145144
# 启动接收线程
146145
self.receive_thread = threading.Thread(target=self.receive_response)
147146
self.receive_thread.daemon = True
@@ -346,12 +345,18 @@ def set_torque(self,torque=[250]*5):
346345

347346
def set_speed(self, speed):
348347
self.speed = speed
349-
ColorMsg(msg=f"L25设置速度为:{self.speed}", color="yellow")
350-
thumb_speed = [self.speed[0]]*5
351-
index_speed = [self.speed[1]]*5
352-
middle_speed = [self.speed[2]]*5
353-
ring_speed = [self.speed[3]]*5
354-
little_speed = [self.speed[4]]*5
348+
if len(speed) < 25:
349+
thumb_speed = [self.speed[0]]*5
350+
index_speed = [self.speed[1]]*5
351+
middle_speed = [self.speed[2]]*5
352+
ring_speed = [self.speed[3]]*5
353+
little_speed = [self.speed[4]]*5
354+
else:
355+
thumb_speed = [self.speed[0],self.speed[1],self.speed[2],self.speed[3],self.speed[4]]
356+
index_speed = [self.speed[5],self.speed[6],self.speed[7],self.speed[8],self.speed[9]]
357+
middle_speed = [self.speed[10],self.speed[11],self.speed[12],self.speed[13],self.speed[14]]
358+
ring_speed = [self.speed[15],self.speed[16],self.speed[17],self.speed[18],self.speed[19]]
359+
little_speed = [self.speed[20],self.speed[21],self.speed[22],self.speed[23],self.speed[24]]
355360
self.send_command(FrameProperty.THUMB_SPEED, thumb_speed)
356361
self.send_command(FrameProperty.INDEX_SPEED, index_speed)
357362
self.send_command(FrameProperty.MIDDLE_SPEED, middle_speed)

LinkerHand/linker_hand_api.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
Author: HJX
33
Date: 2025-04-01 14:09:21
44
LastEditors: Please set LastEditors
5-
LastEditTime: 2025-04-09 14:05:33
6-
FilePath: /LinkerHand_Python_SDK/LinkerHand/linker_hand_api.py
5+
LastEditTime: 2025-04-11 09:19:15
6+
FilePath: /Linker_Hand_SDK_ROS/src/linker_hand_sdk_ros/scripts/LinkerHand/linker_hand_api.py
77
Description:
88
symbol_custom_string_obkorol_copyright:
99
'''
@@ -54,8 +54,8 @@ def finger_move(self,pose=[]):
5454
五指移动
5555
@params: pose list L7 len(7) | L10 len(10) | L20 len(20) | L25 len(25) 0~255
5656
'''
57-
if pose == self.last_position:
58-
return
57+
# if pose == self.last_position:
58+
# return
5959
#ColorMsg(msg=f"当前LinkerHand为{self.hand_type} {self.hand_joint},动作序列为{pose}", color="green")
6060
if self.hand_joint == "L7" and len(pose) == 7:
6161
self.hand.set_joint_positions(pose)
@@ -98,14 +98,16 @@ def set_speed(self,speed=[100]*5):
9898
'''# 设置速度'''
9999
ColorMsg(msg=f"设置速度为{speed}", color="green")
100100
self.hand.set_speed(speed=speed)
101-
101+
def set_joint_speed(self,speed=[100]*5):
102+
'''设置速度by topic'''
103+
self.hand.set_speed(speed=speed)
102104
def set_torque(self, torque=[]):
103105
'''设置最大扭矩'''
104106
ColorMsg(msg=f"设置最大扭矩为{torque}", color="green")
105107
return self.hand.set_torque(torque=torque)
106108

107109
def set_current(self, current=[]):
108-
'''设置电流 暂不支持'''
110+
'''设置电流 L7/L10/L25暂不支持'''
109111
if self.hand_joint == "L20":
110112
return self.hand.set_current(current=current)
111113
else:
@@ -123,7 +125,17 @@ def get_state(self):
123125
def get_speed(self):
124126
'''获取速度'''
125127
return self.hand.get_speed()
126-
128+
def get_joint_speed(self):
129+
speed = self.hand.get_speed()
130+
if self.hand_joint == "L7":
131+
return speed
132+
elif self.hand_joint == "L10":
133+
return [speed[0],255,speed[1],speed[2],speed[3],speed[4],255,255,255,255]
134+
elif self.hand_joint == "L20":
135+
return [255,speed[1],speed[2],speed[3],speed[4],255,255,255,255,255,speed[0],255,255,255,255,255,255,255,255,255]
136+
elif self.hand_joint == "L25":
137+
return speed
138+
127139
def get_torque(self):
128140
'''获取当前最大扭矩'''
129141
return self.hand.get_torque()
-37 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

LinkerHand/utils/load_write_yaml.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Author: HJX
55
Date: 2025-04-01 14:09:21
66
LastEditors: Please set LastEditors
7-
LastEditTime: 2025-04-09 14:12:57
7+
LastEditTime: 2025-04-11 10:19:01
88
FilePath: /LinkerHand_Python_SDK/LinkerHand/utils/load_write_yaml.py
99
Description:
1010
symbol_custom_string_obkorol_copyright:
@@ -13,10 +13,8 @@
1313
class LoadWriteYaml():
1414
def __init__(self):
1515
# 由于是API形式,这里要给配置文件目录绝对路径
16-
# ROS模式路径
17-
#yaml_path = os.path.dirname(os.path.abspath(__file__)) + "/../../LinkerHand"
18-
# Python模式路径 获取当前文件的上层文件夹路径
19-
yaml_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
16+
#yaml_path = "/home/linkerhand/ROS2/linker_hand_ros2_sdk/src/linker_hand_ros2_sdk/linker_hand_ros2_sdk/LinkerHand"
17+
yaml_path = os.path.dirname(os.path.abspath(__file__)) + "/../../LinkerHand"
2018
self.setting_path = yaml_path+"/config/setting.yaml"
2119
self.l7_positions = yaml_path+"/config/L7_positions.yaml"
2220
self.l10_positions = yaml_path+"/config/L10_positions.yaml"
@@ -47,14 +45,13 @@ def load_setting_yaml(self):
4745
def load_action_yaml(self,hand_joint="",hand_type=""):
4846
if hand_joint == "L20":
4947
action_path = self.l20_positions
50-
print("__" * 20)
51-
print(action_path)
5248
elif hand_joint == "L10":
5349
action_path = self.l10_positions
5450
elif hand_joint == "L25":
5551
action_path = self.l25_positions
5652
elif hand_joint == "L7":
5753
action_path = self.l7_positions
54+
print(action_path)
5855
try:
5956
with open(action_path, 'r', encoding='utf-8') as file:
6057
yaml_data = yaml.safe_load(file)

LinkerHand/utils/open_can.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Author: HJX
55
Date: 2025-04-01 14:09:21
66
LastEditors: Please set LastEditors
7-
LastEditTime: 2025-04-08 09:25:01
7+
LastEditTime: 2025-04-11 09:15:31
88
FilePath: /Linker_Hand_SDK_ROS/src/linker_hand_sdk_ros/scripts/LinkerHand/utils/open_can.py
99
Description:
1010
symbol_custom_string_obkorol_copyright:

0 commit comments

Comments
 (0)