ROS與ROS2開發(fā)指南
鏈接:https://pan.baidu.com/s/1EST63CtSYN0ZpmEYuAlapw?pwd=jhfe?
提取碼:jhfe

預(yù) 備 篇?
*1章 緒論 1?
1.1 機(jī)器人的概念及點(diǎn) 1?
1.1.1 機(jī)器人的由來 1?
1.1.2 機(jī)器人的定義 2?
1.1.3 機(jī)器人的主要點(diǎn) 3?
1.2 機(jī)器人的組成與分類 3?
1.2.1 機(jī)器人的組成 3?
1.2.2 機(jī)器人的分類 4?
1.3 智能機(jī)器人 10?
1.3.1 智能機(jī)器人的定義 10?
1.3.2 腦科學(xué)與智能機(jī)器人 11?
1.3.3 人工智能在機(jī)器人中的應(yīng)用 11?
*2章 Linux基礎(chǔ) 14?
2.1 Linux簡(jiǎn)介 14?
2.1.1 Linux的發(fā)行版 14?
2.1.2 Linux應(yīng)用領(lǐng)域 15?
2.2 Linux系統(tǒng)目錄結(jié)構(gòu) 15?
2.3 Linux用戶及用戶組管理 18?
2.4 Linux文件屬性管理 20?
2.4.1 查看文件屬性 20?
2.4.2 文件屬性修改 21?
2.4.3 文件權(quán)限修改 22?
2.5 Linux目錄管理 24?
2.5.1 常用命令 24?
2.5.2 文件內(nèi)容查看指令 27?
2.5.3 重定向與追加 28?
2.6 Linux作 29?
第3章 Python基礎(chǔ) 31?
3.1 Python簡(jiǎn)介 31?
3.1.1 Python發(fā)行版 31?
3.1.2 Python點(diǎn) 32?
3.2 Python基礎(chǔ)介紹 32?
3.2.1 基礎(chǔ)導(dǎo)引 32?
3.2.2 變量 33?
3.2.3 數(shù)據(jù)類型 34?
3.2.4 條件語(yǔ)句 35?
3.2.5 循環(huán)語(yǔ)句 36?
3.2.6 切片作 37?
3.3 數(shù)據(jù)常用作方法 38?
3.3.1 字符串常見作 38?
3.3.2 列表常見作 43?
3.3.3 字典常見作 46?
3.3.4 集合常見作 51?
3.3.5 元組常見作 52?
3.3.6 邏輯運(yùn)算 54?
3.4 函數(shù) 54?
3.4.1 函數(shù)簡(jiǎn)介 54?
3.4.2 參數(shù)(argument-list) 55?
3.4.3 局變量與全局變量 57?
3.4.4 返回值 58?
3.4.5 遞歸函數(shù) 59?
3.4.6 匿名函數(shù) 59?
3.4.7 列表推導(dǎo)式 59?
3.4.8 字典推導(dǎo)式 60?
3.4.9 常用內(nèi)置函數(shù) 61?
3.5 面向?qū)ο?64?
3.5.1 面向過程與面向?qū)ο?64?
3.5.2 類與實(shí)例 65?
3.5.3 類屬性與實(shí)例屬性 65?
3.5.4 類方法與靜態(tài)方法 68?
3.5.5 魔法方法 69?
3.5.6 面向?qū)ο蟮娜笮?71?
3.6 常用術(shù)語(yǔ)介紹 74?
基 礎(chǔ) 篇?
第4章 ROS概述 76?
4.1 初識(shí)ROS 76?
4.2 PC安裝ROS 79?
4.3 Raspberry 系統(tǒng)下安裝ROS的腳本 83?
第5章 ROS基礎(chǔ) 84?
5.1 文件系統(tǒng)級(jí) 84?
5.2 計(jì)算圖級(jí) 86?
5.3 開源社區(qū)級(jí) 87?
5.4 文件系統(tǒng)工具 87?
5.4.1 使用rospack 87?
5.4.2 使用roscd 88?
5.4.3 使用rosls 89?
5.4.4 使用rosed 89?
5.4.5 使用roscp 89?
5.5 創(chuàng)建工作空間 89?
5.5.1 創(chuàng)建工作空間簡(jiǎn)介 90?
5.5.2 工作空間目錄解析 90?
5.6 功能的創(chuàng)建與編譯 91?
5.6.1 catkin功能的組成 91?
5.6.2 創(chuàng)建功能 92?
5.6.3 功能依賴關(guān)系 92?
5.6.4 功能命名規(guī)范 93?
5.6.5 刪除功能 94?
5.6.6 編譯功能 94?
5.7 ROS節(jié)點(diǎn) 96?
5.7.1 啟動(dòng)ROS 97?
5.7.2 使用rosnode 97?
5.8 ROS主題與節(jié)點(diǎn)交互 98?
5.8.1 控制turtle移動(dòng) 98?
5.8.2 查看節(jié)點(diǎn)信息 99?
5.8.3 查看主題信息 100?
5.8.4 使用 rqt_graph 102?
5.9 ROS服務(wù)和參數(shù) 103?
5.10 創(chuàng)建ROS消息和ROS服務(wù) 106?
5.10.1 消息(msg)和服務(wù)(srv)介紹 107?
5.10.2 使用 msg 107?
5.10.3 使用 srv 109?
5.11 編寫發(fā)布器與訂閱器 110?
5.11.1 定義msg消息 110?
5.11.2 編寫發(fā)布器 112?
5.11.3 編寫訂閱器 114?
5.11.4 啟動(dòng)rqt查看節(jié)點(diǎn)信息 115?
5.12 編寫服務(wù)端和客戶端 116?
5.12.1 定義srv服務(wù) 116?
5.12.2 編寫服務(wù)端 118?
5.12.3 編寫客戶端 120?
5.13 編寫launch文件 122?
5.13.1 roslaunch使用方法 122?
5.13.2 編寫launch文件介紹 125?
實(shí) 戰(zhàn) 篇?
第6章 ARTROBOT機(jī)器人移動(dòng)平臺(tái)搭建 127?
6.1 三軸全向移動(dòng)機(jī)器人介紹 127?
6.1.1 全向輪結(jié)構(gòu) 127?
6.1.2 底盤結(jié)構(gòu)設(shè)計(jì) 127?
6.1.3 直流電機(jī)的選擇 129?
6.1.4 電機(jī)驅(qū)動(dòng)板 129?
6.1.5 ROS的主控板 130?
6.2 運(yùn)動(dòng)學(xué)建模和分析 130?
6.2.1 機(jī)器人坐標(biāo)系系統(tǒng)分析 130?
6.2.2 運(yùn)動(dòng)學(xué)模型分析 132?
6.2.3 逆運(yùn)動(dòng)學(xué)模型方程推導(dǎo) 133?
6.2.4 正運(yùn)動(dòng)學(xué)模型方程推導(dǎo) 135?
6.2.5 航跡推算 136?
6.3 ros_arduino_bridge功能集 136?
6.3.1 ros_arduino_bridge功能集簡(jiǎn)介 137?
6.3.2 安裝ros_arduino_bridge功能集 139?
6.3.3 安裝python-serial功能 139?
6.3.4 串口的作權(quán)限 139?
6.4 下位機(jī)Arduino代碼詳解 140?
6.4.1 ros_arduino_bridge功能簡(jiǎn)介 140?
6.4.2 創(chuàng)建ros_arduino_bridge項(xiàng)目 141?
6.4.3 mobileBaseArduinoCode.ino 141?
6.4.4 commands.h 147?
6.4.5 encoder_driver.h 147?
6.4.6 encoder_driver.ino 148?
6.4.7 motor_driver.h 151?
6.4.8 motor_driver.ino 151?
6.4.9 omniWheel_controller.h 154?
6.4.10 sensors.h 157?
6.5 上位機(jī)ros_arduino_python代碼 158?
6.5.1 ros_arduino_python功能簡(jiǎn)介 158?
6.5.2 arduino.launch 159?
6.5.3 my_arduino_params.yaml 159?
6.5.4 arduino_node.py 160?
6.5.5 base_controller.py 161?
第7章 機(jī)器人傳感器配置與使用 167?
7.1 慣性測(cè)量單元校準(zhǔn)和調(diào)試 167?
7.1.1 慣性測(cè)量單元相關(guān)介紹 167?
7.1.2 IMU功能簡(jiǎn)介 167?
7.1.3 在ROS環(huán)境下復(fù)制并編譯IMU源碼 168?
7.1.4 IMU初始標(biāo)定 168?
7.1.5 啟動(dòng)IMU測(cè)試 168?
7.1.6 單獨(dú)運(yùn)行IMU 169?
7.2 雷達(dá)調(diào)試 170?
7.2.1 雷達(dá)選型 170?
7.2.2 下載編譯ROS下驅(qū)動(dòng)源碼 171?
7.2.3 生成掛載點(diǎn) 172?
7.2.4 啟動(dòng)雷達(dá)測(cè)試 174?
7.2.5 讀取雷達(dá)數(shù)據(jù) 174?
7.3 udev串口配置 177?
7.3.1 udev簡(jiǎn)介 177?
7.3.2 udev規(guī)則 177?
7.3.3 udev內(nèi)容 179?
7.3.4 udev生效 183?
7.4 ROS中TF變換 184?
7.4.1 TF功能 185?
7.4.2 TF廣播與監(jiān)聽 187?
7.4.3 TF常用工具 193?
第8章 SLAM及導(dǎo)航 198?
8.1 SLAM簡(jiǎn)介 198?
8.2 常見激光SLAM算法簡(jiǎn)介 199?
8.3 應(yīng)用gmapping構(gòu)建機(jī)器人約束條件 200?
8.4 slam_gmapping功能 201?
8.5 應(yīng)用gmapping構(gòu)建二維地圖 201?
8.6 SLAM構(gòu)建地圖過程分析 205?
8.6.1 地圖分析 205?
8.6.2 SLAM執(zhí)行過程 206?
8.6.3 gmapping參數(shù)設(shè)定 207?
8.7 ROS機(jī)器人導(dǎo)航簡(jiǎn)介 209?
8.8 機(jī)器人路徑規(guī)劃算法簡(jiǎn)介 212?
8.9 應(yīng)用導(dǎo)航功能實(shí)現(xiàn)自主路徑規(guī)劃 214?
8.9.1 路徑規(guī)劃執(zhí)行過程 214?
8.9.2 導(dǎo)航功能參數(shù)設(shè)定 215?
第9章 機(jī)器人功能擴(kuò)展實(shí)例 218?
9.1 機(jī)器人視覺跟隨功能 218?
9.1.1 ROS下攝像頭的標(biāo)定 218?
9.1.2 ROS跟隨功能實(shí)現(xiàn) 226?
9.1.3 launch啟動(dòng)及效果演示 236?
9.2 機(jī)器人+物聯(lián)網(wǎng)功能 239?
9.2.1 物聯(lián)網(wǎng)模塊介紹 240?
9.2.2 物聯(lián)網(wǎng)模塊硬件接線 240?
9.2.3 物聯(lián)網(wǎng)模塊協(xié)議 244?
9.2.4 機(jī)器人+物聯(lián)網(wǎng)功能實(shí)現(xiàn) 244?
9.2.5 launch啟動(dòng)及效果演示 246?
*10章 ROS2簡(jiǎn)介 249?
10.1 從ROS1到ROS2 249?
10.1.1 ROS1的局限性 250?
10.1.2 ROS2對(duì)ROS1的改進(jìn) 250?
10.2 ROS2系統(tǒng)架構(gòu) 251?
10.3 ROS2安裝 252?
10.3.1 ROS2在Ubuntu上安裝 252?
10.3.2 Ubuntu ROS2測(cè)試 253?
10.4 ROS2通信 253?
10.4.1 節(jié)點(diǎn) 254?
10.4.2 主題 254?
10.4.3 服務(wù) 256?
10.4.4 參數(shù) 259?
10.4.5 基本作 261?
10.5 ROS2編程 262?
10.5.1 工作空間 262?
10.5.2 ROS2功能 263?
10.5.3 發(fā)布者和訂閱者 264?
10.5.4 編寫簡(jiǎn)單的服務(wù)和客戶端節(jié)點(diǎn) 270?
10.5.5 創(chuàng)建ROS2消息和服務(wù)類型 275?
10.6 ROS1和ROS2之間的橋接通信 283?
10.6.1 ros1_bridge功能 283?
10.6.2 ros1_bridge之主題通信 283?
10.6.3 ros1_bridge之服務(wù)通信 285?
*11章 交編譯器 286?
11.1 GNU toolchain介紹 286?
11.1.1 gcc和g++ 286?
11.1.2 as、ld和ar 287?
11.2 從源碼gcc編譯器 288?
11.3 交編譯器的 289??