随笔分类 -  仿真物理引擎学习笔记

摘要:Genesis 是一款用于具身智能的生成式仿真平台,目前仍在开发调试阶段。其具备自主生成仿真场景的能力,并支持可微仿真 differentiable simulation。Genesis-Embodied-AI/Genesis 在论文 Towards Generalist Robots: A Pro 阅读全文
posted @ 2024-08-13 00:05 wghou09 阅读(403) 评论(0) 推荐(1) 编辑
摘要:在数值模拟中,前期往往通过建模软件等得到三维模型数据,其中包含不同的区域(可作为不同边界)。在 Gmsh 划分网格的过程中,就需要通过几个 *.stl 文件合并后,进行网格划分。下面是一个示例。 Gmsh: merge surface 网格划分 首先,前期得到三部分表面网格(代表实体的不同区域)。分 阅读全文
posted @ 2021-05-25 17:22 wghou09 阅读(846) 评论(0) 推荐(0) 编辑
摘要:数值模拟的起始环节之一是创建网格。下面介绍常用的一些工具,并尽力给出部分示例。 Blender Blender 是我自己常用的一款建模软件,虽然与AutoCAD、SolidWorks等不同,但基本的三维建模功能用的比较多一些。能够建立三维模型,并输出 *.obj / *.stl 等格式的文件。这里面 阅读全文
posted @ 2021-05-25 14:39 wghou09 阅读(519) 评论(0) 推荐(0) 编辑
摘要:总的来说,基于 fenics 的程序,可大致划分为 4 个部分:问题域、边界条件、问题描述、求解 1 - 问题域 首先,需要定义需要求解的问题域。通常,问题域可离散为网格单元。此外,为了准确表示问题域中的不同区域,如多种材料、边界等,常常在网格中加入标记。 一般来说,流程如下: 1> 创建网格,即 阅读全文
posted @ 2021-02-10 17:59 wghou09 阅读(465) 评论(0) 推荐(0) 编辑
摘要:1 - 问题域为 Ω 2 - 方程及其变分形式 $$\begin{aligned} -\nabla^2 u(\boldsymbol{x}) &= f(\boldsymbol{x}), \quad &\boldsymbol{x} \in \Omega \ u(\boldsymbol{x} 阅读全文
posted @ 2020-12-18 12:22 wghou09 阅读(204) 评论(0) 推荐(0) 编辑
摘要:下面梳理 Bullet Physics 中关于软体的碰撞检测流程及算法。 在 Bullet Physics 中,涉及软体的碰撞检测主要由函数 btDiscreteDynamicsWorld::performDiscreteCollisionDetection() 和函数 btDeformableRi 阅读全文
posted @ 2020-06-24 17:03 wghou09 阅读(1158) 评论(1) 推荐(0) 编辑
摘要:形变仿真中,积分方法主要有显式积分方法(Explicit time integration scheme)、隐式时间积分方法(Implicit time integration scheme)等。 下面介绍 中心插值法、Houbolt 方法、Wilson-θ 方法、以及 Newmark 阅读全文
posted @ 2020-06-22 19:54 wghou09 阅读(893) 评论(0) 推荐(0) 编辑
摘要:下面梳理软体对象的仿真过程。 在例程 VolumetricDeformable 中,使用了 btDeformableMultiBodyDynamicsWrold 类以及 btDeformableBodySolver 类,因此,该仿真流程即为对 btDeformableMultiBodyDynamic 阅读全文
posted @ 2020-06-21 23:36 wghou09 阅读(974) 评论(0) 推荐(0) 编辑
摘要:参照 Bullet Physics 官方例程 VolumetricDeformable,梳理软体形变仿真流程。 0 环境搭建 仿真场景类为 btDeformableMultiBodyDynamicsWorld ,碰撞检测 broadphase 使用类 btDbvtBroadphase 完成,碰撞检测 阅读全文
posted @ 2020-06-21 21:46 wghou09 阅读(370) 评论(0) 推荐(0) 编辑
摘要:参照 GraspDeformable 实例,探究软体抓取的仿真流程。 1 仿真场景的构成 仿真场景类为 btDeformableMultiBodyDynamicsWorld ,派生关系为 btDiscreteDynamicsWorld -> btMultiBodyDynamicsWorld -> b 阅读全文
posted @ 2020-05-12 16:24 wghou09 阅读(515) 评论(0) 推荐(0) 编辑
摘要:btSoftBodySolver 是 Bullet 物理引擎中关于软体形变仿真的又一个关键类。btSoftBodySolver 提供了关于软体形变仿真求解的一些接口。目前,在 Bullet 物理引擎中,派生出的只有 btDefaultSoftBodySolver 类。 下面来看一下,btDefaul 阅读全文
posted @ 2020-05-04 19:29 wghou09 阅读(489) 评论(0) 推荐(0) 编辑
摘要:Soft Body 是 Bullet 引擎中用于布料、软体等形变仿真的类。 1、软体的基本组成元素 Node 、Link、Face、Tetra 以及 Material 在 soft body 中,一般是由点、线、面、四面体单元等基本元素构成。下面将分别介绍一下,各个元素的代码,以及使用方法。 1.1 阅读全文
posted @ 2020-05-04 16:45 wghou09 阅读(1014) 评论(0) 推荐(1) 编辑
摘要:在最近几个新的版本中,Bullet 物理引擎逐步加入并完善了软体形变的仿真。btSoftBody 类用于软体的模拟,仿真场景则通过 btSoftRigidDynamicsWorld 搭建。下面简单介绍一下 Soft Body Physics Pipeline 。 0、Overview 软体仿真的场景 阅读全文
posted @ 2020-05-04 13:29 wghou09 阅读(1130) 评论(0) 推荐(0) 编辑
摘要:在 Bullet User Manual 第3章 Library Overview 中,介绍了 Bullet Physics 的 pipeline,如下图所示: 这部分工作,都包含在了函数 btDiscreteDynamicsWorld::stepSimulation(...) 中。下面结合具体代码 阅读全文
posted @ 2020-05-03 18:17 wghou09 阅读(1012) 评论(0) 推荐(0) 编辑
摘要:在 Bullet 物理引擎的碰撞检测中,两物体之间的碰撞结果由 btPersistentManifold 存放。其中,两物体之间最多可以有4个(0~4个)碰撞/接触点,接触点为 btManifoldPoint 类。 在碰撞检测结果中,形成了那些信息?不同的碰撞检测算法,都涉及到什么样的信息?等等,这 阅读全文
posted @ 2020-05-03 09:29 wghou09 阅读(468) 评论(0) 推荐(1) 编辑
摘要:Bullet 物理引擎能够实现多种方式的碰撞检测。其中,对场景中的所有物体进行碰撞检测,是其主要的功能之一。以下将逐步分析一下,该碰撞检测流程 1、碰撞检测主要步骤 在 btCollisionWorld 类中,首先向场景中添加碰撞对象,存入 m_collisionObjects 中,同时向 btCo 阅读全文
posted @ 2020-05-02 23:44 wghou09 阅读(1302) 评论(2) 推荐(1) 编辑
摘要:对于 Bullet 物理引擎中的碰撞检测部分,并不太关心它的实现细节,更想知道的是物体的存储方式/数据存放、碰撞结果在哪儿,大致的步骤等 1、碰撞场景类 btCollisionWorld 的结构 btCollisionWorld 是 Bullet 物理引擎中的碰撞场景类,并由此派生出了 btDyna 阅读全文
posted @ 2020-05-02 19:23 wghou09 阅读(1320) 评论(0) 推荐(1) 编辑
摘要:Bullet User Manual 第三部分,参见 bullet3/docs/Bullet_User_Manual.pdf 总体上绍了 Bullet 物理引擎的整体架构、仿真流程、基础数据结构等。 Bullet 物理引擎的主要功能为 碰撞检测、碰撞/约束求解、物体状态的更新。 The main t 阅读全文
posted @ 2020-05-01 16:50 wghou09 阅读(778) 评论(0) 推荐(0) 编辑
摘要:Bullet User Manual 第一部分,参见 bullet3/docs/Bullet_User_Manual.pdf 总体上概述了 Bullet 物理引擎的功能及特征。 Bullet 物理引擎主要用于游戏、视觉效果仿真、机器人仿真等。 The library is primarily des 阅读全文
posted @ 2020-05-01 16:45 wghou09 阅读(513) 评论(0) 推荐(0) 编辑
摘要:Bullet 物理引擎的作者给出了一份简单的用户学习手册,参见bullet3/docs/Bullet_User_Manual.pdf 手册中介绍了总体功能框架及实现思路,主要有以下几个部分。后续随笔中,将逐个部分结合代码做进一步的分析。 借助 Bullet 物理引擎,希望实现的功能是软体机器人仿真。 阅读全文
posted @ 2020-05-01 15:29 wghou09 阅读(688) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示