Выше я рекомендовал сделать добавить assume_non_continuous_states_are_fixed
к DirectTranscription
. Но причина того, что эта опция еще не реализована, немного тонка, поэтому я добавлю ее сюда.
Фактически не MultibodyPlant
добавляет абстрактное состояние, а SceneGraph
. Для динамики / планирования вам нужно только SceneGraph
, если вы полагаетесь на контактные силы в своей динамике. Для acrobots / cart-poles, et c вы уже можете использовать MultibodyPlant
с DirectTranscription
, передав только MBP (не SceneGraph
) в оптимизацию. А для систем, которые выполняют устанавливают и разрывают контакт, я бы сказал, что DirectTranscription
может быть не тем алгоритмом, который вам нужен; хотя нет жестких правил, говорящих, что это не сработает. Просто вы получите жесткие дифференциальные уравнения, которые трудно переписать при разумной оптимизации траектории, которая явно не объясняет контакт.
Думаю, я знаю ваше приложение, в котором используются колеса, которые в контакте и оставайтесь на связи. Это означает, что вам действительно нужен SceneGraph
. Это могло быть так, если бы эта в настоящее время отсутствующая комбинация имеет смысл, и мы должны добавить ее.