В настоящее время я создаю систему сфер, которые могут срабатывать, чтобы отталкивать друг друга. В каждом углу есть центральные тела (бирюзовые), которые соединены с соединительными телами (желтыми) через PrismaticJoint
, которые таким же образом соединены со следующим углом.
При создании одномерной системы сфер, например системы 1x1x4, я не сталкиваюсь с ошибками, и система ведет себя так, как ожидалось.
Пытаясь создать систему из восьми сфер в ориентации 2x2x2, я сталкиваюсь с ошибками мобилизации. Вот как выглядит система:
И ошибка:
terminate called after throwing an instance of 'std::runtime_error'
what(): This mobilizer is creating a closed loop since the outboard body already has an inboard mobilizer connected to it. If a physical loop is really needed, consider using a constraint instead.
Aborted (core dumped)
Я понимаю, что ошибка возникает для суставов, разделяющих дочерние или внешние тела, как в случае с двумя сторонами куба, воздействующими на один угол. К сожалению, я не нашел способ успешно использовать ограничения. Как я могу лучше определить эту систему?