<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 9.1 地圖 ## 9.1.1 直觀印象 ROS中的地圖很好理解,就是一張普通的灰度圖像,通常為pgm格式。這張圖像上的黑色像素表示障礙物,白色像素表示可行區域,灰色是未探索的區域。如下圖所示, ![](https://img.kancloud.cn/91/a3/91a326bcac4b215ec8bce4f381090d49_390x389.png) 在SLAM建圖的過程中,你可以在RViz里看到一張地圖被逐漸建立起來的過程,類似于一塊塊拼圖被拼接成一張完整的地圖。這張地圖對于我們定位、路徑規劃都是不可缺少的信息。事實上,地圖在ROS中是以Topic的形式維護和呈現的,這個Topic名稱就叫做`/map`,它的消息類型是`nav_msgs/OccupancyGrid`。 ## 9.1.2 鎖存 由于`/map`中實際上存儲的是一張圖片,為了減少不必要的開銷,這個Topic往往采用鎖存(latched)的方式來發布。什么是鎖存?其實就是:地圖如果沒有更新,就維持著上次發布的內容不變,此時如果有新的訂閱者訂閱消息,這時只會收到一個`/map`的消息,也就是上次發布的消息;只有地圖更新了(比如SLAM又建出來新的地圖),這時`/map`才會發布新的內容。 鎖存器的作用就是,將發布者最后一次發布的消息保存下來,然后把它自動發送給后來的訂閱者。這種方式非常適合變動較慢、相對固定的數據(例如地圖),然后只發布一次,相比于同樣的消息不定的發布,鎖存的方式既可以減少通信中對帶寬的占用,也可以減少消息資源維護的開銷。 ## 9.1.3 nav_msgs/OccupancyGrid 然后我們來看一下地圖的OccupancyGrid類型是如何定義的,你可以通過`rosmsg show nav_msgs/OccupancyGrid`來查看消息,或者直接`rosed nav_msgs OccupancyGrid.msg`來查看srv文件。 ``` std_msgs/Header header #消息的報頭 uint32 seq time stamp string frame_id #地圖消息綁定在TF的哪個frame上,一般為map nav_msgs/MapMetaData info #地圖相關信息 time map_load_time #加載時間 float32 resolution #分辨率 單位:m/pixel uint32 width #寬 單位:pixel uint32 height #高 單位:pixel geometry_msgs/Pose origin #原點 geometry_msgs/Point position float64 x float64 y float64 z geometry_msgs/Quaternion orientation float64 x float64 y float64 z float64 w int8[] data #地圖具體信息 ``` 這個srv文件定義了/map話題的數據結構,包含了三個主要的部分:header, info和data。header是消息的報頭,保存了序號、時間戳、frame等通用信息,info是地圖的配置信息,它反映了地圖的屬性,data是真正存儲這張地圖數據的部分,它是一個可變長數組,`int8`后面加了`[]`,你可以理解為一個類似于vector的容器,它存儲的內容有width*height個int8型的數據,也就是這張地圖上每個像素。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看