MCPcopy Create free account
hub / github.com/OpenPTrack/open_ptrack_v2 / main

Function main

opt_utils/apps/ros2udp_converter_pose.cpp:260–325  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

258}
259
260int
261main(int argc, char **argv)
262{
263 // Initialization:
264 ros::init(argc, argv, "ros2udp_converter");
265 ros::NodeHandle nh("~");
266
267 // Read input parameters:
268 nh.param("udp/port", udp_port, 21234);
269 nh.param("udp/hostip", hostip, std::string("127.0.0.1"));
270 nh.param("udp/buffer_length", udp_buffer_length, 1400); // jb fit in an ethernet MTU
271 nh.param("json/indent_size", json_indent_size, 0);
272 nh.param("json/newline", json_newline, false);
273 nh.param("json/spacing", json_spacing, false);
274 nh.param("json/use_tabs", json_use_tabs, false);
275 nh.param("json/heartbeat_interval", heartbeat_interval, 0.25);
276
277 // ROS subscriber:
278
279 message_filters::Subscriber<opt_msgs::SkeletonTrackArray>
280 skel_track_array_sub(nh, "/tracker/skeleton_tracks", 5);
281 message_filters::Subscriber<opt_msgs::StandardSkeletonTrackArray>
282 standard_skel_track_array_sub(nh, "/tracker/standard_skeleton_tracks", 5);
283 message_filters::Subscriber<opt_msgs::PoseRecognitionArray>
284 pose_recognition_array_sub(nh, "/recognizer/poses", 5);
285 // message_filters::TimeSynchronizer<opt_msgs::SkeletonTrackArray,
286 // opt_msgs::StandardSkeletonTrackArray, opt_msgs::PoseRecognitionArray>
287 // sync(skel_track_array_sub, standard_skel_track_array_sub,
288 // pose_recognition_array_sub, 5);
289 // sync.registerCallback(boost::bind(&synchronizedCallback, _1, _2, _3));
290 typedef message_filters::sync_policies::ApproximateTime
291 <opt_msgs::SkeletonTrackArray,
292 opt_msgs::StandardSkeletonTrackArray,
293 opt_msgs::PoseRecognitionArray> MySyncPolicy;
294 message_filters::Synchronizer<MySyncPolicy> sync_(MySyncPolicy(10),
295 skel_track_array_sub,
296 standard_skel_track_array_sub,
297 pose_recognition_array_sub);
298 sync_.registerCallback(boost::bind(&synchronizedCallback, _1, _2, _3));
299
300
301
302
303 // Initialize UDP parameters:
304 char buf[0];
305 udp_data.si_port_ = udp_port; // port
306 udp_data.si_retry_ = 1;
307 udp_data.si_num_byte_ = udp_buffer_length; // number of bytes to write (2048 -> about 30 tracks)
308 udp_data.pc_pck_ = buf; // buffer where the message is written
309 udp_data.si_timeout_ = 4;
310 udp_data.sj_addr_ = Inet_AtoN(hostip.c_str());
311
312 /// Create object for UDP messaging:
313 udp_messaging = open_ptrack::opt_utils::UDPMessaging(udp_data);
314
315 /// Create client socket:
316 udp_messaging.createSocketClientUDP(&udp_data);
317

Callers

nothing calls this directly

Calls 4

UDPMessagingClass · 0.85
createSocketClientUDPMethod · 0.80
closeSocketUDPMethod · 0.80
Inet_AtoNFunction · 0.70

Tested by

no test coverage detected