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

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

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

      SLAM+語音機器人DIY系列:(二)ROS入門——1.ROS是什么

      溫馨提示

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

      摘要                                          

      ROS機器人操作系統在機器人應用領域很流行,依托代碼開源和模塊間協作等特性,給機器人開發者帶來了很大的方便。我們的機器人“miiboo”中的大部分程序也采用ROS進行開發,所以本文就重點對ROS基礎知識進行詳細的講解,給不熟悉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高級功能預覽



      1.ROS是什么          

       

      (圖1)ROS的圖標

      ROS是一個適用于機器人的開源的元操作系統。其實它并不是一個真正的操作系統,其底層的任務調度、編譯、尋址等任務還是由Linux操作系統完成,也就是說ROS實際上是運行在Linux上的次級操作系統。但是ROS提供了操作系統應用的各種服務(如:硬件抽象、底層設備控制、常用函數實現、進程間消息傳遞、軟件包管理等),也提供了用于獲取、編譯、跨平臺運行代碼的工具和函數。ROS主要采用松耦合點對點進程網絡通信,目前主要還是支持Ubuntu系統,windows和Mac OS目前支持的還不好,所以推薦在Ubuntu系統上安裝使用ROS。

      1.1.ROS的特性               

      (圖2ROS的特性

      總結起來就是,使用ROS能夠方便迅速的搭建機器人原型。ROS使用了BSD許可證,這是一個很寬松的開放許可證,允許在商業和閉源產品中使用,這一點對開發產品的創業公司很重要。ROS當前的代碼統計量,總行數超過1400萬,作者超過2477名。代碼語言以C++為主,63.98%的代碼是用C++編寫的,排名第二的是python,占13.57%,可以說ROS基本上都是使用這兩種語言,來實現大部分的功能。

      1.2.ROS的結構              

      這里主要從四個方面來解讀ROS的結構,設計思想、核心概念、核心模塊、核心工具。

      ROS的設計思路主要是分布式架構,將機器人的功能和軟件做成一個個節點,然后每個節點通過topic進行溝通,這些節點可以部署在同一臺機器上,也可以部署在不同機器上,還可以部署在互聯網上。

      ROS的核心概念主要是節點和用于節點間通信的話題與服務。管理器Master管理節點與話題之間通信的過程,并且還提供一個參數服務用于全局參數的配置。ROS通過功能包集stack和功能包package來組織代碼。

      ROS的核心模塊包括:通信結構基礎、機器人特性功能、工具集。通信結構基礎主要是消息傳遞、記錄回放消息、遠程過程調用、分布式參數系統;機器人特性功能主要是標準機器人消息、機器人幾何庫、機器人描述語言、搶占式遠程過程調用、診斷、位置估計、定位導航;工具集主要是命令式工具、可視化工具、圖形化接口。

      ROS核心工具很豐富,ROS常用命令工具是rostopicrosservice、rosnode、rosparam、rosmsg、rossrv、roswtf;ROS常用可視化工具是rqt、rviz;ROS用于存儲與回放數據的工具rosbag;ROSlog系統記錄軟件運行的相關信息;ROS還擁有強大的第三方工具支持:三維仿真環境Gazebo、計算機視覺庫OpenCV、點云庫PCL、機械臂控制庫MoveIt、工業應用庫Industrial、機器人編程工具箱MRPT、實時控制庫Orocos。

      1.3.ROS的學習資源          

      官網:  www.ros.org

      源碼:  github.com

      Wiki:  wiki.ros.org

      問答:  answers.ros.org

      后記                                      

      ------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-15 18:35  小虎哥哥愛學習  閱讀(13383)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 性视频一区| 国产黄色av一区二区三区| 激情97综合亚洲色婷婷五| 德令哈市| 国产精品扒开腿做爽爽爽a片唱戏| 色偷偷亚洲精品一区二区| 特级做a爰片毛片免费看无码| 黑人av无码一区| 国产亚洲精品第一综合麻豆| 亚洲第一福利网站在线| 新河县| 欧美大bbbb流白水| 2019久久久高清日本道| 欧美xxxx做受欧美| 国产精品久久人妻无码网站一区| 亚洲一区二区三区在线观看精品中文| 亚洲色成人网站www永久四虎| 午夜免费视频国产在线| 亚洲性美女一区二区三区| 韩国精品久久久久久无码| 国产精品视频亚洲二区| 天堂网亚洲综合在线| 亚洲精品人成网线在线| 凌源市| 国产成人无码| 人妻一区二区三区三区| 中文字幕精品无码一区二区| 国产美女久久久亚洲综合| 亚洲色在线v中文字幕| 国产性色的免费视频网站| 影音先锋在线资源无码| 久久一亚色院精品全部免费| 亚洲国产成人精品女人久| 综合亚洲网| 最新午夜男女福利片视频| 波多野结衣av无码| 亚洲成人av日韩在线| 午夜通通国产精品福利| 久久国产乱子伦免费精品无码| 国产suv精品一区二区四| 国产97色在线 | 免费|