walter
utils.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <cstdint>
4 #include <array>
5 #include <Eigen/Dense>
6 
7 #define CONCAT(a, b) CONCAT_INNER(a, b)
8 #define CONCAT_INNER(a, b) a ## b
9 #define Expects(x) boost::contract::check CONCAT(contract, __COUNTER__) = boost::contract::function().precondition([&] { BOOST_CONTRACT_ASSERT(x); })
10 #define Ensures(x) boost::contract::check CONCAT(contract, __COUNTER__) = boost::contract::function().postcondition([&] { BOOST_CONTRACT_ASSERT(x); })
11 #define sgn(x) (x > 0) - (x < 0)
12 
13 struct Pose {
14  Eigen::Vector2f position;
15  float angle;
16 };
17 
18 enum Level {
19  LOWLEVEL = 0xFF, //<! Control over individual motors
20  HIGHLEVEL = 0x00, //<! Higher level operations like walking and "forward"
21 };
22 
23 struct RobotInfo {
24  uint16_t id;
25  uint32_t sn; //<! Isn't documented.
26  uint8_t bandwidth;
27  uint8_t mode; //<! Isn't documented.
28 };
29 
30 struct State {
32  struct RobotInfo {
33  uint16_t id;
34  uint32_t sn; //<! Isn't documented.
35  uint8_t bandwidth;
36  uint8_t mode; //<! Isn't documented.
37  } bot_info;
38  struct PosInfo {
40  float side_speed;
41  float rotate_speed;
42  float updown_speed;
43  float body_height;
44  float forward_pos;
45  float side_pos;
46  } pos_info;
47 };
Definition: utils.h:23
Definition: utils.h:20
Level level
Definition: utils.h:31
float side_speed
Definition: utils.h:40
float forward_pos
Front/rear displacement integrated from speed info on the robot.
Definition: utils.h:44
Level
Definition: utils.h:18
float body_height
Definition: utils.h:43
float updown_speed
Definition: utils.h:42
uint8_t mode
Definition: utils.h:27
uint16_t id
Definition: utils.h:33
uint16_t id
Definition: utils.h:24
float angle
Definition: utils.h:15
Definition: utils.h:13
Definition: utils.h:32
uint8_t bandwidth
Definition: utils.h:26
Eigen::Vector2f position
Definition: utils.h:14
Definition: utils.h:38
uint8_t bandwidth
Definition: utils.h:35
uint32_t sn
Definition: utils.h:34
uint8_t mode
Definition: utils.h:36
Definition: utils.h:30
uint32_t sn
Definition: utils.h:25
Definition: utils.h:19
float side_pos
Left/right displacement integrated from speed info on the robot.
Definition: utils.h:45
float rotate_speed
Definition: utils.h:41
float forward_speed
Definition: utils.h:39