|
mc_rtc
2.14.0
|
#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 |