16 #include <geometry_msgs/Pose.h> 17 #include <mrpt/obs/CObservationBearingRange.h> 18 #include <mrpt/ros1bridge/pose.h> 19 #include <mrpt/ros1bridge/time.h> 20 #include <mrpt_msgs/ObservationRangeBearing.h> 24 const mrpt_msgs::ObservationRangeBearing& _msg,
25 const mrpt::poses::CPose3D& _pose,
26 mrpt::obs::CObservationBearingRange& _obj)
31 mrpt::poses::CPose3D cpose_obj;
35 _obj.maxSensorDistance = _msg.max_sensor_distance;
36 _obj.minSensorDistance = _msg.min_sensor_distance;
37 _obj.sensor_std_yaw = _msg.sensor_std_yaw;
38 _obj.sensor_std_pitch = _msg.sensor_std_pitch;
39 _obj.sensor_std_range = _msg.sensor_std_range;
48 _obj.setSensorPose(_pose);
51 ASSERT_(_msg.sensed_data.size() >= 1);
52 const size_t N = _msg.sensed_data.size();
54 _obj.sensedData.resize(N);
56 for (std::size_t i_mrpt = 0; i_mrpt < N; i_mrpt++)
58 _obj.sensedData[i_mrpt].range = _msg.sensed_data[i_mrpt].range;
59 _obj.sensedData[i_mrpt].landmarkID = _msg.sensed_data[i_mrpt].id;
60 _obj.sensedData[i_mrpt].yaw = _msg.sensed_data[i_mrpt].yaw;
61 _obj.sensedData[i_mrpt].pitch = _msg.sensed_data[i_mrpt].pitch;
67 const mrpt::obs::CObservationBearingRange& _obj,
68 mrpt_msgs::ObservationRangeBearing& _msg)
72 _msg.sensor_pose_on_robot = mrpt::ros1bridge::toROS_Pose(_obj.sensorPose());
74 _msg.max_sensor_distance = _obj.maxSensorDistance;
75 _msg.min_sensor_distance = _obj.minSensorDistance;
76 _msg.sensor_std_yaw = _obj.sensor_std_yaw;
77 _msg.sensor_std_pitch = _obj.sensor_std_pitch;
78 _msg.sensor_std_range = _obj.sensor_std_range;
80 ASSERT_(_obj.sensedData.size() >= 1);
81 const size_t N = _obj.sensedData.size();
83 _msg.sensed_data.resize(N);
85 for (std::size_t i_msg = 0; i_msg < N; i_msg++)
87 _msg.sensed_data[i_msg].range = _obj.sensedData[i_msg].range;
88 _msg.sensed_data[i_msg].id = _obj.sensedData[i_msg].landmarkID;
89 _msg.sensed_data[i_msg].yaw = _obj.sensedData[i_msg].yaw;
90 _msg.sensed_data[i_msg].pitch = _obj.sensedData[i_msg].pitch;
96 const mrpt::obs::CObservationBearingRange& _obj,
97 mrpt_msgs::ObservationRangeBearing& _msg, geometry_msgs::Pose& sensorPose)
100 sensorPose = mrpt::ros1bridge::toROS_Pose(_obj.sensorPose());
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)