MRPT
2.0.4
range.cpp
Go to the documentation of this file.
1
/* +------------------------------------------------------------------------+
2
| Mobile Robot Programming Toolkit (MRPT) |
3
| https://www.mrpt.org/ |
4
| |
5
| Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6
| See: https://www.mrpt.org/Authors - All rights reserved. |
7
| Released under BSD License. See: https://www.mrpt.org/License |
8
+------------------------------------------------------------------------+ */
9
10
/*---------------------------------------------------------------
11
APPLICATION: mrpt_ros bridge
12
FILE: range.cpp
13
AUTHOR: Raghavender Sahdev <raghavendersahdev@gmail.com>
14
---------------------------------------------------------------*/
15
16
#include <
mrpt/ros1bridge/range.h
>
17
18
namespace
mrpt::ros1bridge
19
{
20
bool
fromROS
(
const
sensor_msgs::Range& msg,
mrpt::obs::CObservationRange
& obj)
21
{
22
obj.
minSensorDistance
= msg.min_range;
23
obj.
maxSensorDistance
= msg.max_range;
24
obj.
sensorConeApperture
= msg.field_of_view;
25
26
/// again this is amibiguous as can't be certain of number of measurement
27
/// from corresponding ROS message
28
obj.
sensedData
.at(0).sensedDistance = msg.range;
29
return
true
;
30
}
31
32
bool
toROS
(
33
const
mrpt::obs::CObservationRange
& obj,
const
std_msgs::Header& msg_header,
34
sensor_msgs::Range* msg)
35
{
36
long
num_range = obj.
sensedData
.size();
37
38
// 1) sensor_msgs::Range:: header
39
for
(
long
i = 0; i < num_range; i++) msg[i].
header
= msg_header;
40
41
// 2) sensor_msg::Range parameters
42
for
(
long
i = 0; i < num_range; i++)
43
{
44
msg[i].max_range = obj.
maxSensorDistance
;
45
msg[i].min_range = obj.
minSensorDistance
;
46
msg[i].field_of_view = obj.
sensorConeApperture
;
47
}
48
49
/// following part needs to be double checked, it looks incorrect
50
/// ROS has single number float for range, MRPT has a list of
51
/// sensedDistances
52
for
(
long
i = 0; i < num_range; i++)
53
msg[i].range = obj.
sensedData
.at(i).sensedDistance;
54
55
/// currently the following are not available in MRPT for corresponding
56
/// range ROS message NO corresponding value for MRPT radiation_type at
57
/// http://mrpt.ual.es/reference/devel/_c_observation_range_8h_source.html
58
// msg.radiation_type
59
return
true
;
60
}
61
62
}
// namespace mrpt::ros1bridge
63
64
/// Range ROS message
65
/*
66
uint8 ULTRASOUND=0
67
uint8 INFRARED=1
68
std_msgs/Header header
69
uint8 radiation_type
70
float32 field_of_view
71
float32 min_range
72
float32 max_range
73
float32 range
74
*/
mrpt::obs::gnss::header
nv_oem6_header_t header
Novatel frame: NV_OEM6_BESTPOS.
Definition:
gnss_messages_novatel.h:246
mrpt::obs::CObservationRange::sensedData
TMeasurementList sensedData
All the measurements.
Definition:
CObservationRange.h:65
mrpt::obs::CObservationRange::sensorConeApperture
float sensorConeApperture
Cone aperture of each ultrasonic beam, in radians.
Definition:
CObservationRange.h:40
range.h
mrpt::obs::CObservationRange::minSensorDistance
float minSensorDistance
The data members.
Definition:
CObservationRange.h:36
mrpt::obs::CObservationRange
Declares a class derived from "CObservation" that encapsules a single range measurement,...
Definition:
CObservationRange.h:27
mrpt::obs::CObservationRange::maxSensorDistance
float maxSensorDistance
Definition:
CObservationRange.h:37
mrpt::ros1bridge::fromROS
bool fromROS(const sensor_msgs::NavSatFix &msg, mrpt::obs::CObservationGPS &obj)
Convert sensor_msgs/NavSatFix -> mrpt::obs::CObservationGPS.
Definition:
gps.cpp:20
mrpt::ros1bridge
ROS message: http://docs.ros.org/api/sensor_msgs/html/msg/NavSatFix.html MRPT message: https://github...
Definition:
gps.h:28
mrpt::ros1bridge::toROS
bool toROS(const mrpt::obs::CObservationGPS &obj, const std_msgs::Header &msg_header, sensor_msgs::NavSatFix &msg)
Convert mrpt::obs::CObservationGPS -> sensor_msgs/NavSatFix The user must supply the "msg_header" fie...
Definition:
gps.cpp:48
Page generated by
Doxygen 1.8.17
for MRPT 2.0.4 at Fri Jul 17 08:43:33 UTC 2020