#include <mc_tvm/DynamicFunction.h>
Classes | |
struct | ForceContact |
Public Types | |
using | Output = tvm::function::abstract::LinearFunction::Output |
Public Member Functions | |
DynamicFunction (const mc_rbdyn::Robot &robot) | |
const tvm::VariableVector & | addContact (const mc_rbdyn::RobotFrame &frame, std::vector< sva::PTransformd > points, double dir) |
void | removeContact (const mc_rbdyn::RobotFrame &frame) |
sva::ForceVecd | contactForce (const mc_rbdyn::RobotFrame &f) const |
Protected Member Functions | |
void | updateb () |
std::vector< ForceContact >::const_iterator | findContact (const mc_rbdyn::RobotFrame &frame) const |
void | updateJacobian () |
Protected Attributes | |
const mc_rbdyn::Robot & | robot_ |
std::vector< ForceContact > | contacts_ |
Implement the equation of motion for a given robot.
It can be given contacts that will be integrated into the equation of motion (
It manages the force variables related to these contacts.
Notably, it does not take care of enforcing Newton 3rd law of motion when two actuated robots are in contact.
using mc_tvm::DynamicFunction::Output = tvm::function::abstract::LinearFunction::Output |
mc_tvm::DynamicFunction::DynamicFunction | ( | const mc_rbdyn::Robot & | robot | ) |
Construct the equation of motion for a given robot
const tvm::VariableVector& mc_tvm::DynamicFunction::addContact | ( | const mc_rbdyn::RobotFrame & | frame, |
std::vector< sva::PTransformd > | points, | ||
double | dir | ||
) |
Add a contact to the function
This adds forces variables for every contact point belonging to the robot of this dynamic function.
frame | Contact frame |
points | Contact points in the frame's parent body's frame |
dir | Contact direction |
Returns the force variables that were created by this contact
sva::ForceVecd mc_tvm::DynamicFunction::contactForce | ( | const mc_rbdyn::RobotFrame & | f | ) | const |
Returns the contact force at the given contact frame
f | Contact frame |
If | no contact has been added with that frame |
|
protected |
void mc_tvm::DynamicFunction::removeContact | ( | const mc_rbdyn::RobotFrame & | frame | ) |
Removes the contact associated to the given frame
frame | Contact frame |
|
protected |
|
protected |
|
protected |
|
protected |