日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

机器人系统设计与制作:Python语言实现2.5 用Blender制作机器人的三维模型

發(fā)布時(shí)間:2023/12/15 windows 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器人系统设计与制作:Python语言实现2.5 用Blender制作机器人的三维模型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2.5 用Blender制作機(jī)器人的三維模型


在這一節(jié)中,我們將設(shè)計(jì)機(jī)器人的3D模型。3D模型主要用來進(jìn)行三維仿真,采用Blender工具軟件進(jìn)行建模。Blender的版本必須要在V2.6以上,目前我們只在V2.6以上版本中測(cè)試過。

Blender軟件主界面上的工作空間和用于3D建模的工具欄如圖2-14的屏幕截圖所示。

我們選擇用Blender這個(gè)工具的主要原因是,它可以用Python腳本語言進(jìn)行機(jī)器人的3D建模。Blender有一個(gè)內(nèi)置的Python解釋器和腳本編輯器,用于代碼編寫。這里,我們就先不討論Blender的用戶界面了,可以在網(wǎng)上找到詳細(xì)的教程,可參考下面的鏈接:http://www.blender.org/support/tutorials/。

下面,我們用Python在Blender中開始為機(jī)器人進(jìn)行3D建模吧!

2.5.1 Blender中的Python腳本語言

Blender軟件主要使用C、C++和Python語言。用戶可以通過編寫自己的Python腳本語言,調(diào)用Blender中的所有功能函數(shù)。如果你非常精通Blender中Python的API接口,那么可以完全通過編寫Python腳本代碼構(gòu)造機(jī)器人的3D模型,代替通過人工拖曳工具欄上的工具軟件進(jìn)行建模。

?

圖2-14 Blender軟件主界面

Blender使用Python 3.x.Blender版本。Python API大部分都比較穩(wěn)定,但有些地方的功能仍需要補(bǔ)充和改進(jìn)。詳細(xì)的Python API文檔可參考:http://www.blender.org/documen-tation/blender_python_api_2_69_7/。

下面,我們開始用Blender中的Python API編寫機(jī)器人模型的腳本代碼。

2.5.2 Blender中的Python API介紹

Blender中的Python API接口能夠完成絕大部分的功能,能完成的工作主要有以下幾項(xiàng):

可以編輯Blender中的任何數(shù)據(jù),例如場(chǎng)景、網(wǎng)格、單點(diǎn)數(shù)據(jù)等;

修改用戶偏好設(shè)置、索引圖及界面主題;

創(chuàng)建新的Blender工具;

用Python編寫OpenGL命令行,繪制3D視角。

Blender給Python解釋器提供了一個(gè)bpy模塊,這個(gè)模塊可以導(dǎo)入Python腳本語言中,并訪問Blender中的數(shù)據(jù)、類和函數(shù)。Python腳本必須通過這個(gè)模塊,才能處理Blender中的數(shù)據(jù)。bpy中我們所用到的Python模塊有以下幾種:

Context Access(上下文訪問):允許從bpy.context腳本訪問Blender用戶界面功能。

Data Access(數(shù)據(jù)訪問):允許訪問Blender內(nèi)部數(shù)據(jù)(bpy.data)。

Operators(運(yùn)算符):允許Python訪問調(diào)用運(yùn)算符,其中包括C、Python和Macros的運(yùn)算符(bpy.ops)。

為了在Blender中切換到腳本編輯狀態(tài),需要改變Blender的界面布局。圖2-15所示的屏幕截圖中用方框標(biāo)明的選項(xiàng),可以幫您很容易地切換到腳本編輯的界面狀態(tài)。

?

圖2-15 腳本編輯狀態(tài)

