From 14ee3df5ef4b856752d68bba7bc602b8c3623608 Mon Sep 17 00:00:00 2001 From: quzz21 Date: Fri, 4 Jul 2025 23:01:30 +0800 Subject: [PATCH] add stand, walk motion, run motion and speed mode control for g1 client --- unitree_sdk2py/g1/loco/g1_loco_api.py | 1 + unitree_sdk2py/g1/loco/g1_loco_client.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/unitree_sdk2py/g1/loco/g1_loco_api.py b/unitree_sdk2py/g1/loco/g1_loco_api.py index 2fdca7e..dfacdab 100644 --- a/unitree_sdk2py/g1/loco/g1_loco_api.py +++ b/unitree_sdk2py/g1/loco/g1_loco_api.py @@ -26,6 +26,7 @@ ROBOT_API_ID_LOCO_SET_STAND_HEIGHT = 7104 ROBOT_API_ID_LOCO_SET_VELOCITY = 7105 ROBOT_API_ID_LOCO_SET_ARM_TASK = 7106 +ROBOT_API_ID_LOCO_SET_SPEED_MODE = 7107 """ " error code diff --git a/unitree_sdk2py/g1/loco/g1_loco_client.py b/unitree_sdk2py/g1/loco/g1_loco_client.py index 9d3a632..5de5482 100644 --- a/unitree_sdk2py/g1/loco/g1_loco_client.py +++ b/unitree_sdk2py/g1/loco/g1_loco_client.py @@ -71,10 +71,21 @@ def SetTaskId(self, task_id: float): parameter = json.dumps(p) code, data = self._Call(ROBOT_API_ID_LOCO_SET_ARM_TASK, parameter) return code + + # 7107 + def SetSpeedMode(self, speed_mode: int): + p = {} + p["data"] = speed_mode + parameter = json.dumps(p) + code, data = self._Call(ROBOT_API_ID_LOCO_SET_SPEED_MODE, parameter) + return code def Damp(self): self.SetFsmId(1) + def StandUp(self): + self.SetFsmId(4) + def Start(self): self.SetFsmId(200) @@ -92,6 +103,15 @@ def StandUp2Squat(self): def ZeroTorque(self): self.SetFsmId(0) + + def WalkMotion(self): + self.SetFsmId(500) + + def WalkMotion_3Dof_waist(self): + self.SetFsmId(501) + + def Run(self): + self.SetFsmId(800) def StopMove(self): self.SetVelocity(0., 0., 0.)