mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-23 17:56:07 +00:00
join subscribe thread after disconnecting robot
This commit is contained in:
@@ -138,8 +138,8 @@ class UnitreeG1(Robot):
|
|||||||
self.lowstate_buffer = DataBuffer()
|
self.lowstate_buffer = DataBuffer()
|
||||||
|
|
||||||
# initialize subscribe thread to read robot state
|
# initialize subscribe thread to read robot state
|
||||||
|
self._shutdown_event = threading.Event()
|
||||||
self.subscribe_thread = threading.Thread(target=self._subscribe_motor_state)
|
self.subscribe_thread = threading.Thread(target=self._subscribe_motor_state)
|
||||||
self.subscribe_thread.daemon = True
|
|
||||||
self.subscribe_thread.start()
|
self.subscribe_thread.start()
|
||||||
|
|
||||||
while not self.is_connected:
|
while not self.is_connected:
|
||||||
@@ -174,7 +174,7 @@ class UnitreeG1(Robot):
|
|||||||
self.remote_controller = self.RemoteController()
|
self.remote_controller = self.RemoteController()
|
||||||
|
|
||||||
def _subscribe_motor_state(self): # polls robot state @ 250Hz
|
def _subscribe_motor_state(self): # polls robot state @ 250Hz
|
||||||
while True:
|
while not self._shutdown_event.is_set():
|
||||||
start_time = time.time()
|
start_time = time.time()
|
||||||
msg = self.lowstate_subscriber.Read()
|
msg = self.lowstate_subscriber.Read()
|
||||||
if msg is not None:
|
if msg is not None:
|
||||||
@@ -221,7 +221,8 @@ class UnitreeG1(Robot):
|
|||||||
ChannelFactoryInitialize(0)
|
ChannelFactoryInitialize(0)
|
||||||
|
|
||||||
def disconnect(self):
|
def disconnect(self):
|
||||||
pass
|
self._shutdown_event.set()
|
||||||
|
self.subscribe_thread.join(timeout=2.0)
|
||||||
|
|
||||||
def get_observation(self) -> dict[str, Any]:
|
def get_observation(self) -> dict[str, Any]:
|
||||||
return self.lowstate_buffer.get_data()
|
return self.lowstate_buffer.get_data()
|
||||||
|
|||||||
Reference in New Issue
Block a user