From c9e5c08ef874b7052e7236999a13ca2b40b74c9d Mon Sep 17 00:00:00 2001 From: Gary Bey Date: Fri, 19 Aug 2022 02:15:25 +0800 Subject: [PATCH] Added README.md for dummy_map_server (#572) * :heavy_plus_sign: :book: Added README.md for dummy_map_server ROS2 package. Verified instructions. Signed-off-by: Bey Hao Yun * Update dummy_robot/dummy_map_server/README.md Decomposed sentence into smaller sizes. Co-authored-by: Audrow Nash Signed-off-by: Bey Hao Yun * Update dummy_robot/dummy_map_server/README.md Reworded. Co-authored-by: Audrow Nash Signed-off-by: Bey Hao Yun * :hammer: Modified use of --packages-select to --packages-up-to based on feedback. Signed-off-by: Bey Hao Yun * :hammer: Modified README.md further to adhere to feedback given. Signed-off-by: Bey Hao Yun * :hammer: Modified README.md commands to adhere to higher cross-platform compatibility. Signed-off-by: Bey Hao Yun * Update dummy_robot/dummy_map_server/README.md Co-authored-by: Audrow Nash Signed-off-by: Bey Hao Yun Signed-off-by: Bey Hao Yun Co-authored-by: Audrow Nash --- dummy_robot/dummy_map_server/README.md | 90 ++++++++++++++++++ .../dummy_map_server/img/occupancy_grid.png | Bin 0 -> 33925 bytes 2 files changed, 90 insertions(+) create mode 100644 dummy_robot/dummy_map_server/README.md create mode 100644 dummy_robot/dummy_map_server/img/occupancy_grid.png diff --git a/dummy_robot/dummy_map_server/README.md b/dummy_robot/dummy_map_server/README.md new file mode 100644 index 000000000..fad59911a --- /dev/null +++ b/dummy_robot/dummy_map_server/README.md @@ -0,0 +1,90 @@ +## **What Is This?** + +This demo creates and runs a ROS2 **node**, `dummy_map_server`, that publishes `nav_msgs::msg::OccupancyGrid` on a ROS2 publisher topic, `/map`. + +**dummy_map_server** is also a dependency of **dummy_robot_bringup**. + +Please refer to [dummy_robot_bringup](https://github.com/ros2/demos/tree/rolling/dummy_robot/dummy_robot_bringup). + +## **What Is An Occupancy Grid?** + +An occupancy grid can be thought of as a map of an environment that has been divided into grid cells, where each grid cell is either occupied or unoccupied (in advanced applications, they can have other states, too). + +This map of occupied and unoccupied grid cells can be used to help a robot navigate a space, for example to drive through a room with furniture. + +If a robot is navigating a new room, however, there may also be grid cells that are marked as unknown, until that area is explored. + +These different states are often stored in the occupancy grid as integers, for example: + +:warning: Note that the integer within a cell is application-specific and can go beyond `-1` and `1`. + +![](img/occupancy_grid.png) +`-1` represents **unknown** spaces. +`0` represents **unoccupied** spaces. +`1` represents **occupied** spaces. + +The illustration above shows an example of an occupancy grid where the **bolded integer** indicates the position of a robot with a lidar sensor mounted on top of it and the red-colored grid cells indicate an obstacle such as a wall. + +## **Build** + +```bash +colcon build --packages-up-to dummy_map_server +``` + +## **Run** + +```bash +ros2 run dummy_map_server dummy_map_server +``` + +## **Verify** + +A similar terminal output should be seen after running `ros2 run dummy_map_server` and the following commands: + +```bash +ros2 topic echo /map +``` + + +```bash +# Terminal Output +header: + stamp: + sec: 1658559453 + nanosec: 308405010 + frame_id: world +info: + map_load_time: + sec: 0 + nanosec: 0 + resolution: 0.10000000149011612 + width: 100 + height: 100 + origin: + position: + x: -5.0 + y: -5.0 + z: 0.0 + orientation: + x: 0.0 + y: 0.0 + z: 0.0 + w: 1.0 +data: +- -1 +- -1 +- -1 +- -1 +- -1 +- -1 +- -1 +- -1 +- -1 +- '...' +--- + +``` + +## **References** + +- `nav_msgs::msg::OccupancyGrid` Message Format: https://github.com/ros2/common_interfaces/blob/rolling/nav_msgs/msg/OccupancyGrid.msg diff --git a/dummy_robot/dummy_map_server/img/occupancy_grid.png b/dummy_robot/dummy_map_server/img/occupancy_grid.png new file mode 100644 index 0000000000000000000000000000000000000000..4a218c854456efe7cd8943c381df5abeb81df280 GIT binary patch literal 33925 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 D%LtoG literal 0 HcmV?d00001