8 #include <gtest/gtest.h> 9 #include <mrpt/ros1bridge/map.h> 10 #define __STDC_FORMAT_MACROS 13 #include <nav_msgs/OccupancyGrid.h> 16 #include <mrpt/version.h> 17 #include <mrpt/maps/COccupancyGridMap2D.h> 18 using mrpt::maps::COccupancyGridMap2D;
23 msg.info.height = 500;
24 msg.info.resolution = 0.1;
25 msg.info.origin.position.x = rand() % 10 - 5;
26 msg.info.origin.position.y = rand() % 10 - 5;
27 msg.info.origin.position.z = 0;
29 msg.info.origin.orientation.x = 0;
30 msg.info.origin.orientation.y = 0;
31 msg.info.origin.orientation.z = 0;
32 msg.info.origin.orientation.w = 1;
34 msg.data.resize(msg.info.width * msg.info.height, -1);
39 nav_msgs::OccupancyGrid srcRos;
40 COccupancyGridMap2D desMrpt;
44 srcRos.info.origin.orientation.x = 1;
45 EXPECT_FALSE(mrpt::ros1bridge::fromROS(srcRos, desMrpt));
47 srcRos.info.origin.orientation.x = 0;
48 EXPECT_TRUE(mrpt::ros1bridge::fromROS(srcRos, desMrpt));
50 EXPECT_EQ(srcRos.info.width, desMrpt.getSizeX());
51 EXPECT_EQ(srcRos.info.height, desMrpt.getSizeY());
52 EXPECT_EQ(srcRos.info.resolution, desMrpt.getResolution());
53 for (uint32_t h = 0; h < srcRos.info.width; h++)
55 for (uint32_t w = 0; w < srcRos.info.width; w++)
63 TEST(Map, check_ros2mrpt_and_back)
65 nav_msgs::OccupancyGrid srcRos;
66 COccupancyGridMap2D desMrpt;
67 nav_msgs::OccupancyGrid desRos;
71 ASSERT_TRUE(mrpt::ros1bridge::fromROS(srcRos, desMrpt));
72 ASSERT_TRUE(mrpt::ros1bridge::toROS(desMrpt, desRos, desRos.header));
73 for (uint32_t h = 0; h < srcRos.info.width; h++)
75 for (uint32_t w = 0; w < srcRos.info.width; w++)
78 desRos.data[h * srcRos.info.width + h],
83 for (
int i = 0; i <= 100; i++)
87 EXPECT_TRUE(mrpt::ros1bridge::fromROS(srcRos, desMrpt));
88 EXPECT_TRUE(mrpt::ros1bridge::toROS(desMrpt, desRos, desRos.header));
89 for (
int i = 0; i <= 100; i++)
93 EXPECT_NEAR(1 - ((
float)i) / 100.0, desMrpt.getCell(i, 0), 0.03)
95 EXPECT_NEAR(srcRos.data[i], desRos.data[i], 1) <<
"ros to mprt to ros";
#define EXPECT_NEAR(a, b, prec)
#define EXPECT_FALSE(args)
TEST(Map, basicTestHeader)
void getEmptyRosMsg(nav_msgs::OccupancyGrid &msg)
#define EXPECT_TRUE(args)