Watch: Continuity Rover - Landing / balancing behaviour
The primary objective this month was to initiate the transition from purely visual and rigid-body modelling in Blender to physics-based simulation in PyBullet. While Blender had served effectively for early kinematic studies and visualisation of Continuity’s geometry, it lacked the dynamic capabilities required to simulate forces, joint torques, and leg-ground interactions in a controlled environment. PyBullet, though less user-friendly from a graphical standpoint, offered a real-time physics engine suitable for iterative testing.
The most significant challenge was reproducing Continuity’s leg mechanism. Each leg consists of a four-bar parallel linkage, forming a closed kinematic chain. This structure is problematic because URDF, which PyBullet uses to define robot models, does not support closed-chain topologies. As a result, I was unable to directly port the leg configuration into the simulator. To work around this, I implemented a simplified approximation: each leg was modelled using four links (two femurs and two tibias), with the tibias connected via a revolute joint that effectively acted as a "fake" pin. This allowed the visual representation to preserve the symmetry of the real leg while permitting control via two motors per leg (one for extension/retraction and one for swing). However, because these joints were not physically constrained in a true closed chain, the simulation exhibited non-physical behaviours under stress, especially during dynamic motion. This workaround was considered a temporary solution to enable early-stage testing of the body-leg interface and control logic. Despite the approximations, by the end of September, I had a functioning URDF-based model of Continuity with all four legs instantiated, ready to begin terrain interaction and control validation.