class Controller
Declaration
class Controller { /* full declaration omitted */ };Description
Control framework run by `uri manager`, loaded as a backend plugin. Implement it to support a controller other than mc_rtc (see docs/RobotManager.md, "Controller backend"). Robots are identified by their name under `Robots:`, and joint vectors follow each robot's reference joint order.
Declared at: robot_controller/include/robot_controller/Controller.h:24
Method Overview
- public virtual std::vector<double> command(const std::string & robot, robot_controller::ControlMode mode) const
- public virtual void initializeRobot(const std::string & robotName, const std::vector<double> & encoderValues)
- public virtual void initializeRobots()
- public virtual bool isRunning() const
- public virtual void run()
- public virtual void setBodySensor(const std::string & robot, const std::string & sensorName, const std::array<double, 4> & orientation, const std::array<double, 3> & angularVelocity, const std::array<double, 3> & linearAcceleration)
- public virtual void setEncoderValues(const std::string & robot, const std::vector<double> & values)
- public virtual void setEncoderVelocities(const std::string & robot, const std::vector<double> & values)
- public virtual void setForceSensor(const std::string & robot, const std::string & sensorName, const std::array<double, 3> & force, const std::array<double, 3> & torque)
- public virtual void setJointTorques(const std::string & robot, const std::vector<double> & values)
- public virtual void start()
- public virtual void stop()
- public virtual double timeStep() const
- public virtual ~Controller()
Methods
¶virtual std::vector<double> command(
const std::string& robot,
robot_controller::ControlMode mode) const
virtual std::vector<double> command(
const std::string& robot,
robot_controller::ControlMode mode) constDescription
Latest command for `robot` in the given mode.
Declared at: robot_controller/include/robot_controller/Controller.h:73
Parameters
- const std::string& robot
- robot_controller::ControlMode mode
¶virtual void initializeRobot(
const std::string& robotName,
const std::vector<double>& encoderValues)
virtual void initializeRobot(
const std::string& robotName,
const std::vector<double>& encoderValues)Description
Initialize `robotName` from its first joint positions [rad]. Called once per robot, when its first state arrives.
Declared at: robot_controller/include/robot_controller/Controller.h:52
Parameters
- const std::string& robotName
- const std::vector<double>& encoderValues
¶virtual void initializeRobots()
virtual void initializeRobots()Description
Called once after all robots are known, before the control loop starts.
Declared at: robot_controller/include/robot_controller/Controller.h:55
¶virtual bool isRunning() const
virtual bool isRunning() constDescription
Whether the controller is running.
Declared at: robot_controller/include/robot_controller/Controller.h:32
¶virtual void run()
virtual void run()Description
Run one control step.
Declared at: robot_controller/include/robot_controller/Controller.h:30
¶virtual void setBodySensor(
const std::string& robot,
const std::string& sensorName,
const std::array<double, 4>& orientation,
const std::array<double, 3>& angularVelocity,
const std::array<double, 3>&
linearAcceleration)
virtual void setBodySensor(
const std::string& robot,
const std::string& sensorName,
const std::array<double, 4>& orientation,
const std::array<double, 3>& angularVelocity,
const std::array<double, 3>&
linearAcceleration)Description
Set an IMU reading of `robot`: orientation quaternion (w, x, y, z), angular velocity [rad/s] and linear acceleration [m/s²].
Declared at: robot_controller/include/robot_controller/Controller.h:59
Parameters
- const std::string& robot
- const std::string& sensorName
- const std::array<double, 4>& orientation
- const std::array<double, 3>& angularVelocity
- const std::array<double, 3>& linearAcceleration
¶virtual void setEncoderValues(
const std::string& robot,
const std::vector<double>& values)
virtual void setEncoderValues(
const std::string& robot,
const std::vector<double>& values)Description
Set the measured joint positions [rad] of `robot`.
Declared at: robot_controller/include/robot_controller/Controller.h:42
Parameters
- const std::string& robot
- const std::vector<double>& values
¶virtual void setEncoderVelocities(
const std::string& robot,
const std::vector<double>& values)
virtual void setEncoderVelocities(
const std::string& robot,
const std::vector<double>& values)Description
Set the measured joint velocities [rad/s] of `robot`.
Declared at: robot_controller/include/robot_controller/Controller.h:45
Parameters
- const std::string& robot
- const std::vector<double>& values
¶virtual void setForceSensor(
const std::string& robot,
const std::string& sensorName,
const std::array<double, 3>& force,
const std::array<double, 3>& torque)
virtual void setForceSensor(
const std::string& robot,
const std::string& sensorName,
const std::array<double, 3>& force,
const std::array<double, 3>& torque)Description
Set a force/torque reading of `robot`, in the sensor frame: force [N] and torque [Nm].
Declared at: robot_controller/include/robot_controller/Controller.h:67
Parameters
- const std::string& robot
- const std::string& sensorName
- const std::array<double, 3>& force
- const std::array<double, 3>& torque
¶virtual void setJointTorques(
const std::string& robot,
const std::vector<double>& values)
virtual void setJointTorques(
const std::string& robot,
const std::vector<double>& values)Description
Set the measured joint torques [Nm] of `robot`.
Declared at: robot_controller/include/robot_controller/Controller.h:48
Parameters
- const std::string& robot
- const std::vector<double>& values
¶virtual void start()
virtual void start()Description
Start running.
Declared at: robot_controller/include/robot_controller/Controller.h:34
¶virtual void stop()
virtual void stop()Description
Stop running.
Declared at: robot_controller/include/robot_controller/Controller.h:36
¶virtual double timeStep() const
virtual double timeStep() constDescription
Control period [s].
Declared at: robot_controller/include/robot_controller/Controller.h:39
¶virtual ~Controller()
virtual ~Controller()Declared at: robot_controller/include/robot_controller/Controller.h:27