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

简介:

2.5 用Blender制作机器人的三维模型


在这一节中,我们将设计机器人的3D模型。3D模型主要用来进行三维仿真,采用Blender工具软件进行建模。Blender的版本必须要在V2.6以上,目前我们只在V2.6以上版本中测试过。

Blender软件主界面上的工作空间和用于3D建模的工具栏如图2-14的屏幕截图所示。

我们选择用Blender这个工具的主要原因是,它可以用Python脚本语言进行机器人的3D建模。Blender有一个内置的Python解释器和脚本编辑器,用于代码编写。这里,我们就先不讨论Blender的用户界面了,可以在网上找到详细的教程,可参考下面的链接:http://www.blender.org/support/tutorials/。

下面,我们用Python在Blender中开始为机器人进行3D建模吧!

2.5.1 Blender中的Python脚本语言

Blender软件主要使用C、C++和Python语言。用户可以通过编写自己的Python脚本语言,调用Blender中的所有功能函数。如果你非常精通Blender中Python的API接口,那么可以完全通过编写Python脚本代码构造机器人的3D模型,代替通过人工拖曳工具栏上的工具软件进行建模。

 

图2-14 Blender软件主界面

Blender使用Python 3.x.Blender版本。Python API大部分都比较稳定,但有些地方的功能仍需要补充和改进。详细的Python API文档可参考:http://www.blender.org/documen-tation/blender_python_api_2_69_7/。

下面,我们开始用Blender中的Python API编写机器人模型的脚本代码。

2.5.2 Blender中的Python API介绍

Blender中的Python API接口能够完成绝大部分的功能,能完成的工作主要有以下几项:

可以编辑Blender中的任何数据,例如场景、网格、单点数据等;

修改用户偏好设置、索引图及界面主题;

创建新的Blender工具;

用Python编写OpenGL命令行,绘制3D视角。

Blender给Python解释器提供了一个bpy模块,这个模块可以导入Python脚本语言中,并访问Blender中的数据、类和函数。Python脚本必须通过这个模块,才能处理Blender中的数据。bpy中我们所用到的Python模块有以下几种:

Context Access(上下文访问):允许从bpy.context脚本访问Blender用户界面功能。

Data Access(数据访问):允许访问Blender内部数据(bpy.data)。

Operators(运算符):允许Python访问调用运算符,其中包括C、Python和Macros的运算符(bpy.ops)。

为了在Blender中切换到脚本编辑状态,需要改变Blender的界面布局。图2-15所示的屏幕截图中用方框标明的选项,可以帮您很容易地切换到脚本编辑的界面状态。

 

图2-15 脚本编辑状态

在切换到脚本编辑状态之后,在Blender中可以看到一个文本编辑器和Python的控制台窗口。在文本编辑器中,我们可以通过调用Blender的API接口进行代码编写,也可以尝试通过Python控制台进行Python命令操作。单击“新建”(New)按钮,可以创建一个新的Python脚本文件,并命名为robot.py。现在,我们可以仅通过使用Python脚本语言对机器人的3D模型进行建模。接下来的部分包含对机器人进行3D建模的完整脚本设计过程。在运行之前,我们先来讨论一下它的代码编写过程。希望在此之前,你已经从网站上了解过Blender中提供的Python API接口设置。可以把接下来的代码部分成6个Python功能函数,目的是为了设计出机器人的底座、中间层和顶层,机器人的电机和轮子,4个支撑管,最后将它们输出形成STL(STereoLithography,立体平板印刷)格式的3D文件,用于模型的仿真。

2.5.3 机器人建模中的Python脚本

下面,我们来看看在机器人建模过程中,如何一步步编写Python脚本。

1.?在开始编写Python脚本之前,我们必须在Blender中先导入bpy模块。bpy模块包含Blender中所有的功能函数,并且只能通过Blender应用程序进行内部访问:

 

2.?下面的函数将画出机器人的底座。一个半径为5cm的圆柱面,在它的两侧都削减去一部分,用于机器人电机的连接,连接状态在Blender中可以用布尔型(Boolean)修饰符:

 

3.?创建两个半径为0.05m的立方体,它们分别位于底座的两边。创建这两个立方体是为了从底座上抠掉这两个立方体。这样,我们会得到一个底座,它的两边有两个空心的立方体。之后,要将之前创建的这两个立方体删除,该过程的代码如下:

 

 

4.?绘制机器人底座上的电机和轮子:

 

5.?绘制轮子,它是由一个半径为0.045m高为0.01m的圆柱体制成的。在轮子生成以后,它可以旋转到合适的角度,放置在底座两边空心的立方体处:

 

 

6.?在底座上添加两个虚拟的电机。电机的2D设计尺寸在前面已经提到过。电机大致就是一个圆柱体的形状,通过旋转到合适的角度将其放置在底座上:

 

7.?在电机上添加一个轴,相当于对电机进行建模。电机的轴也可以看作是一个小的圆柱体,将其旋转合适的角度,插入电机模型中:

 

8.?在底座上添加两个脚轮。这里我们用圆柱体代替轮子,在仿真的时候,可以把它当作是轮子:

 

9.?添加一个虚拟的Kinect传感器:

 

10.?绘制机器人的中间层:

 

 

11.?绘制连接底层、中间层和顶层的4个支撑空心管:

 

12.?将设计好的机器人图纸输出成STL格式文件。在执行脚本命令之前,要更改STL文件的路径:

 

13.?在文本编辑器中键入代码之后,通过点击“运行脚本”按钮执行该脚本,如

图2-16屏幕截图上的方框所示。输出的3D模型会在Blender的3D视图窗口显示。同时,如果认真查看桌面,能够找到用于仿真的exported.stl文件。

