<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SLAM+語音機器人DIY系列:(六)SLAM建圖與自主避障導航——2.google-cartographer機器人SLAM建圖

      溫馨提示 

      本篇文章已經收錄在我最新出版的書籍《機器人SLAM導航核心技術與實戰》,感興趣的讀者可以購買紙質書籍來進行更加深入和系統性的學習,購買鏈接如下:

      摘要                                            

      通過前面的基礎學習,本章進入最為激動的機器人自主導航的學習。在前面的學習鋪墊后,終于迎來了最大樂趣的時刻,就是賦予我們的miiboo機器人能自由行走的生命。本章將圍繞機器人SLAM建圖、導航避障、巡航、監控等內容展開。本章內容:

      1.在機器人上使用傳感器

      2.google-cartographer機器人SLAM建圖

      3.ros-navigation機器人自主避障導航

      4.多目標點導航及任務調度

      5.機器人巡航與現場監控



      2.google-cartographer機器人SLAM建圖

      主流的激光SLAM算法有hectorgmappingkartocartographer

      hector是一種結合了魯棒性較好的掃描匹方法2D_SLAM方法和使用慣性傳感系統的導航技術。傳感器的要求較高,高更新頻率小測量噪聲的激光掃描儀,不需要里程計。使空中無人機與地面小車在不平坦區域運行存在運用的可能性。作者利用現代激光雷達的高更新率和低距離測量噪聲,通過掃描匹配實時地對機器人運動進行估計。所以當只有低更新率的激光傳感器時,即便測距估計很精確,對該系統都會出現一定的問題。

      gmapping是一種基于粒子濾波的激光SLAM算法,它已經集成在ROS中,是移動機器人中使用最多的SLAM算法。基于粒子濾波的算法用許多加權粒子表示路徑的后驗概率,每個粒子都給出一個重要性因子。但是,它們通常需要大量的粒子才能獲得比較好的的結果,從而增加該算法的的計算復雜性。此外,與PF重采樣過程相關的粒子退化耗盡問題也降低了算法的準確性。

      karto是基于圖優化的SLAM算法,用高度優化和非迭代cholesky矩陣進行稀疏系統解耦作為解。圖優化方法利用圖的均值表示地圖,每個節點表示機器人軌跡的一個位置點和傳感器測量數據集,箭頭的指向的連接表示連續機器人位置點的運動,每個新節點加入,地圖就會依據空間中的節點箭頭的約束進行計算更新。路標landmark越多,內存需求越大,然而圖優化方式相比其他方法在大環境下制圖優勢更大。

      cartographergoogle開發的實時室內SLAM項目,cartographer采用基于google自家開發的ceres非線性優化的方法,cartographer的量點在于代碼規范與工程化,非常適合于商業應用和再開發。并且cartographer基于submap子圖構建全局地圖的思想,能有效的避免建圖過程中環境中移動物體的干擾。并且cartographer支持多傳感器數據(odometryIMULaserScan等)建圖,支持2D_SLAM3D_SLAM建圖。所以,我果斷采用cartographer來建圖,我的樹莓派3主板跑cartographer實時建圖是十分的流暢,這一點很欣慰^_^

      2.1.google-cartographer建圖算法原理分析

      cartographer采用的是主流的SLAM框架,也就是特征提取、閉環檢測、后端優化的三段式。由一定數量的LaserScan組成一個submap子圖,一系列的submap子圖構成了全局地圖。用LaserScan構建submap的短時間過程累計誤差不大,但是用submap構建全局地圖的長時間過程就會存在很大的累計誤差,所以需要利用閉環檢測來修正這些submap的位置,閉環檢測的基本單元是submap,閉環檢測采用scan_match策略。cartographer的重點內容就是融合多傳感器數據(odometryIMULaserScan等)的submap子圖創建以及用于閉環檢測的scan_match策略的實現。

      18cartographer算法系統框圖

      2.2.cartographer_ros安裝         

      我們直接參考google-cartographer官方教程安裝就行,官方教程分為cartographercartographer_ros,其實cartographer就是核心算法層、cartographer_ros是核心算法層的ros調用層。官方教程如下:

      https://google-cartographer.readthedocs.io/en/latest/index.html#

      https://google-cartographer-ros.readthedocs.io/en/latest/index.html#

      直接按照第二個鏈接cartographer_ros的安裝教程,就可將cartographer_roscartographer、以及各種依賴都安裝了。不過特別說明一點,為了解決從官網下載ceres-solver速度慢的問題,我將ceres-solver的下載地址換到了github源;我需要將官方教程中生成的src/.rosinstall替換成了自己的內容,如圖19。其余安裝過程和官方教程一模一樣。

      1)安裝編譯工具

      我來編譯cartographer_ros,我們需要用到wsoolrosdep。為了加快編譯,我們使用ninja工具進行編譯。

      sudo apt-get update
      sudo apt-get install -y python-wstool python-rosdep ninja-build

      2)創建存放cartographer_ros的專門工作空間

      mkdir catkin_ws_carto
      cd catkin_ws_carto
      wstool init src
      
      wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
      
      wstool update -t src

      特別說明,在執行wstool update -t src之前,需要將src/.rosinstall文件修改成以下內容,解決ceres-solver下載不了的問題,如圖19

      (圖19)我修改后的src/.rosinstall文件內容

      (3安裝依賴項

      安裝cartographer_ros的依賴項proto3deb包等。如果執行sudo rosdep init報錯,可以直接忽略。

      src/cartographer/scripts/install_proto3.sh
      sudo rosdep init
      rosdep update
      
      rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

      4)編譯和安裝

      上面的配置和依賴都完成后,就可以開始編譯和安裝cartographer_ros整個項目工程了。

      catkin_make_isolated --install --use-ninja

      特別提醒,以后對cartographer_ros中的配置文件或源碼有改動時,都需要執行這個編譯命令使修改生效。

      2.3.cartographer_ros使用        

      cartographer_ros整體代碼結構分析:

      最頂層的是cartographer_ros,作為rosj接口調用層,通過調用cartographer核心算法,訂閱多傳感器數據(/scan/imu/odom等),并發布地圖、機器人位置信息(/map/tf等);其次是cartographer,作為SLAM算法的核心實現,特征提取、子圖構建、閉環檢測、全局優化都在這里實現,其中優化過程需要調用ceres-solver非線性優化庫;最后是ceres-solver,是非線性優化庫,用于求解SLAM中的優化問題。

      20cartographer_ros整體代碼結構

      miiboo機器人上用cartographer_ros多傳感器建圖進行配置:

      經過前面對cartographer_ros進行安裝后,我們肯定迫不及待想在實際的miiboo機器人上使用cartographer_ros進行SLAM建圖了。為了最大限度的提高SLAM建圖的性能,我們的miiboo機器人提供了激光雷達、IMU、輪式里程計(/scan/imu/odom)這三種傳感器的數據,所以我們需要先將cartographer_ros配置成對應的工作模式。

      cartographer算法是一個非常通用和適應不同平臺的開放框架算法,所以支持多種配置與工作模式。我們就來看看cartographer_ros如何進行配置。配置文件由*.lua書寫被放在路徑cartographer_ros/configuration_files/,我們需要建立一個我們自己的配置文件,取名就叫miiboo_mapbuild.lua吧,具體內容如圖21。由于我們的miiboo機器人采用激光雷達、IMU、輪式里程計三種傳感器融合建圖,所以以下參數一定要設置正確:

      參數tracking_frame設置為imu_link,因為我們使用/imu的數據;

      參數published_frame設置為odom,因為我們使用/odom的數據;

      參數provide_odom_frame設置為false,因為我們使用外部/odom,所以這里不需要內部提供;

      參數use_odometry設置為true,因為我們使用外部/odom的數據;

      參數use_imu_data設置為true,因為我們使用/imu的數據;

      參數imu_gravity_time_constant設置為10,這個是IMU的重力加速度常數。

      其余參數根據需要自行調整,由于cartographer是發展很迅速的算法,所以很多代碼和文檔一直在更新,所以參考官方文檔來解讀這些參數的含義是最好的選擇,官方文檔連接地址我貼在下面了。

      https://google-cartographer-ros.readthedocs.io/en/latest/index.html

       

      (圖21)我們miiboo機器人的建圖配置文件miiboo_mapbuild.lua

      然后需要配置*.launch文件,我們給miiboo機器人建立啟動文件取名叫miiboo_mapbuild.launch,存放路徑在cartographer_ros/launch/里面,具體內容如圖22

      不難發現launch文件中包含三個node啟動項,即urdf模型啟動項、cartographer_node啟動項、cartographer_occupancy_grid_node啟動項。

      第一個啟動項是啟動urdf模型,這個接口是提供給那些只使用cartographer單獨建圖的應用場景,由于我們miiboo機器人建立完地圖后還需要繼續進行自動導航任務,所以我們使用miiboo底盤提供的urdf模型,而不使用這里的urdf模型,所以這個啟動項被注釋掉了,這樣建圖和導航就更容易管理。

      第二個啟動項是啟動cartographer_node建圖節點,這個是SLAM建圖主節點,我們建立的配置miiboo_mapbuild.lua將在這里被載入,同時這里可以對建圖輸入數據scanimuodomtopic名稱做重映射。

      第三個啟動項是啟動cartographer_occupancy_grid_node地圖格式轉換節點,由于cartographer_node建圖節點提供的地圖是submapList格式的,需要轉換成GridMap格式才能在ROS中顯示和使用。這里面有兩個可配參數,resolution用來設置GridMap地圖的分辨率,publish_period_sec用來設置GridMap地圖發布的頻率。

      (圖22)我們miiboo機器人的建圖啟動文件miiboo_mapbuild.launch

      配置參數修改好后,不要忘了再編譯一次整個catkin_ws_carto工作空間,切換到catkin_ws_carto目錄,執行下面的編譯命令。

      catkin_make_isolated --install --use-ninja

      啟動cartographer_ros建圖:

      要在miiboo機器人上,啟動cartographer_ros建圖,分為這幾個步驟:啟動機器人上的各個傳感器、啟動cartographer_ros、在PC端啟動鍵盤控制機器人運動并啟動rviz觀察地圖(或者在Android手機端用miiboo機器人APP控制機器人運動和觀察地圖)。

      首先,啟動機器人上的各個傳感器,為了操作方便,我已經將要啟動的傳感器都寫入miiboo_bringup/launch/miiboo_all_sensor.launch這個啟動文件了,文件內容如圖23。這個啟動文件包含機器人urdf啟動項、miiboo底盤啟動項、激光雷達啟動項、IMU啟動項、攝像頭啟動項、廣播IP啟動項。

      (圖23)各個傳感器啟動文件miiboo_all_sensor.launch

       打開終端,通過下面的命令直接啟動就行了。

      source ~/catkin_ws/devel/setup.bash 
      roslaunch miiboo_bringup miiboo_all_sensor.launch 

      然后,啟動cartographer_ros,由于前面已經做好了相應的配置,所以直接使用命令啟動就行了。

      source ~/catkin_ws_carto/install_isolated/setup.bash
      roslaunch cartographer_ros miiboo_mapbuild.launch

      這里給個小提示,為了查看cartographer_ros建圖算法有沒有正常開始工作,我們可以用rosrun rqt_tf_tree rqt_tf_tree查看整個tf樹的結構,正常的tf樹如圖24map->odom之間的關系由cartographer建圖節點提供,odom->base_footprint之間的關系由miiboo底盤的輪式里程計提供,base_footprint->imu_linkbase_linkbase_laser_link之間的關系由miiboo機器人的urdf模型提供。從tf樹不難看出整個建圖過程中機器人定位的實現原理,cartographer建圖節點通過維護map->odom之間的關系最終實現全局定位,miiboo底盤的輪式里程計通過維護odom->base_footprint之間的關系來實現局部定位,傳感器之間的安裝關系由urdf模型提供,這個靜態關系主要用于多傳感器數據融合。

      (圖24cartographer運行時正常的tf

      最后,在PC端啟動鍵盤控制機器人運動并啟動rviz觀察地圖(或者在Android手機端用miiboo機器人APP控制機器人運動和觀察地圖)。如果用PC端控制和觀察,啟動命令如下。

      PC端打開一個新終端,運行rviz啟動命令。

      rosrun rviz rviz

      rviz窗口中添加訂閱/map,就可以看到建圖效果了,如圖25

      (圖25)在PC端用rviz觀察地圖

      PC端再打開一個新終端,運行鍵盤控制啟動命令。

      rosrun teleop_twist_keyboard teleop_twist_keyboard.py

      在該終端下,用鍵盤就可以控制機器人前進、后退、左轉、右轉了。

      如果是在Android手機端用miiboo機器人APP控制機器人運動和觀察地圖,直接就能使用,如圖26

      (圖26)在Android手機端用miiboo機器人APP控制機器人運動和觀察地圖

      保存cartographer_ros建圖結果:

      當我們在房間里面掃描一圈,地圖建立的差不多了,就可以將建圖結果保存下來了,cartographer_ros提供了將建圖結果保存為*.pbstream專門的方法,其實就是一條命令。

      source ~/catkin_ws_carto/install_isolated/setup.bash
      rosservice call /write_state  /home/ubuntu/map/carto_map.pbstream

      其實就是調用cartographer_ros提供的叫/write_state這個名字的服務,服務傳入參數/home/ubuntu/map/carto_map.pbstream為地圖的保存路徑。保存成功后,會返回相應的狀態信息,如圖27

      (圖27)調用/write_state服務保存建圖結果

      地圖格式轉換:

      由于用cartographer_ros提供的/write_state方法保存的地圖是*.pbstream的格式,而要在后續的自主導航中使用這個地圖,我們需要將其轉換為ROS中通用的GridMap格式。其實很簡單,cartographer_ros已經跟我們提供了cartographer_pbstream_to_ros_map這個節點用于轉換的實現。所以,我們只需要寫一個啟動文件啟動這個節點就行了,我給這個啟動文件取名miiboo_pbstream2rosmap.launch,存放路徑是cartographer_ros/launch/,啟動文件的內容如圖28。在使用這個啟動文件進行啟動時,需要從外部傳入兩個參數,參數pbstream_filename為待轉換的*.pbstream文件路徑,參數map_filestem為轉換后存放結果的文件路徑。

      (圖28pbstreamGridMap啟動文件

      配置參數修改好后,不要忘了再編譯一次整個catkin_ws_carto工作空間,切換到catkin_ws_carto目錄,執行下面的編譯命令。

      catkin_make_isolated --install --use-ninja

      最后,就可以打開終端,使用啟動這個啟動文件,對地圖格式進行轉換了,命令如下。

      roslaunch cartographer_ros miiboo_pbstream2rosmap.launch pbstream_filename:=/home/ubuntu/map/carto_map.pbstream map_filestem:=/home/ubuntu/map/carto_map

      保存結束后,節點會自動退出,這時我們可以得到轉換后的地圖,轉換后的GridMap地圖由*.pgm*.yaml兩部分構成,這時標準的ROS格式地圖,可以被ROS導航框架中的map_server節點直接調用,轉換后的地圖結果如圖29

      (圖29)地圖格式轉換后的結果

      后記                                                      

      ------SLAM+語音機器人DIY系列【目錄】快速導覽------

      第1章:Linux基礎

      1.Linux簡介

      2.安裝Linux發行版ubuntu系統

      3.Linux命令行基礎操作

      第2章:ROS入門

      1.ROS是什么

      2.ROS系統整體架構

      3.在ubuntu16.04中安裝ROS kinetic

      4.如何編寫ROS的第一個程序hello_world

      5.編寫簡單的消息發布器和訂閱器

      6.編寫簡單的service和client

      7.理解tf的原理

      8.理解roslaunch在大型項目中的作用

      9.熟練使用rviz

      10.在實際機器人上運行ROS高級功能預覽

      第3章:感知與大腦

      1.ydlidar-x4激光雷達

      2.帶自校準九軸數據融合IMU慣性傳感器

      3.輪式里程計與運動控制

      4.音響麥克風與攝像頭

      5.機器人大腦嵌入式主板性能對比

      6.做一個能走路和對話的機器人

      第4章:差分底盤設計

      1.stm32主控硬件設計

      2.stm32主控軟件設計

      3.底盤通信協議

      4.底盤ROS驅動開發

      5.底盤PID控制參數整定

      6.底盤里程計標

      第5章:樹莓派3開發環境搭建

      1.安裝系統ubuntu_mate_16.04

      2.安裝ros-kinetic

      3.裝機后一些實用軟件安裝和系統設置

      4.PC端與robot端ROS網絡通信

      5.Android手機端與robot端ROS網絡通信

      6.樹莓派USB與tty串口號綁定

      7.開機自啟動ROS節點

      第6章:SLAM建圖與自主避障導航

      1.在機器人上使用傳感器

      2.google-cartographer機器人SLAM建圖

      3.ros-navigation機器人自主避障導航

      4.多目標點導航及任務調度

      5.機器人巡航與現場監控

      第7章:語音交互與自然語言處理

      1.語音交互相關技術

      2.機器人語音交互實現

      3.自然語言處理云計算引擎

      第8章:高階拓展

      1.miiboo機器人安卓手機APP開發

      2.centos7下部署Django(nginx+uwsgi+django+python3)

       


       

      參考文獻

       

      [1] 張虎,機器人SLAM導航核心技術與實戰[M]. 機械工業出版社,2022.

       

       

       

       

      前言
      編程基礎篇
      第1章 ROS入門必備知識
      1.1 ROS簡介 2
      1.1.1 ROS的性能特色 2
      1.1.2 ROS的發行版本 3
      1.1.3 ROS的學習方法 3
      1.2 ROS開發環境的搭建 3
      1.2.1 ROS的安裝 4
      1.2.2 ROS文件的組織方式 4
      1.2.3 ROS網絡通信配置 5
      1.2.4 集成開發工具 5
      1.3 ROS系統架構 5
      1.3.1 從計算圖視角理解ROS架構 6
      1.3.2 從文件系統視角理解ROS架構 7
      1.3.3 從開源社區視角理解ROS架構 8
      1.4 ROS調試工具 8
      1.4.1 命令行工具 9
      1.4.2 可視化工具 9
      1.5 ROS節點通信 10
      1.5.1 話題通信方式 12
      1.5.2 服務通信方式 15
      1.5.3 動作通信方式 19
      1.6 ROS的其他重要概念 25
      1.7 ROS 2.0展望 28
      1.8 本章小結 28
      第2章 C++編程范式
      2.1 C++工程的組織結構 29
      2.1.1 C++工程的一般組織結構 29
      2.1.2 C++工程在機器人中的組織結構 29
      2.2 C++代碼的編譯方法 30
      2.2.1 使用g++編譯代碼 31
      2.2.2 使用make編譯代碼 32
      2.2.3 使用CMake編譯代碼 32
      2.3 C++編程風格指南 33
      2.4 本章小結 34
      第3章 OpenCV圖像處理
      3.1 認識圖像數據 35
      3.1.1 獲取圖像數據 35
      3.1.2 訪問圖像數據 36
      3.2 圖像濾波 37
      3.2.1 線性濾波 37
      3.2.2 非線性濾波 38
      3.2.3 形態學濾波 39
      3.3 圖像變換 40
      3.3.1 射影變換 40
      3.3.2 霍夫變換 42
      3.3.3 邊緣檢測 42
      3.3.4 直方圖均衡 43
      3.4 圖像特征點提取 44
      3.4.1 SIFT特征點 44
      3.4.2 SURF特征點 50
      3.4.3 ORB特征點 52
      3.5 本章小結 54
      硬件基礎篇
      第4章 機器人傳感器
      4.1 慣性測量單元 56
      4.1.1 工作原理 56
      4.1.2 原始數據采集 60
      4.1.3 參數標定 65
      4.1.4 數據濾波 73
      4.1.5 姿態融合 75
      4.2 激光雷達 91
      4.2.1 工作原理 92
      4.2.2 性能參數 94
      4.2.3 數據處理 96
      4.3 相機 100
      4.3.1 單目相機 101
      4.3.2 雙目相機 107
      4.3.3 RGB-D相機 109
      4.4 帶編碼器的減速電機 111
      4.4.1 電機 111
      4.4.2 電機驅動電路 112
      4.4.3 電機控制主板 113
      4.4.4 輪式里程計 117
      4.5 本章小結 118
      第5章 機器人主機
      5.1 X86與ARM主機對比 119
      5.2 ARM主機樹莓派3B+ 120
      5.2.1 安裝Ubuntu MATE 18.04 120
      5.2.2 安裝ROS melodic 122
      5.2.3 裝機軟件與系統設置 122
      5.3 ARM主機RK3399 127
      5.4 ARM主機Jetson-tx2 128
      5.5 分布式架構主機 129
      5.5.1 ROS網絡通信 130
      5.5.2 機器人程序的遠程開發 130
      5.6 本章小結 131
      第6章 機器人底盤
      6.1 底盤運動學模型 132
      6.1.1 兩輪差速模型 132
      6.1.2 四輪差速模型 136
      6.1.3 阿克曼模型 140
      6.1.4 全向模型 144
      6.1.5 其他模型 148
      6.2 底盤性能指標 148
      6.2.1 載重能力 148
      6.2.2 動力性能 148
      6.2.3 控制精度 150
      6.2.4 里程計精度 150
      6.3 典型機器人底盤搭建 151
      6.3.1 底盤運動學模型選擇 152
      6.3.2 傳感器選擇 152
      6.3.3 主機選擇 153
      6.4 本章小結 155
      SLAM篇
      第7章 SLAM中的數學基礎
      7.1 SLAM發展簡史 158
      7.1.1 數據關聯、收斂和一致性 160
      7.1.2 SLAM的基本理論 161
      7.2 SLAM中的概率理論 163
      7.2.1 狀態估計問題 164
      7.2.2 概率運動模型 166
      7.2.3 概率觀測模型 171
      7.2.4 概率圖模型 173
      7.3 估計理論 182
      7.3.1 估計量的性質 182
      7.3.2 估計量的構建 183
      7.3.3 各估計量對比 190
      7.4 基于貝葉斯網絡的狀態估計 193
      7.4.1 貝葉斯估計 194
      7.4.2 參數化實現 196
      7.4.3 非參數化實現 202
      7.5 基于因子圖的狀態估計 206
      7.5.1 非線性最小二乘估計 206
      7.5.2 直接求解方法 206
      7.5.3 優化方法 208
      7.5.4 各優化方法對比 218
      7.5.5 常用優化工具 219
      7.6 典型SLAM算法 221
      7.7 本章小結 221
      第8章 激光SLAM系統
      8.1 Gmapping算法 223
      8.1.1 原理分析 223
      8.1.2 源碼解讀 228
      8.1.3 安裝與運行 233
      8.2 Cartographer算法 240
      8.2.1 原理分析 240
      8.2.2 源碼解讀 247
      8.2.3 安裝與運行 258
      8.3 LOAM算法 266
      8.3.1 原理分析 266
      8.3.2 源碼解讀 267
      8.3.3 安裝與運行 270
      8.4 本章小結 270
      第9章 視覺SLAM系統
      9.1 ORB-SLAM2算法 274
      9.1.1 原理分析 274
      9.1.2 源碼解讀 310
      9.1.3 安裝與運行 319
      9.1.4 拓展 327
      9.2 LSD-SLAM算法 329
      9.2.1 原理分析 329
      9.2.2 源碼解讀 334
      9.2.3 安裝與運行 337
      9.3 SVO算法 338
      9.3.1 原理分析 338
      9.3.2 源碼解讀 341
      9.4 本章小結 341
      第10章 其他SLAM系統
      10.1 RTABMAP算法 344
      10.1.1 原理分析 344
      10.1.2 源碼解讀 351
      10.1.3 安裝與運行 357
      10.2 VINS算法 362
      10.2.1 原理分析 364
      10.2.2 源碼解讀 373
      10.2.3 安裝與運行 376
      10.3 機器學習與SLAM 379
      10.3.1 機器學習 379
      10.3.2 CNN-SLAM算法 411
      10.3.3 DeepVO算法 413
      10.4 本章小結 414
      自主導航篇
      第11章 自主導航中的數學基礎
      11.1 自主導航 418
      11.2 環境感知 420
      11.2.1 實時定位 420
      11.2.2 環境建模 421
      11.2.3 語義理解 422
      11.3 路徑規劃 422
      11.3.1 常見的路徑規劃算法 423
      11.3.2 帶約束的路徑規劃算法 430
      11.3.3 覆蓋的路徑規劃算法 434
      11.4 運動控制 435
      11.4.1 基于PID的運動控制 437
      11.4.2 基于MPC的運動控制 438
      11.4.3 基于強化學習的運動控制 441
      11.5 強化學習與自主導航 442
      11.5.1 強化學習 443
      11.5.2 基于強化學習的自主導航 465
      11.6 本章小結 467
      第12章 典型自主導航系統
      12.1 ros-navigation導航系統 470
      12.1.1 原理分析 470
      12.1.2 源碼解讀 475
      12.1.3 安裝與運行 479
      12.1.4 路徑規劃改進 492
      12.1.5 環境探索 496
      12.2 riskrrt導航系統 498
      12.3 autoware導航系統 499
      12.4 導航系統面臨的一些挑戰 500
      12.5 本章小結 500
      第13章 機器人SLAM導航綜合實戰
      13.1 運行機器人上的傳感器 502
      13.1.1 運行底盤的ROS驅動 503
      13.1.2 運行激光雷達的ROS驅動 503
      13.1.3 運行IMU的ROS驅動 504
      13.1.4 運行相機的ROS驅動 504
      13.1.5 運行底盤的urdf模型 505
      13.1.6 傳感器一鍵啟動 506
      13.2 運行SLAM建圖功能 506
      13.2.1 運行激光SLAM建圖功能 507
      13.2.2 運行視覺SLAM建圖功能 508
      13.2.3 運行激光與視覺聯合建圖功能 508
      13.3 運行自主導航 509
      13.4 基于自主導航的應用 510
      13.5 本章小結 511
      附錄A Linux與SLAM性能優化的探討
      附錄B 習題

       

       

      posted @ 2019-02-21 23:04  小虎哥哥愛學習  閱讀(27159)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产一精品一av一免费爽爽| 中文字幕精品人妻丝袜| 久久婷婷综合色一区二区| 鄢陵县| 无码全黄毛片免费看| 奇米四色7777中文字幕| 超碰人人超碰人人| 浴室人妻的情欲hd三级国产| 色秀网在线观看视频免费| 国精产品999国精产品官网| 亚洲国产免费图区在线视频| 福利视频在线一区二区| 日本高清中文字幕免费一区二区| 中文字幕乱码熟妇五十中出| 饥渴的熟妇张开腿呻吟视频| 国产又色又爽又黄的网站免费| 国产精品欧美亚洲韩国日本久久| 国产自拍一区二区三区在线| 国产卡一卡二卡三免费入口| 国产福利姬喷水福利在线观看| 99精品国产一区二区三区| 亚洲国产成人久久一区久久| 国产在线观看免费观看| 海原县| 精品一卡2卡三卡4卡乱码精品视频| 狠狠躁夜夜躁无码中文字幕| 蜜桃在线一区二区三区| 疯狂添女人下部视频免费| 果冻传媒色av国产在线播放| 熟女蜜臀av麻豆一区二区| 丰满爆乳一区二区三区| 成人免费视频在线观看播放| 中文字幕无码成人免费视频| 给我播放片在线观看| 久久―日本道色综合久久| 精品亚洲女同一区二区| 国产精品中文字幕视频| 免费看国产精品3a黄的视频| 亚洲激情一区二区三区在线| 五月天中文字幕mv在线| 综合久久国产九一剧情麻豆|