Webots移動機(jī)器人仿真實(shí)例教程
定 價:98 元
當(dāng)前圖書已被 2 所學(xué)校薦購過!
查看明細(xì)
- 作者:秦宇飛、劉相權(quán) 著
- 出版時間:2025/7/1
- ISBN:9787122475473
- 出 版 社:化學(xué)工業(yè)出版社
- 中圖法分類:TP242
- 頁碼:304
- 紙張:
- 版次:01
- 開本:16開
《Webots移動機(jī)器人仿真實(shí)例教程》全面介紹了Webots仿真軟件的使用及其在各種機(jī)器人領(lǐng)域的應(yīng)用。本書內(nèi)容詳盡,從Webots的基礎(chǔ)入門到高級操作,既包括了軟件安裝、界面操作、節(jié)點(diǎn)編輯等基礎(chǔ)知識,又涵蓋了兩輪差速機(jī)器人、四輪差速機(jī)器人、四足機(jī)器人、無人機(jī)、水下機(jī)器人、人形機(jī)器人等多種類型機(jī)器人的仿真案例。本書內(nèi)容特色在于實(shí)用性和操作性,通過豐富的案例和詳細(xì)的步驟指導(dǎo),幫助讀者快速掌握Webots的仿真技巧。此外,本書還提供了控制器編程環(huán)境的搭建和編程方法,讓讀者能夠自主設(shè)計并實(shí)現(xiàn)復(fù)雜的機(jī)器人控制算法。
本書適合機(jī)器人專業(yè)的學(xué)生、科研工作者、工程師以及對機(jī)器人仿真感興趣的讀者閱讀。無論是初學(xué)者還是有一定經(jīng)驗(yàn)的用戶,都能從本書中獲得寶貴的指導(dǎo)和啟示。通過閱讀本書,讀者能夠更深入地理解Webots軟件的功能和應(yīng)用,提升自己在機(jī)器人仿真領(lǐng)域的技能和水平。
第1章 Webots入門
1.1 Webots簡介 001
1.2 常用機(jī)器人仿真軟件對比 002
1.3 Webots安裝 003
1.3.1 Webots軟件版本選擇 003
1.3.2 Webots軟件安裝 005
1.3.3 GitHub網(wǎng)絡(luò)安裝 007
1.3.4 GitHub源文件下載安裝 009
1.4 編譯源文件中的控制器程序 011
1.5 初識機(jī)器人運(yùn)動仿真 012
1.5.1 切換到中文界面 012
1.5.2 界面風(fēng)格 012
1.5.3 軟件自帶的項目示例 013
1.5.4 認(rèn)識仿真環(huán)境 014
1.5.5 編寫一個簡單的機(jī)器人仿真項目 015
1.5.6 Webots世界文件(.wbt) 023
1.5.7 節(jié)點(diǎn)描述文件(.proto) 024
1.5.8 控制器程序 028
1.6 Webots機(jī)器人運(yùn)動仿真項目搭建思路 029
1.7 幫助文檔及項目示例 029
1.7.1 在線幫助文檔 031
1.7.2 及時查看在線幫助文檔的方法 032
1.7.3 離線查看幫助文檔 032
1.7.4 半離線查看幫助文檔 033
1.7.5 項目示例文件 036
第2章 Webots基本操作
2.1 3D視圖基本操作 037
2.1.1 調(diào)整視角 037
2.1.2 移動和旋轉(zhuǎn)對象 037
2.1.3 恢復(fù)布局 037
2.2 人為施加力操作 038
2.3 工具欄 038
2.3.1 仿真時間及仿真速率 039
2.3.2 運(yùn)行控制 039
2.3.3 渲染 039
2.3.4 錄屏和聲音 039
2.4 向?qū)Р藛?040
2.4.1 新建項目的主要步驟 040
2.4.2 新建項目目錄向?qū)?040
2.4.3 新建機(jī)器人控制器向?qū)?041
2.4.4 Webots控制器程序運(yùn)行原理分析 041
2.5 節(jié)點(diǎn) 042
2.5.1 添加節(jié)點(diǎn) 042
2.5.2 添加節(jié)點(diǎn)時無法看到縮略圖 043
2.5.3 無法添加基礎(chǔ)節(jié)點(diǎn) 044
2.6 對象的導(dǎo)出和導(dǎo)入 045
2.6.1 不同版本的Webots對文件格式導(dǎo)入和導(dǎo)出的支持 045
2.6.2 URDF文件的導(dǎo)入和導(dǎo)出 046
2.6.3 外部三維模型導(dǎo)入(stl、obj、dae)到Webots2022a 052
2.6.4 wbo模型的導(dǎo)入和導(dǎo)出 054
2.7 查看菜單 060
2.7.1 顯示坐標(biāo)系統(tǒng) 060
2.7.2 恢復(fù)視角 061
2.7.3 視角跟隨機(jī)器人移動 061
2.7.4 移動視角到對象 062
2.7.5 顯示攝像頭視場 062
2.7.6 顯示接觸點(diǎn) 062
2.8 Overlays菜單 062
2.9 添加聲音 063
2.9.1 添加電機(jī)旋轉(zhuǎn)聲音 063
2.9.2 添加碰撞聲音 064
2.10 DEF和USE關(guān)鍵字 064
第3章 Webots的節(jié)點(diǎn)Node
3.1 世界、節(jié)點(diǎn)、節(jié)點(diǎn)屬性 067
3.2 場景樹 068
3.3 節(jié)點(diǎn)的通用屬性 069
3.3.1 外觀調(diào)整 069
3.3.2 位姿和縮放 074
3.3.3 DEF 和name屬性 075
3.4 WorldInfo節(jié)點(diǎn) 076
3.4.1 基本屬性 076
3.4.2 basicTimeStep基本仿真步長 077
3.4.3 接觸屬性contact- Properties 077
3.5 TexturedBackgroundLight光源節(jié)點(diǎn) 085
3.6 Viewpoint節(jié)點(diǎn) 086
3.7 RectangleArena地面節(jié)點(diǎn) 087
3.7.1 地面大小floorSize屬性 087
3.7.2 地面外觀floorAppearance Parquetry屬性 088
3.7.3 地面外觀appearance PBRAppearance屬性 089
3.7.4 地面圍墻 089
3.8 其他地面 090
3.9 實(shí)體Solid節(jié)點(diǎn) 090
3.9.1 基本屬性 091
3.9.2 子節(jié)點(diǎn)children屬性 091
3.9.3 物理physics屬性 092
3.9.4 邊界(周界)boundingObject屬性 093
3.9.5 調(diào)整實(shí)體對象的大小和位姿 097
3.10 形狀Shape節(jié)點(diǎn) 097
3.11 關(guān)節(jié)Joint節(jié)點(diǎn) 098
3.11.1 關(guān)節(jié)參數(shù) 099
3.11.2 設(shè)備device節(jié)點(diǎn) 102
3.12 旋轉(zhuǎn)關(guān)節(jié)HingeJoint/Hinge2Joint節(jié)點(diǎn) 107
3.12.1 旋轉(zhuǎn)關(guān)節(jié) 107
3.12.2 編程 109
3.12.3 示例1:簡單旋轉(zhuǎn)關(guān)節(jié) 109
3.12.4 示例2:關(guān)節(jié)的參數(shù)調(diào)節(jié) 110
3.13 滑動關(guān)節(jié)SliderJoint節(jié)點(diǎn) 111
3.13.1 滑動關(guān)節(jié)參數(shù) 111
3.13.2 示例1:簡單滑動關(guān)節(jié) 111
3.13.3 示例2:滑動關(guān)節(jié)對比 113
3.13.4 示例3:滑動關(guān)節(jié)實(shí)現(xiàn)彈簧效果 114
3.14 球關(guān)節(jié)BallJoint節(jié)點(diǎn) 114
3.15 機(jī)器人Robot節(jié)點(diǎn) 115
3.15.1 機(jī)器人控制器controller 116
3.15.2 機(jī)器人控制器周期執(zhí)行函數(shù)wb_robot_step() 116
3.15.3 機(jī)器人控制器與仿真器并行執(zhí)行 118
3.15.4 同步與異步控制器synchronization 119
3.15.5 自碰撞檢測selfCollision 119
3.15.6 顯示機(jī)器人窗口 119
3.15.7 Controller屬性 120
3.16 組Group節(jié)點(diǎn) 120
3.17 位姿變換Transform節(jié)點(diǎn) 121
3.18 發(fā)射器Emitter和接收器Receiver節(jié)點(diǎn) 122
3.18.1 發(fā)射器節(jié)點(diǎn)Emitter 123
3.18.2 接收器節(jié)點(diǎn)Receiver 124
3.18.3 函數(shù)及示例 125
3.19 LED節(jié)點(diǎn) 127
3.20 GPS節(jié)點(diǎn) 128
3.20.1 描述及屬性 128
3.20.2 函數(shù)及示例 129
3.21 陀螺儀Gyro節(jié)點(diǎn) 130
3.21.1 描述及屬性 130
3.21.2 函數(shù)及示例 131
3.22 羅盤Compass節(jié)點(diǎn) 132
3.22.1 描述及屬性 132
3.22.2 函數(shù)及示例 133
3.23 慣性InertialUnit節(jié)點(diǎn)(IMU) 134
3.23.1 描述及屬性 134
3.23.2 函數(shù)及示例 134
3.24 監(jiān)控Supervisor節(jié)點(diǎn) 136
3.25 距離傳感器DistanceSensor節(jié)點(diǎn) 136
3.25.1 屬性 137
3.25.2 紅外距離傳感器 140
3.25.3 聲吶傳感器 140
3.25.4 編程 140
3.25.5 距離傳感器示例 141
3.26 接觸傳感器TouchSensor節(jié)點(diǎn) 141
3.26.1 描述及屬性 141
3.26.2 示例 142
3.27 螺旋槳Propeller節(jié)點(diǎn) 143
3.27.1 螺旋槳的推力和扭矩 143
3.27.2 螺旋槳的旋轉(zhuǎn)方向和推力/扭矩方向 146
3.27.3 函數(shù)及示例 146
3.28 履帶Track節(jié)點(diǎn)及履帶輪TrackWheel節(jié)點(diǎn) 149
3.28.1 描述及屬性 149
3.28.2 示例 152
3.29 流體Fluid節(jié)點(diǎn)及浸沒屬性immersionProperties節(jié)點(diǎn) 153
3.29.1 流體Fluid節(jié)點(diǎn)描述及屬性 153
3.29.2 浸沒屬性immersionProperties節(jié)點(diǎn) 154
3.29.3 示例1:浮力 156
3.29.4 示例2:拖曳力之推動力 157
3.29.5 示例3:拖曳力之黏滯力 158
3.30 阻尼Damping節(jié)點(diǎn) 159
3.30.1 描述及屬性 159
3.30.2 示例 159
3.31 攝像機(jī)Camera節(jié)點(diǎn) 160
3.31.1 描述及屬性 160
3.31.2 相機(jī)的識別功能 161
3.31.3 保存相機(jī)圖像到指定位置 163
3.32 頂點(diǎn)3D形狀I(lǐng)ndexedFaceSet節(jié)點(diǎn) 164
3.33 皮膚Skin節(jié)點(diǎn) 164
3.34 鍵盤輸入 165
3.34.1 編程 166
3.34.2 鍵盤示例代碼 166
3.35 仿真項目編輯流程 167
第4章 Webots控制器編程環(huán)境搭建
4.1 Python編程 168
4.1.1 Python和Webots聯(lián)合仿真原理 168
4.1.2 Python環(huán)境設(shè)置 168
4.1.3 使用PyCharm運(yùn)行Python控制器 169
4.1.4 使用Python解釋器運(yùn)行Python控制器 172
4.2 Matlab編程 174
4.2.1 Matlab和Webots聯(lián)合仿真原理 174
4.2.2 Matlab環(huán)境設(shè)置 174
4.2.3 Matlab控制器程序使用 177
4.3 Visual Studio和Webots聯(lián)合仿真 177
4.3.1 Visual Studio和Webots聯(lián)合仿真原理 177
4.3.2 Webots設(shè)置 178
4.3.3 Visual Studio控制器程序使用 180
4.4 機(jī)器人窗口插件Robot Window Plugin 181
4.4.1 機(jī)器人窗口設(shè)置和使用 181
4.4.2 機(jī)器人窗口工作原理分析 182
4.4.3 機(jī)器人窗口補(bǔ)充說明 182
4.5 文件讀寫操作 183
第5章 Webots編程
5.1 控制器程序編程 184
5.1.1 編碼格式與習(xí)慣 184
5.1.2 HelloWorld示例 185
5.1.3 讀傳感器示例 186
5.1.4 使用執(zhí)行器示例 188
5.1.5 程序和場景對象的接口 189
5.1.6 仿真周期和控制周期 189
5.1.7 向控制器程序傳遞參數(shù)(C語言) 190
5.1.8 向控制器傳遞參數(shù)(Python) 191
5.1.9 多個機(jī)器人使用相同的控制器程序 192
5.1.10 控制器程序退出 193
5.1.11 Webots中的包含頭文件 193
5.2 監(jiān)控Supervisor節(jié)點(diǎn)編程 194
5.2.1 Supervisor節(jié)點(diǎn)工作原理 194
5.2.2 Supervisor節(jié)點(diǎn)示例1:基本操作 195
5.2.3 Supervisor節(jié)點(diǎn)示例2:為場景對象施加力和力矩 198
5.2.4 Supervisor節(jié)點(diǎn)常用函數(shù)和操作 200
5.3 C語言程序框架 209
5.4 Python語言程序框架 210
5.4.1 無監(jiān)督的程序框架 210
5.4.2 有監(jiān)督的程序框架 211
5.5 C語言與Python語言編程的運(yùn)行差異 214
5.6 常用的庫 215
5.7 常用函數(shù) 215
5.7.1 打印輸出printf() 215
5.7.2 格式化輸出ANSI_PRINTF_IN_BLACK() 216
5.7.3 返回仿真步長wb_robot_get_basic_time_step() 218
5.7.4 返回以秒為單位的系統(tǒng)仿真模擬時間wb_robot_get_time() 218
5.7.5 返回項目路徑wb_robot_get_project_path() 219
5.7.6 C語言機(jī)器人初始化wb_robot_init()與清理環(huán)境wb_robot_cleanup() 219
5.7.7 獲取對象句柄wb_robot_get_device() 219
5.7.8 設(shè)置電機(jī)位置wb_motor_set_position() 219
5.7.9 設(shè)置電機(jī)速度wb_motor_set_velocity() 220
5.7.10 獲取電機(jī)速度wb_motor_get_velocity() 220
5.7.11 延時wb_robot_step()和自定義函數(shù) 221
第6章 兩輪差速機(jī)器人仿真
6.1 搭建兩輪差速機(jī)器人模型 222
6.1.1 添加機(jī)器人節(jié)點(diǎn)和車體 223
6.1.2 添加差速車輪 223
6.1.3 添加球輪 224
6.2 編寫控制器程序 224
6.3 練習(xí)題:搭建兩輪差速巡線機(jī)器人 225
第7章 四輪差速機(jī)器人仿真
7.1 搭建基本的四輪差速機(jī)器人 226
7.2 搭建具有基本避障功能的四輪差速機(jī)器人 230
7.3 練習(xí)題1:搭建四輪差速巡線機(jī)器人 232
7.4 練習(xí)題2:利用四輪差速機(jī)器人實(shí)現(xiàn)Bug2算法 232
第8章 機(jī)器人底盤仿真
8.1 全向輪的仿真 233
8.1.1 全向輪仿真結(jié)構(gòu) 233
8.1.2 全向輪的控制 235
8.2 麥克納姆輪的仿真 236
8.2.1 麥克納姆輪仿真結(jié)構(gòu) 236
8.2.2 設(shè)計自己的麥克納姆輪小車 239
8.2.3 麥克納姆輪小車的控制 240
8.3 練習(xí)題:RoboCup機(jī)器人大賽中型組仿真系統(tǒng) 242
第9章 四足機(jī)器人仿真
9.1 四足機(jī)器人模型的搭建 244
9.1.1 使用向?qū)Ы㈨椖?245
9.1.2 添加機(jī)器人Robot節(jié)點(diǎn) 246
9.1.3 添加機(jī)器人身體 246
9.1.4 添加機(jī)器人頭部 248
9.1.5 添加機(jī)器人右前腿 248
9.1.6 添加機(jī)器人另外三條腿 256
9.2 添加機(jī)器人控制器程序 258
9.2.1 單腿逆運(yùn)動學(xué)分析 258
9.2.2 walk步態(tài)的說明 261
9.2.3 trot步態(tài)的說明 262
9.3 練習(xí)題:機(jī)器狗越障 263
第10章 無人機(jī)仿真
10.1 直升機(jī)仿真 264
10.2 四旋翼仿真 265
10.2.1 飛行原理 266
10.2.2 飛行控制系統(tǒng) 268
10.2.3 PID控制算法 268
10.2.4 仿真 268
10.3 練習(xí)題:四旋翼無人機(jī)群控 271
第11章 水下機(jī)器人仿真
11.1 水下螺旋槳推進(jìn)機(jī)器人 272
11.2 水下仿生機(jī)器人 272
11.2.1 salamander仿真案例 272
11.2.2 animated_skin仿真案例 276
11.3 練習(xí)題:螺旋槳水下機(jī)器人仿真 277
第12章 人形機(jī)器人仿真
12.1 場景分析 279
12.1.1 機(jī)器人類型轉(zhuǎn)換 279
12.1.2 機(jī)器人關(guān)節(jié)及連桿 279
12.2 程序分析 281
第13章 串聯(lián)機(jī)器人仿真
13.1 使用Python的ikpy庫 288
13.2 利用utils\motion.h播放關(guān)節(jié)角的動作序列 290
13.3 練習(xí)題:協(xié)作機(jī)器人抓取物體 291
第14章 輪椅機(jī)器人仿真
第15章 軟件使用技巧
15.1 仿真軟件中的對象大小 294
15.2 場景編輯的撤銷功能 294
15.3 保存功能 294
15.4 軟件的易用性操作 295
15.5 紋理、模型等資源文件的放置位置 296
15.6 360安全軟件和殺毒軟件 296
15.7 場景對象旋轉(zhuǎn)90° 297
15.7.1 FLU、ENU和RUB、NUE坐標(biāo)系統(tǒng) 298
15.7.2 解決辦法 299
15.8 節(jié)點(diǎn)無法顯示missing proto icon 301
15.9 地面似乎有彈性 302
15.10 從動輪的實(shí)現(xiàn) 303
15.11 移動機(jī)器人的控制 303
15.12 其他 304