MCPcopy Create free account
hub / github.com/ANYbotics/grid_map / fromMessage

Method fromMessage

grid_map_ros/src/GridMapRosConverter.cpp:38–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36}
37
38bool GridMapRosConverter::fromMessage(const grid_map_msgs::GridMap& message, grid_map::GridMap& gridMap, const std::vector<std::string>& layers, bool copyBasicLayers, bool copyAllNonBasicLayers)
39{
40 gridMap.setTimestamp(message.info.header.stamp.toNSec());
41 gridMap.setFrameId(message.info.header.frame_id);
42 gridMap.setGeometry(Length(message.info.length_x, message.info.length_y), message.info.resolution,
43 Position(message.info.pose.position.x, message.info.pose.position.y));
44
45 if (message.layers.size() != message.data.size()) {
46 ROS_ERROR("Different number of layers and data in grid map message.");
47 return false;
48 }
49
50 // Copy non-basic layers.
51 for (unsigned int i = 0u; i < message.layers.size(); ++i) {
52
53 // check if layer should be copied.
54 if (!copyAllNonBasicLayers && std::find(layers.begin(), layers.end(), message.layers[i]) == layers.end()) {
55 continue;
56 }
57
58 // TODO Could we use the data mapping (instead of copying) method here?
59 Matrix data;
60 if(!multiArrayMessageCopyToMatrixEigen(message.data[i], data)) {
61 return false;
62 }
63
64 // TODO Check if size is good. size_ << getRows(message.data[0]), getCols(message.data[0]);
65 gridMap.add(message.layers[i], data);
66 }
67
68 // Copy basic layers.
69 if (copyBasicLayers) {
70 gridMap.setBasicLayers(message.basic_layers);
71 }
72
73 gridMap.setStartIndex(Index(message.outer_start_index, message.inner_start_index));
74 return true;
75}
76
77bool GridMapRosConverter::fromMessage(const grid_map_msgs::GridMap& message, grid_map::GridMap& gridMap)
78{

Callers

nothing calls this directly

Calls 8

setGeometryMethod · 0.80
endMethod · 0.80
setBasicLayersMethod · 0.80
setTimestampMethod · 0.45
setFrameIdMethod · 0.45
addMethod · 0.45
setStartIndexMethod · 0.45

Tested by

no test coverage detected