外设篇 - 仿真器
任务说明
外设篇的仿真器已经实现了 bullet 物理引擎的仿真器,但是只有 bullet 是万万不够的,我们还需要考虑更多的情况,如何使得性能更高?如何在没有 python 环境中运行(以 py 环境为基础镜像的容器大小通常在 1~2G以上,而有些时候我们或许有更好的选择)?
简而言之,我们需要更多的仿真器,仿真器的选择应该交给用户。
好在 bullet 已经被实现了,其主要分为两个部分,rust 端和 python端。其中 rust 端实际上是一个 zmq 通信接口,同时维护 python 的线程,python 端则是 bullet 的 python 接口,负责执行和运行 bullet 的仿真。py 端采用了使用文件初始化,具体的实现参考 src/node/src/simulator/bullet.rs
和 screpts/simulators/sim_pybullet.py
。
具体的说,每个仿真器的功能应当包括:
- 初始化仿真环境
- 接受机器人参数和环境障碍物参数,计算物理状态及绘制在屏幕上
任务实现
尝试实现以下几个仿真器:
- bullet 的原生 rust 封装
- webots 仿真器
- Three.js 仿真器
- isaacgym 仿真器
- 示波器(效果类似于 matlab 中 simulink 的仿真器)
执行仿真器可能需要测试函数,需要时联系我。