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

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

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

      SLAM+語音機器人DIY系列:(六)SLAM建圖與自主避障導航——4.多目標點導航及任務調度

      溫馨提示

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

      摘要                                            

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

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

      2.google-cartographer機器人SLAM建圖

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

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

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



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

      通過前面的學習,我們已經可以通過點擊地圖的方式來命令機器人運動到目標點。其實,ros-navigation導航框架就是為我們提供了一個最基本的機器人自動導航接口,即單點導航。然而,在實際的機器人應用中,機器人往往要完成復雜的任務,這些復雜的任務都是由一個個基本的任務組合而成的。一般的,機器人通過狀態機的形式將一個個基本任務組合在一起來進行復雜任務的調度實現。

      4.1.狀態機                 

      這里我們只討論有限狀態機,也稱為FSM(Finite State Machine),其在任意時刻都處于有限狀態集合中的某一狀態。當其獲得一個輸入條件時,將從當前狀態轉換到另一個狀態,或者仍然保持在當前狀態。任何一個FSM都可以用狀態轉換圖來描述,圖中的節點表示FSM中的一個狀態,有向加權邊表示輸入條件時狀態的變化。如圖49,以一個上班族的生活場景來舉例說明狀態機的狀態轉換圖。矩形框表示FSM中的一個狀態,有向邊表示在輸入條件下的狀態轉換過程。

      (圖49)有限狀態機FSM舉例

      4.2.多目標點巡航            

      機器人多目標點巡航,特別是按特定巡邏路徑進行巡航是很實用的功能。這里將利用前面學到的ros-navigation單點導航、狀態機、狀態機任務調度的知識。我們來編寫一個應用功能包實現機器人多目標點巡航。

      到這里,我們慢慢清楚了miiboo機器人編程的框架思路,我們將傳感器相關的底層驅動包放在~/catkin_ws/工作空間統一管理,將基于google-cartographerSLAM建圖程序包放在~/catkin_ws_carto/工作空間統一管理,將基于ros-navigation的導航程序包放在~/catkin_ws_nav/工作空間統一管理,將高層應用功能包放在~/catkin_ws_apps/工作空間統一管理。miiboo機器人編程的框架思路,如圖50

      (圖50miiboo機器人編程的框架思路

      這里將建立一個叫catkin_ws_appsROS工作空間,專門用于放置日后開發的各種應用層功能包。關于創建ROS工作空間的操作,請參考前面相應部分內容,這里就不做講解。在~/catkin_ws_apps/src/中建立一個叫patrol的功能包,建好后的patrol功能包文件結構,如圖51

      (圖51patrol功能包文件結構

      關于功能包的文件結構,大家已經很熟悉了,就不啰嗦了。這里重點講解一下patrol_fsm.py這個文件,文件內容如圖52

      (圖52patrol_fsm.py文件內容

      這里采用python來編寫多目標點巡航的邏輯,python開發ROS節點的優點是簡潔高效。代碼中waypoints數組里面存放的是要巡航的各個目標點,大家可以根據自己的需要進行相應的替換和增減;with patrol代碼塊里面實現狀態機的構建;最后調用狀態機的執行函數,狀態機就開始工作了,也就是開始執行巡航了。

      啟動多目標點巡航分為3步:啟動機器人上所有傳感器、啟動導航所需各個節點、啟動多目標點巡航節點。

      首先,啟動機器人上所有傳感器,打開終端,通過下面的命令直接啟動就行了。

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

      然后,啟動導航所需各個節點,打開終端,通過下面的命令直接啟動就行了。

      source ~/catkin_ws_nav/devel/setup.bash 
      roslaunch miiboo_nav miiboo_nav.launch

      最后,啟動多目標點巡航節點,打開終端,通過下面的命令直接啟動就行了。

      source ~/catkin_ws_apps/devel/setup.bash 
      roslaunch patrol patrol.launch

      4.3.復雜多任務機器人未來展望   

      機器人可以進行自動導航、人機對話、用機械臂抓取物體、物體識別等。將這些任務結合起來,利用機器人強大的大腦推理機制能完成更為復雜和智能化的任務。如果說基于狀態機的復雜任務調度是1.0版本的智能,那么基于大腦推理機制的復雜任務調度將是2.0版本的智能。

      我的設想是利用強化學習神經網絡作為大腦推理機制的實現實體,如圖53。自動導航、人機對話、用機械臂抓取物體、物體識別等任務組合的整體作為機器人與外界環境交互的動作空間,動作空間的的狀態分為兩種形態:執行結果、執行策略。執行結果作為強化學習神經網絡的輸入,而執行策略作為強化學習神經網絡的輸出。我們不斷通過各種復雜的實際場景的粒子來訓練機器人,讓機器人能在復雜場景下能做正確的事情。比如說,當機器人收到主人“我渴了”的語音信息后,自動導航到桌子邊,然后識別桌上的可樂,并用機械臂抓取,最后遞給主人,并提醒主人“你的可樂來了”。

       (圖53)強化學習神經網絡作為大腦推理機制

       哈哈!這樣的想法很炫酷,不過以目前的技術實現難度還比較大,所以作為未來展望分享給大家。希望和大家一起努力,在不遠的將來能實現這個夢想。

      后記                                                      

      ------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-22 00:28  小虎哥哥愛學習  閱讀(7535)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日韩av日韩av在线| 无码专区 人妻系列 在线| 亚洲AV日韩AV永久无码下载| 阿拉善左旗| 激情啪啪啪一区二区三区| 一区二区三区激情免费视频| 欧美精品一区二区在线观看播放 | 高尔夫| 国产仑乱无码内谢| 一区二区三区四区精品黄| 蜜桃伦理一区二区三区| 越西县| 久久精品夜色国产亚洲av| 激情人妻自拍中文夜夜嗨| 精品人妻一区二区三区蜜臀 | 麻豆精品一区二区综合av| 亚洲成A人片在线观看无码不卡 | 亚洲久久色成人一二三区| 国产综合av一区二区三区| 成全影视大全在线观看| 国产福利酱国产一区二区| 久久国产精品乱子乱精品| 国产高清视频在线播放www色| 99riav国产精品视频| 色一情一乱一区二区三区码| 亚洲人成电影在线天堂色| 国产亚洲精品久久777777| 亚洲精品久久国产高清小说| 亚洲色婷婷综合开心网| 高清自拍亚洲精品二区 | 玩弄漂亮少妇高潮白浆| 亚洲综合一区国产精品| 国产精品熟女一区二区三区| 天堂a无码a无线孕交| 国产精品成人午夜久久| 国产AV无码专区亚洲AV紧身裤 | 日产精品久久久久久久| 日韩精品亚洲精品第一页| 四虎亚洲精品高清在线观看| 亚洲一区成人av在线| 亚洲国产成人无码影片在线播放|