Reputation: 21
I am trying to simulate a simple bar-link robot with a contracting actuator with a non-linear force strain curve (force decreases roughly exponentially as the strain of the actuator increases). I have created the sdf of the robot with a prismatic joint in place of the actuator.
The issue I have is that I need to actuate this joint with a force that changes based on the current position of the prismatic actuator. How could I model this in drake? As far as I could find the JointActuator only allows for a constant force to be applied.
I am trying to simulate this using pydrake.
Upvotes: 2
Views: 119
Reputation: 31
One way to do this is via a ForceElement; see eg drake/door_hinge.h at master · RobotLocomotion/drake for an example of using a force element to create a complex force and potential energy profile on a joint.
(That's all C++, but I expect the python approach would be similar)
Upvotes: 3
Reputation: 5533
See also the Propeller
class as a way to do that as a System
(instead of ForceElement
), which can have an input port and might be more suitable for an actuator model.
https://drake.mit.edu/doxygen_cxx/classdrake_1_1multibody_1_1_propeller.html
Upvotes: 1