13 #include <ros/console.h> 24 std::unique_ptr<udp::MulticastSender>(
new udp::MulticastSender(multicast_address, multicast_port));
31 env_data.SerializeToString(&buffer);
34 ROS_WARN_STREAM(
"Error sending vision protobuff message");
43 this->
multicast_sender->set_receiver_endpoint(multicast_address, multicast_port);
47 fira_message::sim_to_ref::Environment env_data;
48 fira_message::Frame* frame = env_data.mutable_frame();
51 env_data.set_step(p_field_state->
time_step);
54 fira_message::Ball* frame_ball = frame->mutable_ball();
63 fira_message::Robot* robot = frame->add_robots_yellow();
65 robot->set_robot_id(i);
67 robot->set_x(p_field_state->
yellow_team[i].position.x);
68 robot->set_y(p_field_state->
yellow_team[i].position.y);
69 robot->set_orientation(p_field_state->
yellow_team[i].angular_position);
71 robot->set_vx(p_field_state->
yellow_team[i].velocity.x);
72 robot->set_vy(p_field_state->
yellow_team[i].velocity.y);
73 robot->set_vorientation(p_field_state->
yellow_team[i].angular_velocity);
78 fira_message::Robot* robot = frame->add_robots_blue();
80 robot->set_robot_id(i);
82 robot->set_x(p_field_state->
blue_team[i].position.x);
83 robot->set_y(p_field_state->
blue_team[i].position.y);
84 robot->set_orientation(p_field_state->
blue_team[i].angular_position);
86 robot->set_vx(p_field_state->
blue_team[i].velocity.x);
87 robot->set_vy(p_field_state->
blue_team[i].velocity.y);
88 robot->set_vorientation(p_field_state->
blue_team[i].angular_velocity);
92 fira_message::Field* field = env_data.mutable_field();
EntityState ball
Field entities.
Data structure to hold the field state.
std::vector< EntityState > yellow_team
Vector2D velocity
Velocity in m/s.
void set_multicast_endpoint(const std::string multicast_address, const short multicast_port)
Set the multicast endpoint.
double x
Public attributes.
Vision data sender with UDP and protobuf.
Vector2D position
Position in meters.
VisionSender(const std::string multicast_address, const short multicast_port)
Construct a new Vision Sender object.
static fira_message::sim_to_ref::Environment field_state_to_env_pb_msg(FieldState *p_field_state)
Convert a FieldState object to a Environment protobuf message object.
Sender class using UDP in multicast mode.
std::vector< EntityState > blue_team
bool send(FieldState *p_field_state)
Send vision data with UDP and protobuf.
std::unique_ptr< udp::MulticastSender > multicast_sender
#define FIELD_WIDTH_M
Field and goal constants.