rpascal
rpascal

Reputation: 21

Simulating non-linear Actuator in drake

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

Answers (2)

Grant Gould
Grant Gould

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

Russ Tedrake
Russ Tedrake

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

Related Questions