Remove async in dynamixel

This commit is contained in:
Remi Cadene 2024-07-07 11:01:04 +02:00
parent 72b2e342ae
commit 3ba05d53b9
3 changed files with 26 additions and 23 deletions

View File

@ -98,6 +98,7 @@ class OpenCVCamera:
```python ```python
camera = OpenCVCamera(2) camera = OpenCVCamera(2)
camera.connect()
color_image = camera.read() color_image = camera.read()
``` ```
""" """

View File

@ -189,6 +189,23 @@ class DriveMode(enum.Enum):
class DynamixelMotorsBus: class DynamixelMotorsBus:
"""
Example of usage for 1 motor connected to the bus:
```python
motor_name = "gripper"
motor_index = 6
motor_model = "xl330-m077"
robot = DynamixelMotorsBus(
port="/dev/tty.usbmodem575E0031751",
motors={motor_name: (motor_index, motor_model)},
)
robot.connect()
while True:
robot.teleop_step()
```
"""
def __init__( def __init__(
self, self,
port: str, port: str,

View File

@ -226,6 +226,9 @@ class KochRobot:
Example of usage: Example of usage:
```python ```python
robot = KochRobot() robot = KochRobot()
robot.connect()
while True:
robot.teleop_step()
``` ```
""" """
@ -247,9 +250,6 @@ class KochRobot:
self.is_connected = False self.is_connected = False
self.logs = {} self.logs = {}
self.async_read = False
self.async_write = False
def connect(self): def connect(self):
if self.is_connected: if self.is_connected:
raise ValueError(f"KochRobot is already connected.") raise ValueError(f"KochRobot is already connected.")
@ -323,9 +323,6 @@ class KochRobot:
leader_pos = {} leader_pos = {}
for name in self.leader_arms: for name in self.leader_arms:
now = time.perf_counter() now = time.perf_counter()
if self.async_read:
leader_pos[name] = self.leader_arms[name].async_read("Present_Position")
else:
leader_pos[name] = self.leader_arms[name].read("Present_Position") leader_pos[name] = self.leader_arms[name].read("Present_Position")
self.logs[f"read_leader_{name}_pos_dt_s"] = time.perf_counter() - now self.logs[f"read_leader_{name}_pos_dt_s"] = time.perf_counter() - now
@ -336,9 +333,6 @@ class KochRobot:
# Send action # Send action
for name in self.follower_arms: for name in self.follower_arms:
now = time.perf_counter() now = time.perf_counter()
if self.async_write:
self.follower_arms[name].async_write("Goal_Position", follower_goal_pos[name])
else:
self.follower_arms[name].write("Goal_Position", follower_goal_pos[name]) self.follower_arms[name].write("Goal_Position", follower_goal_pos[name])
self.logs[f"write_follower_{name}_goal_pos_dt_s"] = time.perf_counter() - now self.logs[f"write_follower_{name}_goal_pos_dt_s"] = time.perf_counter() - now
@ -350,9 +344,6 @@ class KochRobot:
follower_pos = {} follower_pos = {}
for name in self.follower_arms: for name in self.follower_arms:
now = time.perf_counter() now = time.perf_counter()
if self.async_read:
follower_pos[name] = self.follower_arms[name].async_read("Present_Position")
else:
follower_pos[name] = self.follower_arms[name].read("Present_Position") follower_pos[name] = self.follower_arms[name].read("Present_Position")
self.logs[f"read_follower_{name}_pos_dt_s"] = time.perf_counter() - now self.logs[f"read_follower_{name}_pos_dt_s"] = time.perf_counter() - now
@ -394,9 +385,6 @@ class KochRobot:
# Read follower position # Read follower position
follower_pos = {} follower_pos = {}
for name in self.follower_arms: for name in self.follower_arms:
if self.async_read:
follower_pos[name] = self.follower_arms[name].async_read("Present_Position")
else:
follower_pos[name] = self.follower_arms[name].read("Present_Position") follower_pos[name] = self.follower_arms[name].read("Present_Position")
# Create state by concatenating follower current position # Create state by concatenating follower current position
@ -432,7 +420,4 @@ class KochRobot:
from_idx = to_idx from_idx = to_idx
for name in self.follower_arms: for name in self.follower_arms:
if self.async_write:
self.follower_arms[name].async_write("Goal_Position", follower_goal_pos[name].astype(np.int32))
else:
self.follower_arms[name].write("Goal_Position", follower_goal_pos[name].astype(np.int32)) self.follower_arms[name].write("Goal_Position", follower_goal_pos[name].astype(np.int32))