![]() ![]() 00058 geometry_msgs/Pose origin 00059 = 00060 MSG: geometry_msgs/Pose 00061 # A representation of pose in free space, composed of postion and orientation. This is the real-world pose of the 00057 # cell (0,0) in the map. 00031 # 00032 # sequence ID: consecutively increasing ID 00033 uint4 #Two-integer timestamp that is expressed as: 00035 # * cs: seconds (stamp_secs) since epoch 00036 # * stamp.nsecs: nanoseconds since stamp_secs 00037 # time-handling sugar is provided by the client library 00038 time stamp 00039 #Frame this data is associated with 00040 # 0: no frame 00041 # 1: global frame 00042 string frame_id 00043 00044 = 00045 MSG: nav_msgs/MapMetaData 00046 # This hold basic information about the characterists of the OccupancyGrid 00047 00048 # The time at which the map was loaded 00049 time map_load_time 00050 # The map resolution 00051 float32 resolution 00052 # Map width 00053 uint32 width 00054 # Map height 00055 uint32 height 00056 # The origin of the map. 00029 # This is generally used to communicate timestamped data 00030 # in a particular coordinate frame. 00024 int8 data 00025 00026 = 00027 MSG: std_msgs/Header 00028 # Standard metadata for higher-level stamped data types. Occupancy 00023 # probabilities are in the range. 00016 00017 Header header 00018 00019 #MetaData for the map 00020 MapMetaData info 00021 00022 # The map data, in row-major order, starting with (0,0). Do not edit.""" 00002 import ssageĠ0010 class OccupancyGrid():Ġ0011 _md5sum = "3381f2d731d4076ec5c71b0759edbe4e" 00012 _type = "nav_msgs/OccupancyGrid" 00013 _has_header = True #flag to mark the presence of a Header object 00014 _full_text = """# This represents a 2-D grid map, in which each cell represents the probability of 00015 # occupancy. by the LIDAR, ultrasonic sensor, or some other object detection sensor) would be marked -1.00001 """autogenerated by genmsg_py from OccupancyGrid.msg. The number is often 0 (free space) to 100 (100% likely occupied). In an occupancy grid map, each cell is marked with a number that indicates the likelihood the cell contains an object. Thus, for a 0.1 resolution grid map, a robot that reports its position as (3.5, 4.3) corresponds to a grid map location of (35, 43). What would the corresponding location be on the grid map? On the grid cell, this location would correspond to cell (x=3, y=4) because the grid map is 1 meter resolution.īut what if we wanted to change the map resolution to 0.1 meter spacing between each grid cell? Let’s suppose the robot reported its location as (3.5, 4.3). For example, let’s say a robot’s location in the real world is recorded as (3.5, 4.3). One other thing we need to keep in mind is that I assumed the map above has 1 meter spacing between each grid cell. ![]() Knowing what part of a factory floor is open space and what part of a factory floor contains obstacles helps a robot properly plan the shortest, collision-free path from one point to another. A robot’s position in the environment at any given time is relative to the corner of the map (x=0, y=0). We can use a grid map to abstractly represent any indoor environment, including a house, apartment, and office. However, open factory floor is located at (x=3, y=3). ![]() For example, we can see in the image above that a shelf is located at (x=6, y=8). The cool thing about a grid map is that we can determine what is in each cell by looking up the coordinate. An overhead view of a factory floor represented abstractly as a grid map with 1 meter x 1 meter cells.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |