<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 10.3 costmap costmap是Navigation Stack里的代價地圖,它其實也是move_base插件,本質上是C++的動態鏈接庫,用過catkin_make之后生成.so文件,然后move_base在啟動時會通過動態加載的方式調用其中的函數。 ## 10.3.1 代價地圖 之前我們在介紹SLAM時講過ROS里的地圖的概念,地圖就是`/map`這個topic,它也是一張圖片,一個像素代表了實際的一塊面積,用灰度值來表示障礙物存在的可能性。然而在實際的導航任務中,光有一張地圖是不夠的,機器人需要能動態的把障礙物加入,或者清楚已經不存在的障礙物,有些時候還要在地圖上標出危險區域,為路徑規劃提供更有用的信息。 因為導航的需要,所以出現了代價地圖。你可以將代價地圖理解為,在`/map`之上新加的另外幾層地圖,不僅包含了原始地圖信息,還加入了其他輔助信息。 代價地圖有一下特點: 1.首先,代價地圖有兩張,一張是`local_costmap`,一張是`global_costmap`,分別用于局部路徑規劃器和全局路徑規劃器,而這兩個costmap都默認并且只能選擇`costmap_2d`作為插件。 2. 無論是`local_costmap`還是`global_costmap`,都可以配置他們的Layer,可以選擇多個層次。costmap的Layer包括以下幾種: * Static Map Layer:靜態地圖層,通常都是SLAM建立完成的靜態地圖。 * Obstacle Map Layer:障礙地圖層,用于動態的記錄傳感器感知到的障礙物信息。 * Inflation Layer:膨脹層,在以上兩層地圖上進行膨脹(向外擴張),以避免機器人的外殼會撞上障礙物。 * Other Layers:你還可以通過插件的形式自己實現costmap,目前已有`Social Costmap Layer`、`Range Sensor Layer`等開源插件。 可以同時選擇多個Layer并存。 ## 10.3.2 地圖插件的選擇 與9.2節中move_base插件的配置類似,costmap配置也同樣用yaml 來保存,其本質是維護在參數服務器上。由于costmap通常分為local和global的coastmap,我們習慣把兩個代價地圖分開。以`ROS-Academy-for-Beginners`為例,配置寫在了param文件夾下的`global_costmap_params.yaml`和`local_costmap_params.yaml`里。 global_costmap_params.yaml: ```xml global_costmap: global_frame: /map robot_base_frame: /base_footprint update_frequency: 2.0 publish_frequency: 0.5 static_map: true rolling_window: false transform_tolerance: 0.5 plugins: - {name: static_layer, type: "costmap_2d::StaticLayer"} - {name: voxel_layer, type: "costmap_2d::VoxelLayer"} - {name: inflation_layer, type: "costmap_2d::InflationLayer"} ``` local_costmap_params.yaml: ```xml local_costmap: global_frame: /map robot_base_frame: /base_footprint update_frequency: 5.0 publish_frequency: 2.0 static_map: false rolling_window: true width: 4.0 height: 4.0 resolution: 0.05 origin_x: 5.0 origin_y: 0 transform_tolerance: 0.5 plugins: - {name: voxel_layer, type: "costmap_2d::VoxelLayer"} - {name: inflation_layer, type: "costmap_2d::InflationLayer"} ``` 在`plugins`一項中可以設置Layer的種類,可以多層疊加。在本例中,考慮到局部地圖并不需要靜態地圖,而只考慮傳感器感知到的障礙物,因此可以刪去StaticLayer。
                  <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>

                              哎呀哎呀视频在线观看