Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
f1b4692
add MyCobot 280 X5PI API
K-Shuffler Feb 12, 2025
a527d8d
Merge branch 'elephantrobotics:main' into main
K-Shuffler Feb 13, 2025
1346cd8
add MyCobot 280 X5 PI doc
K-Shuffler Feb 13, 2025
6156a50
Fix MyCobot 280 X5 Pi doc errors
K-Shuffler Feb 13, 2025
fe9b85d
Merge branch 'elephantrobotics:main' into main
K-Shuffler Feb 14, 2025
3021fa2
add MyCobot 280 X5 PI sokcet sever&client
K-Shuffler Feb 14, 2025
d6893f6
MyCobot 280 X5 PI server compatible with python2
K-Shuffler Feb 14, 2025
3237fc3
Merge branch 'elephantrobotics:main' into main
K-Shuffler Feb 17, 2025
1bd4e1f
rename MyCobot280x5pi to MyCobot280RDKX5
K-Shuffler Feb 17, 2025
2dfef78
fix MyArmMControl bugs
K-Shuffler Feb 17, 2025
b743d96
fix MyArmC bugs
K-Shuffler Feb 18, 2025
7a4e60b
Merge branch 'elephantrobotics:main' into main
K-Shuffler Feb 25, 2025
3271dd0
Merge branch 'elephantrobotics:main' into main
K-Shuffler Mar 3, 2025
b1ae0f1
Merge branch 'elephantrobotics:main' into main
K-Shuffler Mar 18, 2025
afa6fec
Merge branch 'elephantrobotics:main' into main
K-Shuffler Mar 21, 2025
455b905
fix myArmM&C demo bug
K-Shuffler Mar 21, 2025
3fd7ce5
update M&C demo
K-Shuffler Mar 24, 2025
87eed94
fix MyCobot280 rdkx5 bug
K-Shuffler Mar 24, 2025
4987206
fix MyArmM&C bugs
K-Shuffler Mar 24, 2025
53241c7
fix bugs
K-Shuffler Mar 27, 2025
3d60a0d
fix bug
K-Shuffler Mar 28, 2025
153a3b9
Merge branch 'elephantrobotics:main' into main
K-Shuffler Mar 28, 2025
b3e7dae
Merge branch 'elephantrobotics:main' into main
K-Shuffler Mar 28, 2025
4ff4ec4
fix ThreeHand api bug
K-Shuffler Mar 28, 2025
b0b18dd
Merge branch 'elephantrobotics:main' into main
K-Shuffler Apr 1, 2025
0c2fb10
Fixed the issue that Pro630 could not read data
K-Shuffler Apr 1, 2025
44089b0
Merge branch 'elephantrobotics:main' into main
K-Shuffler Apr 3, 2025
a4b9396
fix MyArmM bug
K-Shuffler Apr 3, 2025
c7807e3
Merge branch 'elephantrobotics:main' into main
K-Shuffler Apr 7, 2025
75d06d6
MyArmM&C adds get_joints_coord interface
K-Shuffler Apr 7, 2025
4b88da8
Merge branch 'main' of https://github.com/K-Shuffler/pymycobot
K-Shuffler Apr 7, 2025
06f187c
fix Pro630 bug
K-Shuffler Apr 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions pymycobot/myarm_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,13 @@ def get_joints_angle(self):
"""
return self._mesg(ProtocolCode.GET_ANGLES, has_reply=True)

def get_joints_coord(self):
"""Get the coordinates
Returns:
list[float] * 6: joints angle
"""
return self._mesg(ProtocolCode.GET_JOINTS_COORD, has_reply=True)

def set_servo_calibrate(self, servo_id):
"""Sets the zero position of the specified servo motor

Expand Down
6 changes: 0 additions & 6 deletions pymycobot/myarmc.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,3 @@ def is_tool_btn_clicked(self, mode=1):

return self._mesg(ProtocolCode.GET_ATOM_PRESS_STATUS, mode, has_reply=True)

def get_joints_coord(self):
"""Get the coordinates
Returns:
list[float] * 6: joints angle
"""
return self._mesg(ProtocolCode.GET_JOINTS_COORD, has_reply=True)
17 changes: 14 additions & 3 deletions pymycobot/pro630.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ def _mesg(self, genre, *args, **kwargs):
read_data = super(Pro630, self)._mesg(genre, *args, **kwargs)
if read_data is None:
return None
elif read_data == 1:
return 1

if isinstance(read_data, int):
return read_data

valid_data, data_len = read_data
res = []
if data_len in [8, 12, 14, 16, 26, 60]:
Expand All @@ -60,6 +62,14 @@ def _mesg(self, genre, *args, **kwargs):
elif data_len == 6 and genre in [ProtocolCode.GET_SERVO_STATUS, ProtocolCode.GET_SERVO_VOLTAGES, ProtocolCode.GET_SERVO_CURRENTS]:
for i in range(data_len):
res.append(valid_data[i])
elif genre == ProtocolCode.MERCURY_ROBOT_STATUS:
res.extend(valid_data[:8])
data = valid_data[8:20]
for header_i in range(0, len(data), 2):
one = data[header_i: header_i + 2]
res.append(self._decode_int16(one))
res.extend(valid_data[20:26])
return res
else:
for header_i in range(0, len(valid_data), 2):
one = valid_data[header_i : header_i + 2]
Expand Down Expand Up @@ -140,7 +150,8 @@ def _mesg(self, genre, *args, **kwargs):
data1 = self._decode_int8(valid_data[i : i + 1])
res.append(0xFF & data1 if data1 < 0 else data1)
res.append(self._decode_int8(valid_data))
if res == []:

if len(res) == 0:
return None

if genre in [
Expand Down
17 changes: 14 additions & 3 deletions pymycobot/pro630client.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,10 @@ def _mesg(self, genre, *args, **kwargs):
read_data = super(Pro630Client, self)._mesg(genre, *args, **kwargs)
if read_data is None:
return None
elif read_data == 1:
return 1

if isinstance(read_data, int):
return read_data

valid_data, data_len = read_data
res = []
if data_len in [8, 12, 14, 16, 26, 60]:
Expand All @@ -55,6 +57,14 @@ def _mesg(self, genre, *args, **kwargs):
elif data_len == 6 and genre in [ProtocolCode.GET_SERVO_STATUS, ProtocolCode.GET_SERVO_VOLTAGES, ProtocolCode.GET_SERVO_CURRENTS]:
for i in range(data_len):
res.append(valid_data[i])
elif genre == ProtocolCode.MERCURY_ROBOT_STATUS:
res.extend(valid_data[:8])
data = valid_data[8:20]
for header_i in range(0, len(data), 2):
one = data[header_i: header_i + 2]
res.append(self._decode_int16(one))
res.extend(valid_data[20:26])
return res
else:
for header_i in range(0, len(valid_data), 2):
one = valid_data[header_i : header_i + 2]
Expand Down Expand Up @@ -135,7 +145,8 @@ def _mesg(self, genre, *args, **kwargs):
data1 = self._decode_int8(valid_data[i : i + 1])
res.append(0xFF & data1 if data1 < 0 else data1)
res.append(self._decode_int8(valid_data))
if res == []:

if len(res) == 0:
return None

if genre in [
Expand Down