Haptics & Robotics simulation requires extremely robust joints and servos, paired with fast, stable, and accurate collision detection.
Generic Robotics
For examples of commercial use of our Haptics & Robotics suite of tools, please check out the amazing Generic Robotics Youtube Channel!!
Speed
Speed matters when it comes to haptics applications.
For realistic haptics experiences, such as surgical training, high fidelity is key.
Both, the haptics device, and the physics simulation need to be able to consistently run at stable high frequencies, often above 1000 Hz, to accurately represent reality, virtually.
Using the Carbon c++ libraries, Generic Robotics have created a haptics framework in Unreal 4 which is unparalleled in realism and robustness.
Joints
In Carbon, Joints are split into linear joints (such as Ball & Socket and Prismatic) and angular joints (such as swing axle or swing cone) expressed in terms of swing and twist (a natural representation avoiding twist induction issues).
Carbon Joints are best described as "Lego" style modular primitives constraining 3 linear or 3 angular degrees of freedom. By design, Carbon Joints are simple entities with minimal parametrization, code, memory and performance overhead and processed by robust non-linear solvers. By combining these simple Joint modules you can achieve the desired complex mechanisms involving 2 or more rigid bodies.
Servos
While a Joint is not limited in strength, it will always apply the minimum force necessary to achieve its goal. A Servo is different. Its purpose is to maintain an animated pose between a pair of objects. While the Servo will try to apply the minimum force to maintain this pose, it is limited in strength and will give up if the task requires more effort than the Servo is capable of delivering.
Collision
A major advantage of Carbon versus other Robotics physics solvers is that Carbon is a position based solver, and not a velocity based solver.
This provides accurate collision detection without allowing objects to interpenetrate.
Furthermore, Carbon is fully deterministic, has a collision detection algorithm which scales extremely well across large multi-core processors, and natively supports collision between non-convex objects; no need to preprocess geometry or run convex decomposition algorithms. Carbon works with any triangle / quadrangle mesh.