15 #include <unordered_map> 19 #define quaternion_to_theta(qw, qx, qy, qz) atan2(2 * (qw * qz + qx * qy), 1 - 2 * (qy * qy + qz * qz)) 21 typedef std::unordered_map<std::string, travesim::EntityState*>
lookup_table_t;
37 retval.
x = vector3->x;
38 retval.
y = vector3->y;
44 geometry_msgs::Vector3 retval;
46 retval.x = vector2d->
x;
47 retval.y = vector2d->
y;
54 geometry_msgs::Point retval;
56 retval.x = vector2d->
x;
57 retval.y = vector2d->
y;
69 model_state->pose.orientation.y, model_state->pose.orientation.z);
87 gazebo_msgs::ModelState retval;
95 retval.pose.orientation.x = 0;
96 retval.pose.orientation.y = 0;
101 retval.twist.angular.x = 0;
102 retval.twist.angular.y = 0;
111 std::string base_name = robot_state->
is_yellow ?
"yellow_team/robot_" :
"blue_team/robot_";
112 retval.model_name = base_name.append(std::to_string(robot_state->
id));
118 static FieldState field_state(teams_formation);
133 uint32_t size = model_states->name.size();
135 for (uint32_t i = 0; i < size; i++) {
136 EntityState* entity_state_ptr = lookup_table[model_states->name[i]];
138 if (entity_state_ptr !=
nullptr) {
139 gazebo_msgs::ModelState model_state;
141 model_state.pose = model_states->pose[i];
142 model_state.twist = model_states->twist[i];
143 model_state.model_name = model_states->name[i];
EntityState ball
Field entities.
Data structure to hold the field state.
std::vector< EntityState > yellow_team
double angular_velocity
Angular velocity in rad/s.
#define quaternion_to_theta(qw, qx, qy, qz)
std::unordered_map< std::string, travesim::EntityState * > lookup_table_t
travesim::Vector2D Vector3_to_Vector2D(geometry_msgs::Vector3 *vector3)
Function to convert geometry_msgs::Vector3 to travesim::Vector2D.
Vector2D velocity
Velocity in m/s.
Data structure to hold a two dimensional vector.
double x
Public attributes.
travesim::FieldState ModelStates_to_FieldState(gazebo_msgs::ModelStates::ConstPtr model_states, TeamsFormation teams_formation)
Function to convert gazebo_msgs::ModelStates to travesim::FieldState.
Collection of data converters between ROS and local formats.
#define DEFAULT_REFERENCE_FRAME
Data structure to hold the state of a robot in the simulation.
double angular_position
Angular position in radinans.
Vector2D position
Position in meters.
geometry_msgs::Vector3 Vector2D_to_Vector3(Vector2D *vector2d)
Function to convert travesim::Vector2D to geometry_msgs::Vector3.
travesim::EntityState ModelState_to_EntityState(gazebo_msgs::ModelState *model_state)
Function to convert gazebo_msgs::ModelState to travesim::EntityState.
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.
#define ROBOT_NAME(color, num)
travesim::Vector2D Point_to_Vector2D(geometry_msgs::Point *point)
Function to convert geometry_msgs::Point to travesim::Vector2D.
gazebo_msgs::ModelState RobotState_to_ModelState(RobotState *robot_state, double z=DEFAULT_Z_VALUE_ROBOT)
Function to convert travesim::RobotState to gazebo_msgs::ModelState.
TeamsFormation
Formation of the teams.
bool is_yellow
Public attributes.
std::vector< EntityState > blue_team
geometry_msgs::Point Vector2D_to_Point(Vector2D *vector2d, double z=DEFAULT_Z_VALUE_BALL)
Function to convert travesim::Vector2D to geometry_msgs::Point.
#define DEFAULT_ENTITY_NAME
Data structure to hold the state of a entity in the simulation.
gazebo_msgs::ModelState EntityState_to_ModelState(EntityState *entity_state, double z=DEFAULT_Z_VALUE_BALL)
Function to convert travesim::EntityState to gazebo_msgs::ModelState.