Skip to content

Commit 83658d2

Browse files
committed
OperatingModeが違う場合のみCURRENT_BASED_POISITIONをセットするように変更
1 parent 4fe5717 commit 83658d2

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

uiflow2/libs/DynamixelDriver.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,14 @@ def readPresentPosition(self):
140140
return None
141141
#
142142
#
143+
def readOperatingMode(self):
144+
res = self.send_command(INSTRUCTION['READ'], ADDRESS['OPERATING_MODE'], b'\x01\x00')
145+
len_ = self.parse(res)
146+
if len_ == 5 and res[7:9] == b'\x55\00':
147+
return res[9]
148+
return None
149+
#
150+
#
143151
def setOperatingMode(self, mode):
144152
res = self.send_command(INSTRUCTION['WRITE'], ADDRESS['OPERATING_MODE'], struct.pack('B', mode))
145153
return self.parse(res) > 0
@@ -202,7 +210,10 @@ def init(self):
202210
return
203211
self.goalPosition = 0
204212
self.servo.setTorque(False)
205-
self.servo.setOperatingMode(OPERATING_MODE['CURRENT_BASED_POSITION'])
213+
mode = self.servo.readOperatingMode()
214+
# print(f"mode: {mode}")
215+
if mode != OPERATING_MODE['CURRENT_BASED_POSITION']:
216+
self.servo.setOperatingMode(OPERATING_MODE['CURRENT_BASED_POSITION'])
206217
self.servo.setTorque(True)
207218
return
208219
#

0 commit comments

Comments
 (0)