Replies: 1 comment 1 reply
-
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Let's say I wanted to add a new drone that implemented some additional features, such as having a time delay to the propeller motor response or adding some aerodynamic forces such as drag. It seems like there are 2 options:
DroneEntitysubclass for the drone and a new subclass that inherits fromRigidSolverthat, whenadd_entity()gets called, adds my new drone entity instead of the originalDroneEntityto the simulation. And then I would also have to overridescene.add_entitysomehow to make sure my new solver gets used.DroneEntityclass. So for adding a time delay to the propellers, I would manage that myself outside of the object by changing how I callset_propellels_rpm.In either case, if I wanted to add some additional aerodynamic forces, I would have to do something like
drone_entity.solver._func_apply_external_force(self, pos, force, link_idx, batch_idx). But, if my understanding of taichi is correct, I can't call that externally since it's a taichi function. And the only kernel method to apply an external force seems to becontrol_dofs_forceinRigidSolver, which has additional side effects that might be undesirable, such as changing the control_mode of a dof (I don't fully understand what that does, though).Adding new features in this way seems a bit messy. Any ideas or recommendations?
Beta Was this translation helpful? Give feedback.
All reactions