19 #include <ros/console.h> 20 #include <gazebo_msgs/ModelStates.h> 27 int main(
int argc,
char** argv) {
28 ros::init(argc, argv,
"replacer_adapter");
34 int32_t receiver_port = replacer_configurer.
get_port();
35 std::string receiver_address = replacer_configurer.
get_address();
45 std::queue<std::shared_ptr<travesim::EntityState>> states_queue;
48 ROS_INFO_STREAM(
"Replacer adapter config:" << std::endl << replacer_configurer);
51 bool received_new_msg = replacer_receiver.
receive(&states_queue);
53 if (received_new_msg) {
56 while (!states_queue.empty()) {
57 std::shared_ptr<travesim::RobotState> state = std::dynamic_pointer_cast<travesim::RobotState>(
58 states_queue.front());
60 gazebo_msgs::ModelState gazebo_state_msg;
62 if (state !=
nullptr) {
68 model_state_vector.push_back(gazebo_state_msg);
77 model_state_vector.clear();
82 receiver_port = replacer_configurer.
get_port();
83 receiver_address = replacer_configurer.
get_address();
90 replacer_receiver.
reset();
93 ROS_INFO_STREAM(
"Replacer adapter config:" << std::endl << replacer_configurer);
bool send_command(simulation_command_t command)
Send command to gazebo.
Collection of data converters between ROS and local formats.
Replacer receiver with UDP and protobuf.
bool set_models_state(state_vector_t *model_states)
Set state of multiple entities.
std::vector< gazebo_msgs::ModelState > state_vector_t
Helper type to set the states of multiple entites at once.
Replacer receiver class with UDP and protobuf.
gazebo_msgs::ModelState RobotState_to_ModelState(RobotState *robot_state, double z=DEFAULT_Z_VALUE_ROBOT)
Function to convert travesim::RobotState to gazebo_msgs::ModelState.
void force_specific_source(bool force_specific_source)
Set wheter to enable any source or source specific multicast. True for specific source,...
int main(int argc, char **argv)
bool receive(std::queue< std::shared_ptr< EntityState >> *p_replament_queue)
Receive the replacement commands.
void reset(void)
Reset the receiver.
gazebo_msgs::ModelState EntityState_to_ModelState(EntityState *entity_state, double z=DEFAULT_Z_VALUE_BALL)
Function to convert travesim::EntityState to gazebo_msgs::ModelState.
void set_receiver_endpoint(const std::string receiver_address, const short receiver_port)
Set the receiver endpoint.