在切換到腳本編輯狀態(tài)之后,在Blender中可以看到一個(gè)文本編輯器和Python的控制臺(tái)窗口。在文本編輯器中,我們可以通過調(diào)用Blender的API接口進(jìn)行代碼編寫,也可以嘗試通過Python控制臺(tái)進(jìn)行Python命令操作。單擊“新建”(New)按鈕,可以創(chuàng)建一個(gè)新的Python腳本文件,并命名為robot.py。現(xiàn)在,我們可以僅通過使用Python腳本語言對(duì)機(jī)器人的3D模型進(jìn)行建模。接下來的部分包含對(duì)機(jī)器人進(jìn)行3D建模的完整腳本設(shè)計(jì)過程。在運(yùn)行之前,我們先來討論一下它的代碼編寫過程。希望在此之前,你已經(jīng)從網(wǎng)站上了解過Blender中提供的Python API接口設(shè)置。可以把接下來的代碼部分成6個(gè)Python功能函數(shù),目的是為了設(shè)計(jì)出機(jī)器人的底座、中間層和頂層,機(jī)器人的電機(jī)和輪子,4個(gè)支撐管,最后將它們輸出形成STL(STereoLithography,立體平板印刷)格式的3D文件,用于模型的仿真。

2.5.3 機(jī)器人建模中的Python腳本

下面,我們來看看在機(jī)器人建模過程中,如何一步步編寫Python腳本。

1.?在開始編寫Python腳本之前,我們必須在Blender中先導(dǎo)入bpy模塊。bpy模塊包含Blender中所有的功能函數(shù),并且只能通過Blender應(yīng)用程序進(jìn)行內(nèi)部訪問:

?

2.?下面的函數(shù)將畫出機(jī)器人的底座。一個(gè)半徑為5cm的圓柱面,在它的兩側(cè)都削減去一部分,用于機(jī)器人電機(jī)的連接,連接狀態(tài)在Blender中可以用布爾型(Boolean)修飾符:

?

3.?創(chuàng)建兩個(gè)半徑為0.05m的立方體,它們分別位于底座的兩邊。創(chuàng)建這兩個(gè)立方體是為了從底座上摳掉這兩個(gè)立方體。這樣,我們會(huì)得到一個(gè)底座,它的兩邊有兩個(gè)空心的立方體。之后,要將之前創(chuàng)建的這兩個(gè)立方體刪除,該過程的代碼如下:

?

?

4.?繪制機(jī)器人底座上的電機(jī)和輪子:

?

5.?繪制輪子,它是由一個(gè)半徑為0.045m高為0.01m的圓柱體制成的。在輪子生成以后,它可以旋轉(zhuǎn)到合適的角度,放置在底座兩邊空心的立方體處:

?

?

6.?在底座上添加兩個(gè)虛擬的電機(jī)。電機(jī)的2D設(shè)計(jì)尺寸在前面已經(jīng)提到過。電機(jī)大致就是一個(gè)圓柱體的形狀,通過旋轉(zhuǎn)到合適的角度將其放置在底座上:

?

7.?在電機(jī)上添加一個(gè)軸,相當(dāng)于對(duì)電機(jī)進(jìn)行建模。電機(jī)的軸也可以看作是一個(gè)小的圓柱體,將其旋轉(zhuǎn)合適的角度,插入電機(jī)模型中:

?

8.?在底座上添加兩個(gè)腳輪。這里我們用圓柱體代替輪子,在仿真的時(shí)候,可以把它當(dāng)作是輪子:

?

9.?添加一個(gè)虛擬的Kinect傳感器:

?

10.?繪制機(jī)器人的中間層:

?

?

11.?繪制連接底層、中間層和頂層的4個(gè)支撐空心管:

?

12.?將設(shè)計(jì)好的機(jī)器人圖紙輸出成STL格式文件。在執(zhí)行腳本命令之前,要更改STL文件的路徑:

?

13.?在文本編輯器中鍵入代碼之后,通過點(diǎn)擊“運(yùn)行腳本”按鈕執(zhí)行該腳本,如

圖2-16屏幕截圖上的方框所示。輸出的3D模型會(huì)在Blender的3D視圖窗口顯示。同時(shí),如果認(rèn)真查看桌面,能夠找到用于仿真的exported.stl文件。

exported.stl文件可以用MeshLab軟件打開,MeshLab的屏幕截圖如圖2-17所示。

?

圖2-16 執(zhí)行腳本后的屏幕截圖

?

圖2-17 MeshLab截圖

下載示例代碼

你可從華章網(wǎng)站(www.hzbook.com)下載本書的示例代碼。

總結(jié)

以上是生活随笔為你收集整理的机器人系统设计与制作:Python语言实现2.5 用Blender制作机器人的三维模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。