10 #include <geometry_msgs/Pose.h> 11 #include <mrpt/obs/CObservationBeaconRanges.h> 12 #include <mrpt/ros1bridge/pose.h> 13 #include <mrpt/ros1bridge/time.h> 14 #include <mrpt_msgs/ObservationRangeBeacon.h> 23 const mrpt_msgs::ObservationRangeBeacon& _msg,
24 const mrpt::poses::CPose3D& _pose, CObservationBeaconRanges& _obj)
27 mrpt::poses::CPose3D cpose_obj;
29 _obj.stdError = _msg.sensor_std_range;
30 _obj.sensorLabel = _msg.header.frame_id;
31 _obj.maxSensorDistance = _msg.max_sensor_distance;
32 _obj.minSensorDistance = _msg.min_sensor_distance;
37 _obj.setSensorPose(cpose_obj);
41 _obj.setSensorPose(_pose);
44 ASSERT_(_msg.sensed_data.size() >= 1);
45 const size_t N = _msg.sensed_data.size();
47 _obj.sensedData.resize(N);
49 for (std::size_t i_mrpt = 0; i_mrpt < N; i_mrpt++)
51 _obj.sensedData[i_mrpt].sensedDistance = _msg.sensed_data[i_mrpt].range;
52 _obj.sensedData[i_mrpt].beaconID = _msg.sensed_data[i_mrpt].id;
58 const CObservationBeaconRanges& _obj,
59 mrpt_msgs::ObservationRangeBeacon& _msg)
61 mrpt::poses::CPose3D cpose_obj;
64 _obj.getSensorPose(cpose_obj);
65 _msg.sensor_pose_on_robot = mrpt::ros1bridge::toROS_Pose(cpose_obj);
67 _msg.sensor_std_range = _obj.stdError;
68 _msg.header.frame_id = _obj.sensorLabel;
69 _msg.max_sensor_distance = _obj.maxSensorDistance;
70 _msg.min_sensor_distance = _obj.minSensorDistance;
72 ASSERT_(_obj.sensedData.size() >= 1);
73 const size_t N = _obj.sensedData.size();
75 _msg.sensed_data.resize(N);
77 for (std::size_t i_msg = 0; i_msg < N; i_msg++)
79 _msg.sensed_data[i_msg].range = _obj.sensedData[i_msg].sensedDistance;
80 _msg.sensed_data[i_msg].id = _obj.sensedData[i_msg].beaconID;
86 const CObservationBeaconRanges& _obj,
87 mrpt_msgs::ObservationRangeBeacon& _msg, geometry_msgs::Pose& _pose)
90 mrpt::poses::CPose3D pose;
91 _obj.getSensorPose(pose);
92 _pose = mrpt::ros1bridge::toROS_Pose(pose);
bool toROS(const mrpt::obs::CObservationBeaconRanges &_obj, mrpt_msgs::ObservationRangeBeacon &_msg)
bool fromROS(const mrpt_msgs::ObservationRangeBeacon &_msg, const mrpt::poses::CPose3D &_pose, mrpt::obs::CObservationBeaconRanges &_obj)