Skip to content

Commit fa4cbef

Browse files
committed
add b2
1 parent bd24b5b commit fa4cbef

9 files changed

Lines changed: 556 additions & 1 deletion

File tree

unitree_sdk2py/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
from . import idl, utils, core, rpc, go2
1+
from . import idl, utils, core, rpc, go2, b2
22

33
__all__ = [
44
"idl"
55
"utils"
66
"core",
77
"rpc",
88
"go2",
9+
"b2",
910
]
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"""
2+
" service name
3+
"""
4+
ROBOT_STATE_SERVICE_NAME = "robot_state"
5+
6+
7+
"""
8+
" service api version
9+
"""
10+
ROBOT_STATE_API_VERSION = "1.0.0.1"
11+
12+
13+
"""
14+
" api id
15+
"""
16+
ROBOT_STATE_API_ID_SERVICE_SWITCH = 1001
17+
ROBOT_STATE_API_ID_REPORT_FREQ = 1002
18+
ROBOT_STATE_API_ID_SERVICE_LIST = 1003
19+
20+
21+
"""
22+
" error code
23+
"""
24+
ROBOT_STATE_ERR_SERVICE_SWITCH = 5201
25+
ROBOT_STATE_ERR_SERVICE_PROTECTED = 5202
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
import json
2+
3+
from ...rpc.client import Client
4+
from ...rpc.client_internal import *
5+
from .robot_state_api import *
6+
7+
8+
"""
9+
" class ServiceState
10+
"""
11+
class ServiceState:
12+
def __init__(self, name: str = None, status: int = None, protect: bool = None):
13+
self.name = name
14+
self.status = status
15+
self.protect = protect
16+
17+
"""
18+
" class RobotStateClient
19+
"""
20+
class RobotStateClient(Client):
21+
def __init__(self):
22+
super().__init__(ROBOT_STATE_SERVICE_NAME, False)
23+
24+
def Init(self):
25+
# set api version
26+
self._SetApiVerson(ROBOT_STATE_API_VERSION)
27+
# regist api
28+
self._RegistApi(ROBOT_STATE_API_ID_SERVICE_SWITCH, 0)
29+
self._RegistApi(ROBOT_STATE_API_ID_REPORT_FREQ, 0)
30+
self._RegistApi(ROBOT_STATE_API_ID_SERVICE_LIST, 0)
31+
32+
def ServiceList(self):
33+
p = {}
34+
parameter = json.dumps(p)
35+
36+
code, data = self._Call(ROBOT_STATE_API_ID_SERVICE_LIST, parameter)
37+
38+
if code != 0:
39+
return code, None
40+
41+
lst = []
42+
43+
d = json.loads(data)
44+
for t in d:
45+
s = ServiceState()
46+
s.name = t["name"]
47+
s.status = t["status"]
48+
s.protect = t["protect"]
49+
lst.append(s)
50+
51+
return code, lst
52+
53+
54+
def ServiceSwitch(self, name: str, switch: bool):
55+
p = {}
56+
p["name"] = name
57+
p["switch"] = int(switch)
58+
parameter = json.dumps(p)
59+
60+
code, data = self._Call(ROBOT_STATE_API_ID_SERVICE_SWITCH, parameter)
61+
62+
if code != 0:
63+
return code
64+
65+
d = json.loads(data)
66+
67+
status = d["status"]
68+
69+
if status == 5:
70+
return ROBOT_STATE_ERR_SERVICE_PROTECTED
71+
72+
if status != 0 and status != 1:
73+
return ROBOT_STATE_ERR_SERVICE_SWITCH
74+
75+
return code
76+
77+
def SetReportFreq(self, interval: int, duration: int):
78+
p = {}
79+
p["interval"] = interval
80+
p["duration"] = duration
81+
parameter = json.dumps(p)
82+
83+
code, data = self._Call(ROBOT_STATE_API_ID_REPORT_FREQ, p)
84+
return code
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
"""
2+
" service name
3+
"""
4+
SPORT_SERVICE_NAME = "sport"
5+
6+
7+
"""
8+
" service api version
9+
"""
10+
SPORT_API_VERSION = "1.0.0.1"
11+
12+
13+
"""
14+
" api id
15+
"""
16+
SPORT_API_ID_DAMP = 1001;
17+
SPORT_API_ID_BALANCESTAND = 1002;
18+
SPORT_API_ID_STOPMOVE = 1003;
19+
SPORT_API_ID_STANDUP = 1004;
20+
SPORT_API_ID_STANDDOWN = 1005;
21+
SPORT_API_ID_RECOVERYSTAND = 1006;
22+
SPORT_API_ID_EULER = 1007;
23+
SPORT_API_ID_MOVE = 1008;
24+
SPORT_API_ID_SIT = 1009;
25+
SPORT_API_ID_RISESIT = 1010;
26+
SPORT_API_ID_SWITCHGAIT = 1011;
27+
SPORT_API_ID_TRIGGER = 1012;
28+
SPORT_API_ID_BODYHEIGHT = 1013;
29+
SPORT_API_ID_FOOTRAISEHEIGHT = 1014;
30+
SPORT_API_ID_SPEEDLEVEL = 1015;
31+
SPORT_API_ID_HELLO = 1016;
32+
SPORT_API_ID_STRETCH = 1017;
33+
SPORT_API_ID_TRAJECTORYFOLLOW = 1018;
34+
SPORT_API_ID_CONTINUOUSGAIT = 1019;
35+
SPORT_API_ID_CONTENT = 1020;
36+
SPORT_API_ID_WALLOW = 1021;
37+
SPORT_API_ID_DANCE1 = 1022;
38+
SPORT_API_ID_DANCE2 = 1023;
39+
SPORT_API_ID_GETBODYHEIGHT = 1024;
40+
SPORT_API_ID_GETFOOTRAISEHEIGHT = 1025;
41+
SPORT_API_ID_GETSPEEDLEVEL = 1026;
42+
SPORT_API_ID_SWITCHJOYSTICK = 1027;
43+
SPORT_API_ID_POSE = 1028;
44+
SPORT_API_ID_FRONTJUMP = 1031;
45+
SPORT_API_ID_ECONOMICGAIT = 1035;
46+
SPORT_API_ID_MOVETOPOS = 1036;
47+
SPORT_API_ID_SWITCHEULERMODE = 1037;
48+
SPORT_API_ID_SWITCHMOVEMODE = 1038;
49+
50+
51+
"""
52+
" error code
53+
"""
54+
# client side
55+
SPORT_ERR_CLIENT_POINT_PATH = 4101
56+
# server side
57+
SPORT_ERR_SERVER_OVERTIME = 4201
58+
SPORT_ERR_SERVER_NOT_INIT = 4202

0 commit comments

Comments
 (0)