Webots移動(dòng)機(jī)器人仿真實(shí)例教程
定 價(jià):98 元
當(dāng)前圖書(shū)已被 1 所學(xué)校薦購(gòu)過(guò)!
查看明細(xì)
- 作者:秦宇飛、劉相權(quán) 著
- 出版時(shí)間:2025/7/1
- ISBN:9787122475473
- 出 版 社:化學(xué)工業(yè)出版社
- 中圖法分類(lèi):TP242
- 頁(yè)碼:304
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
《Webots移動(dòng)機(jī)器人仿真實(shí)例教程》全面介紹了Webots仿真軟件的使用及其在各種機(jī)器人領(lǐng)域的應(yīng)用。本書(shū)內(nèi)容詳盡,從Webots的基礎(chǔ)入門(mén)到高級(jí)操作,既包括了軟件安裝、界面操作、節(jié)點(diǎn)編輯等基礎(chǔ)知識(shí),又涵蓋了兩輪差速機(jī)器人、四輪差速機(jī)器人、四足機(jī)器人、無(wú)人機(jī)、水下機(jī)器人、人形機(jī)器人等多種類(lèi)型機(jī)器人的仿真案例。本書(shū)內(nèi)容特色在于實(shí)用性和操作性,通過(guò)豐富的案例和詳細(xì)的步驟指導(dǎo),幫助讀者快速掌握Webots的仿真技巧。此外,本書(shū)還提供了控制器編程環(huán)境的搭建和編程方法,讓讀者能夠自主設(shè)計(jì)并實(shí)現(xiàn)復(fù)雜的機(jī)器人控制算法。
本書(shū)適合機(jī)器人專業(yè)的學(xué)生、科研工作者、工程師以及對(duì)機(jī)器人仿真感興趣的讀者閱讀。無(wú)論是初學(xué)者還是有一定經(jīng)驗(yàn)的用戶,都能從本書(shū)中獲得寶貴的指導(dǎo)和啟示。通過(guò)閱讀本書(shū),讀者能夠更深入地理解Webots軟件的功能和應(yīng)用,提升自己在機(jī)器人仿真領(lǐng)域的技能和水平。
第1章 Webots入門(mén)
1.1 Webots簡(jiǎn)介 001
1.2 常用機(jī)器人仿真軟件對(duì)比 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 初識(shí)機(jī)器人運(yùn)動(dòng)仿真 012
1.5.1 切換到中文界面 012
1.5.2 界面風(fēng)格 012
1.5.3 軟件自帶的項(xiàng)目示例 013
1.5.4 認(rèn)識(shí)仿真環(huán)境 014
1.5.5 編寫(xiě)一個(gè)簡(jiǎn)單的機(jī)器人仿真項(xiàng)目 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)動(dòng)仿真項(xiàng)目搭建思路 029
1.7 幫助文檔及項(xiàng)目示例 029
1.7.1 在線幫助文檔 031
1.7.2 及時(shí)查看在線幫助文檔的方法 032
1.7.3 離線查看幫助文檔 032
1.7.4 半離線查看幫助文檔 033
1.7.5 項(xiàng)目示例文件 036
第2章 Webots基本操作
2.1 3D視圖基本操作 037
2.1.1 調(diào)整視角 037
2.1.2 移動(dòng)和旋轉(zhuǎn)對(duì)象 037
2.1.3 恢復(fù)布局 037
2.2 人為施加力操作 038
2.3 工具欄 038
2.3.1 仿真時(shí)間及仿真速率 039
2.3.2 運(yùn)行控制 039
2.3.3 渲染 039
2.3.4 錄屏和聲音 039
2.4 向?qū)Р藛?040
2.4.1 新建項(xiàng)目的主要步驟 040
2.4.2 新建項(xiàng)目目錄向?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)時(shí)無(wú)法看到縮略圖 043
2.5.3 無(wú)法添加基礎(chǔ)節(jié)點(diǎn) 044
2.6 對(duì)象的導(dǎo)出和導(dǎo)入 045
2.6.1 不同版本的Webots對(duì)文件格式導(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ī)器人移動(dòng) 061
2.7.4 移動(dòng)視角到對(duì)象 062
2.7.5 顯示攝像頭視場(chǎng) 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 場(chǎng)景樹(shù) 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基本仿真步長(zhǎng) 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í)體對(duì)象的大小和位姿 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:簡(jiǎn)單旋轉(zhuǎn)關(guān)節(jié) 109
3.12.4 示例2:關(guān)節(jié)的參數(shù)調(diào)節(jié) 110
3.13 滑動(dòng)關(guān)節(jié)SliderJoint節(jié)點(diǎn) 111
3.13.1 滑動(dòng)關(guān)節(jié)參數(shù) 111
3.13.2 示例1:簡(jiǎn)單滑動(dòng)關(guān)節(jié) 111
3.13.3 示例2:滑動(dòng)關(guān)節(jié)對(duì)比 113
3.13.4 示例3:滑動(dòng)關(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 自碰撞檢測(cè)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 羅盤(pán)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)及浸沒(méi)屬性immersionProperties節(jié)點(diǎn) 153
3.29.1 流體Fluid節(jié)點(diǎn)描述及屬性 153
3.29.2 浸沒(méi)屬性immersionProperties節(jié)點(diǎn) 154
3.29.3 示例1:浮力 156
3.29.4 示例2:拖曳力之推動(dòng)力 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ī)的識(shí)別功能 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 鍵盤(pán)輸入 165
3.34.1 編程 166
3.34.2 鍵盤(pán)示例代碼 166
3.35 仿真項(xiàng)目編輯流程 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ǔ)充說(shuō)明 182
4.5 文件讀寫(xiě)操作 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 程序和場(chǎng)景對(duì)象的接口 189
5.1.6 仿真周期和控制周期 189
5.1.7 向控制器程序傳遞參數(shù)(C語(yǔ)言) 190
5.1.8 向控制器傳遞參數(shù)(Python) 191
5.1.9 多個(gè)機(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:為場(chǎng)景對(duì)象施加力和力矩 198
5.2.4 Supervisor節(jié)點(diǎn)常用函數(shù)和操作 200
5.3 C語(yǔ)言程序框架 209
5.4 Python語(yǔ)言程序框架 210
5.4.1 無(wú)監(jiān)督的程序框架 210
5.4.2 有監(jiān)督的程序框架 211
5.5 C語(yǔ)言與Python語(yǔ)言編程的運(yùn)行差異 214
5.6 常用的庫(kù) 215
5.7 常用函數(shù) 215
5.7.1 打印輸出printf() 215
5.7.2 格式化輸出ANSI_PRINTF_IN_BLACK() 216
5.7.3 返回仿真步長(zhǎng)wb_robot_get_basic_time_step() 218
5.7.4 返回以秒為單位的系統(tǒng)仿真模擬時(shí)間wb_robot_get_time() 218
5.7.5 返回項(xiàng)目路徑wb_robot_get_project_path() 219
5.7.6 C語(yǔ)言機(jī)器人初始化wb_robot_init()與清理環(huán)境wb_robot_cleanup() 219
5.7.7 獲取對(duì)象句柄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 延時(shí)wb_robot_step()和自定義函數(shù) 221
第6章 兩輪差速機(jī)器人仿真
6.1 搭建兩輪差速機(jī)器人模型 222
6.1.1 添加機(jī)器人節(jié)點(diǎn)和車(chē)體 223
6.1.2 添加差速車(chē)輪 223
6.1.3 添加球輪 224
6.2 編寫(xiě)控制器程序 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ī)器人底盤(pán)仿真
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è)計(jì)自己的麥克納姆輪小車(chē) 239
8.2.3 麥克納姆輪小車(chē)的控制 240
8.3 練習(xí)題:RoboCup機(jī)器人大賽中型組仿真系統(tǒng) 242
第9章 四足機(jī)器人仿真
9.1 四足機(jī)器人模型的搭建 244
9.1.1 使用向?qū)Ы㈨?xiàng)目 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)動(dòng)學(xué)分析 258
9.2.2 walk步態(tài)的說(shuō)明 261
9.2.3 trot步態(tài)的說(shuō)明 262
9.3 練習(xí)題:機(jī)器狗越障 263
第10章 無(wú)人機(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í)題:四旋翼無(wú)人機(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 場(chǎng)景分析 279
12.1.1 機(jī)器人類(lèi)型轉(zhuǎn)換 279
12.1.2 機(jī)器人關(guān)節(jié)及連桿 279
12.2 程序分析 281
第13章 串聯(lián)機(jī)器人仿真
13.1 使用Python的ikpy庫(kù) 288
13.2 利用utils\motion.h播放關(guān)節(jié)角的動(dòng)作序列 290
13.3 練習(xí)題:協(xié)作機(jī)器人抓取物體 291
第14章 輪椅機(jī)器人仿真
第15章 軟件使用技巧
15.1 仿真軟件中的對(duì)象大小 294
15.2 場(chǎng)景編輯的撤銷(xiāo)功能 294
15.3 保存功能 294
15.4 軟件的易用性操作 295
15.5 紋理、模型等資源文件的放置位置 296
15.6 360安全軟件和殺毒軟件 296
15.7 場(chǎng)景對(duì)象旋轉(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)無(wú)法顯示missing proto icon 301
15.9 地面似乎有彈性 302
15.10 從動(dòng)輪的實(shí)現(xiàn) 303
15.11 移動(dòng)機(jī)器人的控制 303
15.12 其他 304