AUTh-ARL Core Stack
0.7
|
Implements a gravity compensation controller. More...
#include <gravity_compensation.h>
Public Member Functions | |
GravityCompensation (const std::shared_ptr< arl::robot::Robot > &robot) | |
Public Member Functions inherited from arl::robot::Controller | |
Controller (std::shared_ptr< Robot > r, const std::string &name, Timing timing=FIXED) | |
Constructor which initializes the robot controller. More... | |
~Controller () | |
bool | run () |
The main function that runs the controller. More... | |
bool | runRT () |
Runs the controller with real time priority. More... | |
void | setExternalStop (bool arg) |
Sets an external stop to the controller. Another external thread can use this function to stop the controller. More... | |
std::string | getName () |
Returns the name of the controller. More... | |
double | getTime () const |
Returns the current time since the start of the controller in seconds. More... | |
virtual void | enableLogging (const std::string &log_path="/home/user/autharl_logfiles/") |
Enables the logging by opening files for log benchmarking times and data. More... | |
virtual void | reference (const arma::mat &ref) |
Protected Member Functions | |
void | init () |
Initializes the controller. More... | |
void | update () |
Performs the necessary calculations of the controller. More... | |
void | command () |
Commands the robot. More... | |
bool | stop () |
Implements the stopping condition of your controller. More... | |
Protected Member Functions inherited from arl::robot::Controller | |
virtual bool | success () |
Implements the success condition of your controller. More... | |
virtual void | measure () |
Measures the desired data. More... | |
virtual void | waitNextCycle () |
Sets a new reference for the controller. More... | |
Additional Inherited Members | |
Public Types inherited from arl::robot::Controller | |
enum | Timing { FIXED, DYNAMIC } |
Protected Attributes inherited from arl::robot::Controller | |
std::string | name |
The name of the controller. More... | |
bool | external_stop |
The external stopped setted by Controller::setExternalStop() More... | |
std::shared_ptr< Robot > | robot |
The pointer to the robot to be controlled. More... | |
double | t |
The current time t, with t = 0 when the controller is created. Alternatively the user can initialize time durint the init() function of its derived controller. More... | |
double | dt |
The cycle time of the control loop, obtained by the robot. More... | |
bool | stop_flag_ |
utils::Timer | timer |
Used for measuring the current time of the controller. More... | |
utils::Timer | benchmark_total_timer_ |
utils::Timer | benchmark_timer_ |
io::Logger | benchmark_logger_ |
io::Logger | logger_ |
Timing | timing_ |
Implements a gravity compensation controller.
This controller commands all of the joints of the robot with zero torques.
Example of use:
|
explicit |
|
protectedvirtual |
Commands the robot.
Implemented according to your controller needs. Basically makes calls to functions of the Robot class, like sending new desired joint torques or joint positions. These desired signals can be stored in internal variables and should have been calculated based on the measurements of the Controller::measure() and the calculations of the Controller::update()
Reimplemented from arl::robot::Controller.
|
protectedvirtual |
Initializes the controller.
Implemented according to your controller needs. Common use cases involve sending a the robot in an initial configuration, setting the robot mode (to position or torque control) or setting the paramters and gains of your controller.
Reimplemented from arl::robot::Controller.
|
protectedvirtual |
Implements the stopping condition of your controller.
Implemented according to your controller needs. Common use cases involve stopping conditions like your robot has zero velocity, the robot hardware signals an error or dangerous movements indicates the immediate stop.
Reimplemented from arl::robot::Controller.
|
protectedvirtual |
Performs the necessary calculations of the controller.
Implemented according to your controller needs. The calculations can use the measurements from the Controller::measure() which is stored in internal variables and store the results for the Controller::command() to use.
Implements arl::robot::Controller.