exported.stl文件可以用MeshLab软件打开,MeshLab的屏幕截图如图2-17所示。

 

图2-16 执行脚本后的屏幕截图

 

图2-17 MeshLab截图

下载示例代码

你可从华章网站(www.hzbook.com)下载本书的示例代码。

相关文章
|
4月前
|
机器学习/深度学习 人工智能 分布式计算
使用PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建文旅领域知识问答机器人
本次教程介绍了如何使用 PAI ×LLaMA Factory 框架,基于全参方法微调 Qwen2-VL 模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
使用PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建文旅领域知识问答机器人
|
10天前
|
数据采集 人工智能 算法
Seer:上海 AI Lab 与北大联合开源端到端操作模型,结合视觉预测与动作执行信息,使机器人任务提升成功率43%
Seer是由上海AI实验室与北大等机构联合推出的端到端操作模型,结合视觉预测与动作执行,显著提升机器人任务成功率。
49 20
Seer:上海 AI Lab 与北大联合开源端到端操作模型,结合视觉预测与动作执行信息,使机器人任务提升成功率43%
|
12天前
|
人工智能 自动驾驶 安全
Cosmos:英伟达生成式世界基础模型平台,加速自动驾驶与机器人开发
Cosmos 是英伟达推出的生成式世界基础模型平台,旨在加速物理人工智能系统的发展,特别是在自动驾驶和机器人领域。
119 15
Cosmos:英伟达生成式世界基础模型平台,加速自动驾驶与机器人开发
|
19天前
|
存储 自然语言处理 机器人
基于的Qwen模型的智能客服Discord机器人,使用🐫 CAMEL、SambaNova、Firecrawl和Qdrant实现RAG Agent
基于Qwen模型的智能客服Discord机器人,使用CAMEL、SambaNova、Firecrawl和Qdrant实现RAG Agent。构建了一个能够处理复杂问题并能进行快速响应的强大聊天机器人。该机器人可在Discord平台上运行,支持实时对话和语义搜索,提供准确、全面的回答。项目包含详细的安装步骤、代码示例及集成指南,适合开发者快速上手。
|
1月前
|
传感器 人工智能 自然语言处理
RDT:清华开源全球最大的双臂机器人操作任务扩散基础模型、代码与训练集,基于模仿能力机器人能够自主完成复杂任务
RDT(Robotics Diffusion Transformer)是由清华大学AI研究院TSAIL团队推出的全球最大的双臂机器人操作任务扩散基础模型。RDT具备十亿参数量,能够在无需人类操控的情况下自主完成复杂任务,如调酒和遛狗。
110 22
RDT:清华开源全球最大的双臂机器人操作任务扩散基础模型、代码与训练集,基于模仿能力机器人能够自主完成复杂任务
|
16天前
|
人工智能 算法 自动驾驶
Jim Fan全华人团队HOVER问世,1.5M小模型让机器人获潜意识!
在机器人技术领域,人形机器人的全身控制一直极具挑战。传统方法为不同任务(如导航、移动操作等)单独训练控制策略,限制了策略的可转移性。Jim Fan团队提出HOVER框架,通过全身运动模仿作为共同抽象,整合多种控制模式,实现无缝过渡,显著提升控制效率和灵活性。HOVER不仅为人形机器人应用带来巨大潜力,也为机器人技术发展提供新思路。论文地址:https://arxiv.org/abs/2410.21229
50 23
|
1月前
|
人工智能 算法 机器人
EMMA-X:新加坡科技设计大学推出具身多模态动作模型,使夹爪机器人具备空间推理和任务规划能力
EMMA-X是由新加坡科技设计大学推出的具身多模态动作模型,具备70亿参数,通过在链式思维推理数据上微调OpenVLA创建。该模型结合层次化的具身数据集,增强空间推理和任务规划能力。
86 3
EMMA-X:新加坡科技设计大学推出具身多模态动作模型,使夹爪机器人具备空间推理和任务规划能力
|
1月前
|
机器学习/深度学习 人工智能 机器人
NeurIPS 2024:机器人操纵世界模型来了,成功率超过谷歌RT-1 26.6%
PIVOT-R是一种新型世界模型,专注于预测与任务相关的路点,以提高语言引导的机器人操作的性能和效率。该模型由路点感知世界模型(WAWM)和轻量级动作预测模块组成,辅以异步分层执行器(AHE),在SeaWave基准测试中表现优异,平均相对改进达19.45%,执行效率提高28倍。
72 26
|
1月前
|
编解码 机器人 测试技术
技术实践 | 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型快速搭建专业领域知识问答机器人
Qwen2-VL是一款具备高级图像和视频理解能力的多模态模型,支持多种语言,适用于多模态应用开发。通过PAI和LLaMA Factory框架,用户可以轻松微调Qwen2-VL模型,快速构建文旅领域的知识问答机器人。本教程详细介绍了从模型部署、微调到对话测试的全过程,帮助开发者高效实现定制化多模态应用。
|
1月前
|
XML 算法 自动驾驶
使用URDF和Xacro构建差速轮式机器人模型
前言 本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。 差速轮式机器人:两轮差速底盘由两个动力轮位于底盘左右两侧,两轮独立控制速度,通过给定不同速度实现底盘转向控制。一般会配有一到两个辅助支撑的万向轮。 此次建模,不引入算法,只是把机器人模型的样子做出来,所以只使用 rivz 进行可视化显示。 机器人的定义和构成 机器人定义:机器人是一种自动化的机器,所不同的是这种机器具备一些与人或生物相似的智能能力,如感知能力、规划能力、动作能力和协同能力,是一种具有高级灵活性的自动化机器
74 15

热门文章

最新文章