File tree Expand file tree Collapse file tree 3 files changed +115
-0
lines changed
include/unitree/robot/g1/arm Expand file tree Collapse file tree 3 files changed +115
-0
lines changed Original file line number Diff line number Diff line change
1
+ #pragma once
2
+
3
+ #include < unitree/common/json/jsonize.hpp>
4
+ #include < variant>
5
+
6
+ namespace unitree {
7
+ namespace robot {
8
+ namespace g1 {
9
+ /* service name*/
10
+ const std::string ARM_ACTION_SERVICE_NAME = " arm" ;
11
+
12
+ /* api version*/
13
+ const std::string ARM_ACTION_API_VERSION = " 1.0.0.14" ;
14
+
15
+ /* api id*/
16
+ const int32_t ROBOT_API_ID_ARM_ACTION_EXECUTE_ACTION = 7106 ;
17
+
18
+ class JsonizeArmActionCommand : public common ::Jsonize {
19
+ public:
20
+ JsonizeArmActionCommand () {}
21
+ ~JsonizeArmActionCommand () {}
22
+
23
+ void fromJson (common::JsonMap &json) {
24
+ common::FromJson (json[" data" ], action_id);
25
+ }
26
+
27
+ void toJson (common::JsonMap &json) const {
28
+ common::ToJson (action_id, json[" data" ]);
29
+ }
30
+
31
+ int32_t action_id;
32
+ };
33
+
34
+ } // namespace g1
35
+ } // namespace robot
36
+ } // namespace unitree
Original file line number Diff line number Diff line change
1
+ #pragma once
2
+
3
+ #include < unitree/robot/client/client.hpp>
4
+ #include < unitree/robot/go2/public/jsonize_type.hpp>
5
+ #include " g1_arm_action_api.hpp"
6
+
7
+ namespace unitree {
8
+ namespace robot {
9
+ namespace g1 {
10
+
11
+ /* *
12
+ * @brief Arm action client
13
+ *
14
+ * The arm action server provides some upper body actions.
15
+ * The controller is based on the `rt/arm_sdk` interface.
16
+ */
17
+ class G1ArmActionClient : public Client {
18
+ public:
19
+ G1ArmActionClient () : Client(ARM_ACTION_SERVICE_NAME, false ) {}
20
+ ~G1ArmActionClient () {}
21
+
22
+ /* Init*/
23
+ void Init () {
24
+ SetApiVersion (ARM_ACTION_API_VERSION);
25
+ UT_ROBOT_CLIENT_REG_API_NO_PROI (ROBOT_API_ID_ARM_ACTION_EXECUTE_ACTION);
26
+ }
27
+
28
+ /* API Call*/
29
+ int32_t ExecuteAction (int32_t action_id) {
30
+ std::string parameter, data;
31
+ JsonizeArmActionCommand json;
32
+
33
+ json.action_id = action_id;
34
+ parameter = common::ToJsonString (json);
35
+
36
+ return Call (ROBOT_API_ID_ARM_ACTION_EXECUTE_ACTION, parameter, data);
37
+ }
38
+
39
+ /* Action List*/
40
+ std::map<std::string, int32_t > action_map = {
41
+ {" release arm" , 99 },
42
+ {" two-hand kiss" , 11 },
43
+ {" left kiss" , 12 },
44
+ {" right kiss" , 12 },
45
+ {" hands up" , 15 },
46
+ {" clap" , 17 },
47
+ {" high five" , 18 },
48
+ {" hug" , 19 },
49
+ {" heart" , 20 },
50
+ {" right heart" , 21 },
51
+ {" reject" , 22 },
52
+ {" right hand up" , 23 },
53
+ {" x-ray" , 24 },
54
+ {" face wave" , 25 },
55
+ {" high wave" , 26 },
56
+ {" shake hand" , 27 },
57
+ };
58
+ };
59
+
60
+
61
+ } // namespace g1
62
+ } // namespace robot
63
+ } // namespace unitree
Original file line number Diff line number Diff line change
1
+ #pragma once
2
+
3
+ #include < unitree/common/decl.hpp>
4
+
5
+ namespace unitree {
6
+ namespace robot {
7
+ namespace g1 {
8
+
9
+ UT_DECL_ERR (UT_ROBOT_ARM_ACTION_ERR_ARMSDK, 7400 , " armsdk is occupied." )
10
+ UT_DECL_ERR (UT_ROBOT_ARM_ACTION_ERR_HOLDING, 7401 , " The arm is holding. Only release is allowed." )
11
+ UT_DECL_ERR (UT_ROBOT_ARM_ACTION_ERR_INVALID_ACTION_ID, 7402 , " Invalid action id." )
12
+ UT_DECL_ERR (UT_ROBOT_ARM_ACTION_ERR_INVALID_FSM_ID, 7404 , " Invalid fsm id." )
13
+
14
+ } // namespace g1
15
+ } // namespace robot
16
+ } // namespace unitree
You can’t perform that action at this time.
0 commit comments