TraveSim Adapters  0.1
Protobuf adapters for TraveSim project
ros_side.hpp
Go to the documentation of this file.
1 /**
2  * @file ros_side.hpp
3  *
4  * @author Felipe Gomes de Melo <felipe.gomes@thunderatz.org>
5  * @author Lucas Haug <lucas.haug@thunderatz.org>
6  *
7  * @brief Collection of data converters between ROS and local formats
8  *
9  * @date 06/2021
10  *
11  * @copyright MIT License - Copyright (c) 2021 ThundeRatz
12  *
13  */
14 
15 #ifndef __CONVERTER_H__
16 #define __CONVERTER_H__
17 
18 #include <iostream>
19 
20 #include <geometry_msgs/Point.h>
21 #include <geometry_msgs/Vector3.h>
22 #include <gazebo_msgs/ModelState.h>
23 #include <gazebo_msgs/ModelStates.h>
24 
29 
30 #define DEFAULT_Z_VALUE_BALL 0.032
31 #define DEFAULT_Z_VALUE_ROBOT 0.012
32 
33 #define ROBOT_NAME(color, num) color "_team/robot_" + std::to_string(num)
34 
35 #define BALL_NAME "vss_ball"
36 
37 #define DEFAULT_ENTITY_NAME BALL_NAME
38 #define DEFAULT_REFERENCE_FRAME "world"
39 
40 namespace travesim {
41 namespace converter {
42 /**
43  * @brief Function to convert geometry_msgs::Point to travesim::Vector2D
44  *
45  * @param point Data to be converted
46  * @return travesim::Vector2D Converted data
47  */
48 travesim::Vector2D Point_to_Vector2D(geometry_msgs::Point* point);
49 
50 /**
51  * @brief Function to convert geometry_msgs::Vector3 to travesim::Vector2D
52  *
53  * @param vector3 Data to be converted
54  * @return travesim::Vector2D Converted data
55  */
56 travesim::Vector2D Vector3_to_Vector2D(geometry_msgs::Vector3* vector3);
57 
58 /**
59  * @brief Function to convert gazebo_msgs::ModelState to travesim::EntityState
60  *
61  * @param model_state Data to be converted
62  * @return travesim::EntityState Converted data
63  */
64 travesim::EntityState ModelState_to_EntityState(gazebo_msgs::ModelState* model_state);
65 
66 /**
67  * @brief Function to convert gazebo_msgs::ModelState to travesim::RobotState
68  *
69  * @param model_state Data to be converted
70  * @param is_yellow True if the robot is from the yellow team, false otherwise
71  * @param id Id number of the robot
72  * @return travesim::RobotState Converte data
73  */
74 travesim::RobotState ModelState_to_RobotState(gazebo_msgs::ModelState* model_state, bool is_yellow = true, int id = 0);
75 
76 /**
77  * @brief Function to convert travesim::Vector2D to geometry_msgs::Vector3
78  *
79  * @param vector2d Data to be converted
80  * @return geometry_msgs::Vector3 Converted data
81  */
82 geometry_msgs::Vector3 Vector2D_to_Vector3(Vector2D* vector2d);
83 
84 /**
85  * @brief Function to convert travesim::Vector2D to geometry_msgs::Point
86  *
87  * @param vector2d Data to be converted
88  * @return geometry_msgs::Point Converted data
89  */
90 geometry_msgs::Point Vector2D_to_Point(Vector2D* vector2d, double z = DEFAULT_Z_VALUE_BALL);
91 
92 /**
93  * @brief Function to convert travesim::EntityState to gazebo_msgs::ModelState
94  *
95  * @param entity_state Data to be converted
96  * @return gazebo_msgs::ModelState Converted data
97  */
98 gazebo_msgs::ModelState EntityState_to_ModelState(EntityState* entity_state, double z = DEFAULT_Z_VALUE_BALL);
99 
100 /**
101  * @brief Function to convert travesim::RobotState to gazebo_msgs::ModelState
102  *
103  * @param entity_state Data to be converted
104  * @return gazebo_msgs::ModelState Converted data
105  */
106 gazebo_msgs::ModelState RobotState_to_ModelState(RobotState* robot_state, double z = DEFAULT_Z_VALUE_ROBOT);
107 
108 /**
109  * @brief Function to convert gazebo_msgs::ModelStates to travesim::FieldState
110  *
111  * @param model_states Data to be converted
112  * @param teams_formation Number of robots per team
113  *
114  * @return travesim::FieldState Converted data
115  */
116 travesim::FieldState ModelStates_to_FieldState(gazebo_msgs::ModelStates::ConstPtr model_states,
117  TeamsFormation teams_formation);
118 } // namespace converter
119 } // namespace travesim
120 
121 #endif // __CONVERTER_H__
Data structure to hold the field state.
Definition: field_state.hpp:25
Entity state data structure.
travesim::Vector2D Vector3_to_Vector2D(geometry_msgs::Vector3 *vector3)
Function to convert geometry_msgs::Vector3 to travesim::Vector2D.
Definition: ros_side.cpp:34
Common constants and types for the data structures.
Data structure to hold a two dimensional vector.
travesim::FieldState ModelStates_to_FieldState(gazebo_msgs::ModelStates::ConstPtr model_states, TeamsFormation teams_formation)
Function to convert gazebo_msgs::ModelStates to travesim::FieldState.
Definition: ros_side.cpp:117
Robot state data structure.
Data structure to hold the state of a robot in the simulation.
Definition: robot_state.hpp:23
geometry_msgs::Vector3 Vector2D_to_Vector3(Vector2D *vector2d)
Function to convert travesim::Vector2D to geometry_msgs::Vector3.
Definition: ros_side.cpp:43
travesim::EntityState ModelState_to_EntityState(gazebo_msgs::ModelState *model_state)
Function to convert gazebo_msgs::ModelState to travesim::EntityState.
Definition: ros_side.cpp:63
travesim::RobotState ModelState_to_RobotState(gazebo_msgs::ModelState *model_state, bool is_yellow=true, int id=0)
Function to convert gazebo_msgs::ModelState to travesim::RobotState.
Definition: ros_side.cpp:78
travesim::Vector2D Point_to_Vector2D(geometry_msgs::Point *point)
Function to convert geometry_msgs::Point to travesim::Vector2D.
Definition: ros_side.cpp:25
gazebo_msgs::ModelState RobotState_to_ModelState(RobotState *robot_state, double z=DEFAULT_Z_VALUE_ROBOT)
Function to convert travesim::RobotState to gazebo_msgs::ModelState.
Definition: ros_side.cpp:108
TeamsFormation
Formation of the teams.
Definition: data_common.hpp:40
geometry_msgs::Point Vector2D_to_Point(Vector2D *vector2d, double z=DEFAULT_Z_VALUE_BALL)
Function to convert travesim::Vector2D to geometry_msgs::Point.
Definition: ros_side.cpp:53
Data structure to hold the state of a entity in the simulation.
#define DEFAULT_Z_VALUE_BALL
Definition: ros_side.hpp:30
#define DEFAULT_Z_VALUE_ROBOT
Definition: ros_side.hpp:31
gazebo_msgs::ModelState EntityState_to_ModelState(EntityState *entity_state, double z=DEFAULT_Z_VALUE_BALL)
Function to convert travesim::EntityState to gazebo_msgs::ModelState.
Definition: ros_side.cpp:86