跳转至

外设篇 - 仿真器

任务说明

外设篇的仿真器已经实现了 bullet 物理引擎的仿真器,但是只有 bullet 是万万不够的,我们还需要考虑更多的情况,如何使得性能更高?如何在没有 python 环境中运行(以 py 环境为基础镜像的容器大小通常在 1~2G以上,而有些时候我们或许有更好的选择)?

简而言之,我们需要更多的仿真器,仿真器的选择应该交给用户。

好在 bullet 已经被实现了,其主要分为两个部分,rust 端和 python端。其中 rust 端实际上是一个 zmq 通信接口,同时维护 python 的线程,python 端则是 bullet 的 python 接口,负责执行和运行 bullet 的仿真。py 端采用了使用文件初始化,具体的实现参考 src/node/src/simulator/bullet.rsscrepts/simulators/sim_pybullet.py

具体的说,每个仿真器的功能应当包括:

  1. 初始化仿真环境
  2. 接受机器人参数和环境障碍物参数,计算物理状态及绘制在屏幕上

任务实现

尝试实现以下几个仿真器:

  1. bullet 的原生 rust 封装
  2. webots 仿真器
  3. Three.js 仿真器
  4. isaacgym 仿真器
  5. 示波器(效果类似于 matlab 中 simulink 的仿真器)

执行仿真器可能需要测试函数,需要时联系我。