写在前面
最近做一个课题,需要建立一个虚拟手术训练系统。实验室的前辈们在2010年是做过的,当时采用的是通过osg库实时建模实现虚拟仿真。但无奈实验室电脑出了问题,前辈留下的代码几乎付之一炬,无奈之下只能从头开始。前辈使用的osg效果看来是很好的,但是osg作为一个3d渲染库,在物体交互反馈方面会比较薄弱。我希望新的系统能够实现更加直观的交互反馈,所以尝试使用物理引擎进行系统构建。
作为之前对这个领域完全没有接触过的萌新,对各种知识都需要重新开始学习。构建虚拟训练系统所涉及的知识面是很广的。比如模型的建立需要使用urdf文件,obj文件等,这两种不同类型的模型需要使用ros以及blender软件完成。在学习这些知识的过程中也是碰到了很多坑,故通过本博文对我的学习过程进行归纳总结,同时希望对后来者提供一点思路。
环境搭建
需要搭建的环境有:pybullet,ros。
pyBullet
pybullet是物理引擎,运行于python环境。当然也可以使用c++调用bullet库,效果是一样的。这里我使用的是pybullet,安装方法很简单,只需在控制台输入:
pip3 install pybullet --user --upgrade
Note:
- pybullet是python的一个包,请先安装python3最新版本。
- 建议使用python虚拟环境进行开发。虚拟环境的创建方式有很多种,这里推荐一个简单的:安装virtualenv,使用pyc