Skip to main content

moveit_pro_controllers Namespace

Definition

namespace moveit_pro_controllers { ... }

Namespaces Index

namespaceinternal

Classes Index

classAdmittance
structAdmittanceKinematics
structAdmittanceParameters
structAdmittanceState
classControllerWithRobotModel
classIOController
classJointTrajectoryAdmittanceController
structJointTrajectoryAdmittanceControllerCommand
classJointVelocityController
structJointVelocityParameters
classJointVelocitySetpointGenerator
structNonFiniteValue
classRealtimeTriggerServiceMonitor
classRobotTestFixture<Controller>
classRobotTestFixtureInvalidParams<Base>
classSecondOrderButterworthFilter
structStopTrajectory
classTrajectorySampler
structUtilizedInterfaces
classVelocityForceController
structVelocityForceParameters
classVelocityForceSetpointGenerator
classWrenchTareAccumulator

Typedefs Index

usingForwardKinematicsFn = std::function< bool(const Eigen::VectorNd &reference_joint_values, const Eigen::VectorNd &current_joint_values, AdmittanceState &state)>
typedefstd::function< bool(const Eigen::VectorNd &joint_values, const std::vector< Eigen::Vector6d > &cartesian_deltas, Eigen::VectorNd &joint_deltas)> DiffInverseKinematicsFn
template <typename T>
usingInterfaceReferences = std::vector< std::vector< std::reference_wrapper< T > > >
usingCallbackReturn = rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn

Enumerations Index

enum classAdmittanceResult { ... }
enum classInterpolationResult { ... }
enum classValidationResult { ... }
enum classSamplingResult { ... }

Functions Index

Eigen::Vector3dapplyDeadband (const Eigen::Vector3d &signal, double threshold)
StopTrajectorycomputeStopTrajectory (const TimedJointState &initial_state, const Eigen::VectorNd &acceleration_limits)
TimedJointStatesampleStopTrajectory (const StopTrajectory &stop_trajectory, double time_from_start)
boolisLimitViolationPredicted (const TimedJointState &state, const Eigen::VectorNd &upper_position_limits, const Eigen::VectorNd &lower_position_limits, const Eigen::VectorNd &stop_acceleration, double safety_margin)
Eigen::Vector6dcomputeWorldWrench (const Eigen::Vector6d &sensor_wrench, const Eigen::Isometry3d &world_pose_sensor)
voidsubtractGravity (Eigen::Vector6d &world_wrench, const Eigen::Isometry3d &world_pose_sensor, const Eigen::Isometry3d &world_pose_ee, double end_effector_mass, const Eigen::Vector3d &end_effector_cog, const Eigen::Vector3d &gravity_vector)
InterpolationResultinterpolate (const TimedJointState &state_a, const TimedJointState &state_b, Duration time_from_start, TimedJointState &output)
boolisMonotonicallyIncreasing (const Trajectory &trajectory)
tl::expected< Trajectory, std::string >trajectoryFromROSMsg (const trajectory_msgs::msg::JointTrajectory &joint_trajectory, const std::vector< std::string > &controller_joint_names, const TimedJointState &initial_state)
boolvectorContainsString (const std::vector< std::string > &vec, const std::string &str)
template <class T>
UtilizedInterfacesinitializeInterfaceReferences (const std::vector< std::string > &interface_names, InterfaceReferences< T > &interface_references)
template <class T>
boolgetOrderedInterfaces (const rclcpp::Logger &logger, const std::vector< std::string > &joint_names, std::vector< T > &unordered_interfaces, const std::vector< std::string > &interface_names, InterfaceReferences< T > &ordered_interfaces)
std::vector< std::string >getActiveVariableNames (const moveit_pro::base::JointModelGroup &group)
controller_interface::InterfaceConfigurationcreateInterfaceConfiguration (const std::vector< std::string > &joint_names, const std::vector< std::string > &interface_names)
voidreleaseStateAndCommandInterfaces (InterfaceReferences< hardware_interface::LoanedStateInterface > &state_interfaces, InterfaceReferences< hardware_interface::LoanedCommandInterface > &command_interfaces)
tl::expected< void, NonFiniteValue >validateFinite (const Eigen::VectorNd &values, std::string_view kind)
tl::expected< void, NonFiniteValue >validateFinite (const Eigen::Vector6d &values, std::string_view kind)
tl::expected< void, NonFiniteValue >validateFinite (const TimedJointState &joint_state, const UtilizedInterfaces &interfaces)
template <typename T>
auto writeToCommandInterfaces (const T &joint_interfaces, const TimedJointState &joint_state, const UtilizedInterfaces &interfaces) -> tl::expected< void, NonFiniteValue >
template <typename T>
Eigen::VectorNdreadFromInterface (const T &joint_interface)
template <typename T>
TimedJointStatereadFromInterfaces (const T &joint_interfaces, const UtilizedInterfaces &interfaces)
boolinitializeForceTorqueSensor (const std::string &ft_sensor_name, double ft_cutoff_frequency_ratio, std::unique_ptr< semantic_components::ForceTorqueSensor > &force_torque_sensor, std::unique_ptr< SecondOrderButterworthFilter > &ft_filter)
boolinitializeForceTorqueSensors (const std::string &controller_name, const std::vector< std::string > &ft_sensor_names, double ft_cutoff_frequency_ratio, std::vector< std::unique_ptr< semantic_components::ForceTorqueSensor > > &force_torque_sensors, std::vector< std::unique_ptr< SecondOrderButterworthFilter > > &ft_filters, std::vector< Eigen::Vector6d > &filtered_wrenches)
Eigen::Vector6dgetSensedWrench (const semantic_components::ForceTorqueSensor &force_torque_sensor)
geometry_msgs::msg::WrenchtoWrenchMsg (const Eigen::Vector6d &wrench)
voidtoStdVector (const Eigen::VectorNd &vector_eigen, std::vector< double > &vector_std)
template <typename T>
voidwriteUnchecked (const T &joint_interface, const Eigen::VectorNd &values)
tl::expected< trajectory_msgs::msg::JointTrajectory, std::string >ROSMsgFromTrajectory (const Trajectory &joint_trajectory)
voidcomputeCartesianStopTrajectory (const TimedJointState &initial_state, const VelocityForceParameters &parameters, Duration control_period, std::vector< TimedJointState > &stop_trajectory)
Eigen::Isometry3dcomputeControlFrameInEndEffector (const Eigen::Isometry3d &base_pose_ee, const Eigen::Isometry3d &base_pose_control_frame, const Eigen::Quaterniond &control_offset)

Compute the orientation of the control frame expressed in the end-effector frame. More...

Variables Index

constexpr autokTestRobotURDF
constexpr autokTestRobotSRDF = ...
constexpr autokMimicChainRobotURDF = ...
constexpr autokMimicChainRobotSRDF = ...
constexpr autokTestMultiTipRobotURDF
constexpr autokTestMultiTipRobotSRDF = ...
const std::stringkForceTorqueSensorName = "tcp_fts_sensor"
constexpr autokEnableService = "enable"
constexpr autokDisableService = "disable"
constexpr autokJointTrajectoryAdmittanceControllerActionName = "/follow_joint_trajectory"
constexpr autokJointTrajectoryAdmittanceControllerTopicName = "~/controller_state"
constexpr autokJointTrajectoryAdmittanceControllerFilteredWrenchTopicName = "~/filtered_wrench"
const std::vector< std::string >kAllowedInterfaceTypes = ...
constexpr autokRobotDescriptionTopic = "robot_description"
constexpr autokRobotDescriptionSemanticTopic = "robot_description_semantic"

Typedefs

CallbackReturn

using moveit_pro_controllers::CallbackReturn = typedef rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn

Definition at line 52 of file ros2_control_utils.hpp.

DiffInverseKinematicsFn

typedef std::function< bool(const Eigen::VectorNd &joint_values, const Eigen::Vector6d &cartesian_delta, const Eigen::VectorNd &nullspace_component, Eigen::VectorNd &joint_deltas)> moveit_pro_controllers::DiffInverseKinematicsFn

Definition at line 103 of file admittance.hpp.

ForwardKinematicsFn

using moveit_pro_controllers::ForwardKinematicsFn = typedef std::function<bool(const Eigen::VectorNd& reference_joint_values, const Eigen::VectorNd& current_joint_values, AdmittanceState& state)>

Definition at line 99 of file admittance.hpp.

InterfaceReferences

template <typename T>
using moveit_pro_controllers::InterfaceReferences = typedef std::vector<std::vector<std::reference_wrapper<T> >>

Definition at line 50 of file ros2_control_utils.hpp.

Enumerations

AdmittanceResult

enum class moveit_pro_controllers::AdmittanceResult
strong
Enumeration values
SUCCESS
ERROR_COMPUTING_TRANSFORMS
ERROR_COMPUTING_ADMITTANCE_OFFSET

Definition at line 116 of file admittance.hpp.

InterpolationResult

enum class moveit_pro_controllers::InterpolationResult
strong
Enumeration values
SUCCESS
INVALID_INPUT_MISSING_POSITIONS
INVALID_INPUT_MISSING_VELOCITIES
INVALID_INPUT_TIME_OUT_OF_BOUNDS
INVALID_INPUT_MISMATCHED_SIZES

Definition at line 15 of file interpolation.hpp.

SamplingResult

enum class moveit_pro_controllers::SamplingResult
strong
Enumeration values
SUCCESS
TIME_AT_END
NOT_STARTED
ERROR_SAMPLING_BACKWARDS

Definition at line 67 of file interpolation.hpp.

ValidationResult

enum class moveit_pro_controllers::ValidationResult
strong
Enumeration values
SUCCESS
INVALID_TRAJECTORY_LENGTH
INVALID_TIME_DOES_NOT_INCREASE

Definition at line 54 of file interpolation.hpp.

Functions

applyDeadband()

Eigen::Vector3d moveit_pro_controllers::applyDeadband (const Eigen::Vector3d & signal, double threshold)

Applies a deadband to the input vector. Values below the threshold will be set to zero. The threshold will be subtracted/added to values exceeding threshold. / / / / / => --— / / / /

Parameters
[in] signal

a 3D vector with the signal to filter with a deadband.

[in] threshold

the deadband threshold.

Returns

the vector with deadband applied.

Definition at line 17 of file signal_processing.cpp.

computeCartesianStopTrajectory()

void moveit_pro_controllers::computeCartesianStopTrajectory (const TimedJointState & initial_state, const VelocityForceParameters & parameters, Duration control_period, std::vector< TimedJointState > & stop_trajectory)

Definition at line 12 of file cartesian_stop_trajectory.cpp.

computeControlFrameInEndEffector()

Eigen::Isometry3d moveit_pro_controllers::computeControlFrameInEndEffector (const Eigen::Isometry3d & base_pose_ee, const Eigen::Isometry3d & base_pose_control_frame, const Eigen::Quaterniond & control_offset)

Compute the orientation of the control frame expressed in the end-effector frame.

The setpoint generator interprets velocity/force references in the control frame and uses only the rotation of the returned transform: the commanded twist/wrench is re-expressed in the end-effector frame by orientation alone. Any translational offset between the control frame and the end-effector is intentionally ignored (the controller does not model the lever-arm coupling it would introduce), so the returned transform's translation is left at identity.

Parameters
base_pose_ee

End-effector pose in the model (base) frame.

base_pose_control_frame

Pose of the control-frame link in the model (base) frame. Pass 'base_pose_ee' to express the command in the end-effector frame (the original behavior), which yields an identity rotation.

control_offset

Orientation offset applied on top of the control frame. Assumed to be a valid unit quaternion (the unset/zero-norm case is mapped to identity at the ROS boundary, in resolveReceivedCommand).

Returns

ee_pose_control: a transform whose rotation maps a twist/wrench from the control frame into the end-effector frame, with identity translation.

Definition at line 53 of file velocity_force_controller.cpp.

computeStopTrajectory()

StopTrajectory moveit_pro_controllers::computeStopTrajectory (const TimedJointState & initial_state, const Eigen::VectorNd & acceleration_limits)

Definition at line 24 of file stop_trajectory.cpp.

computeWorldWrench()

Eigen::Vector6d moveit_pro_controllers::computeWorldWrench (const Eigen::Vector6d & sensor_wrench, const Eigen::Isometry3d & world_pose_sensor)

Definition at line 158 of file admittance.cpp.

createInterfaceConfiguration()

controller_interface::InterfaceConfiguration moveit_pro_controllers::createInterfaceConfiguration (const std::vector< std::string > & joint_names, const std::vector< std::string > & interface_names)

Definition at line 28 of file ros2_control_utils.cpp.

getActiveVariableNames()

std::vector< std::string > moveit_pro_controllers::getActiveVariableNames (const moveit_pro::base::JointModelGroup & group)

Definition at line 14 of file ros2_control_utils.cpp.

getOrderedInterfaces()

template <class T>
bool moveit_pro_controllers::getOrderedInterfaces (const rclcpp::Logger & logger, const std::vector< std::string > & joint_names, std::vector< T > & unordered_interfaces, const std::vector< std::string > & interface_names, InterfaceReferences< T > & ordered_interfaces)

Definition at line 350 of file ros2_control_utils.hpp.

getSensedWrench()

Eigen::Vector6d moveit_pro_controllers::getSensedWrench (const semantic_components::ForceTorqueSensor & force_torque_sensor)

Definition at line 109 of file ros2_control_utils.cpp.

initializeForceTorqueSensor()

bool moveit_pro_controllers::initializeForceTorqueSensor (const std::string & ft_sensor_name, double ft_cutoff_frequency_ratio, std::unique_ptr< semantic_components::ForceTorqueSensor > & force_torque_sensor, std::unique_ptr< SecondOrderButterworthFilter > & ft_filter)

Definition at line 57 of file ros2_control_utils.cpp.

initializeForceTorqueSensors()

bool moveit_pro_controllers::initializeForceTorqueSensors (const std::string & controller_name, const std::vector< std::string > & ft_sensor_names, double ft_cutoff_frequency_ratio, std::vector< std::unique_ptr< semantic_components::ForceTorqueSensor > > & force_torque_sensors, std::vector< std::unique_ptr< SecondOrderButterworthFilter > > & ft_filters, std::vector< Eigen::Vector6d > & filtered_wrenches)

Definition at line 75 of file ros2_control_utils.cpp.

initializeInterfaceReferences()

template <class T>
UtilizedInterfaces moveit_pro_controllers::initializeInterfaceReferences (const std::vector< std::string > & interface_names, InterfaceReferences< T > & interface_references)

Definition at line 338 of file ros2_control_utils.hpp.

interpolate()

InterpolationResult moveit_pro_controllers::interpolate (const TimedJointState & state_a, const TimedJointState & state_b, Duration time_from_start, TimedJointState & output)

Definition at line 80 of file interpolation.cpp.

isLimitViolationPredicted()

bool moveit_pro_controllers::isLimitViolationPredicted (const TimedJointState & state, const Eigen::VectorNd & upper_position_limits, const Eigen::VectorNd & lower_position_limits, const Eigen::VectorNd & stop_acceleration, double safety_margin)

Definition at line 83 of file stop_trajectory.cpp.

isMonotonicallyIncreasing()

bool moveit_pro_controllers::isMonotonicallyIncreasing (const Trajectory & trajectory)

Definition at line 194 of file interpolation.cpp.

readFromInterface()

template <typename T>
Eigen::VectorNd moveit_pro_controllers::readFromInterface (const T & joint_interface)

Definition at line 412 of file ros2_control_utils.hpp.

readFromInterfaces()

template <typename T>
TimedJointState moveit_pro_controllers::readFromInterfaces (const T & joint_interfaces, const UtilizedInterfaces & interfaces)

Definition at line 423 of file ros2_control_utils.hpp.

releaseStateAndCommandInterfaces()

void moveit_pro_controllers::releaseStateAndCommandInterfaces (InterfaceReferences< hardware_interface::LoanedStateInterface > & state_interfaces, InterfaceReferences< hardware_interface::LoanedCommandInterface > & command_interfaces)

Definition at line 47 of file ros2_control_utils.cpp.

ROSMsgFromTrajectory()

tl::expected< trajectory_msgs::msg::JointTrajectory, std::string > moveit_pro_controllers::ROSMsgFromTrajectory (const Trajectory & joint_trajectory)

Convert a Trajectory object to a ROS JointTrajectory msg, or return an error string if the conversion was unsuccessful. The returned message has no joint names; the caller sets them.

Definition at line 41 of file trajectory_ros_conversions.cpp.

sampleStopTrajectory()

TimedJointState moveit_pro_controllers::sampleStopTrajectory (const StopTrajectory & stop_trajectory, double time_from_start)

Definition at line 50 of file stop_trajectory.cpp.

subtractGravity()

void moveit_pro_controllers::subtractGravity (Eigen::Vector6d & world_wrench, const Eigen::Isometry3d & world_pose_sensor, const Eigen::Isometry3d & world_pose_ee, double end_effector_mass, const Eigen::Vector3d & end_effector_cog, const Eigen::Vector3d & gravity_vector)

Definition at line 168 of file admittance.cpp.

toStdVector()

void moveit_pro_controllers::toStdVector (const Eigen::VectorNd & vector_eigen, std::vector< double > & vector_std)

Definition at line 131 of file ros2_control_utils.cpp.

toWrenchMsg()

geometry_msgs::msg::Wrench moveit_pro_controllers::toWrenchMsg (const Eigen::Vector6d & wrench)

Definition at line 119 of file ros2_control_utils.cpp.

trajectoryFromROSMsg()

tl::expected< Trajectory, std::string > moveit_pro_controllers::trajectoryFromROSMsg (const trajectory_msgs::msg::JointTrajectory & joint_trajectory, const std::vector< std::string > & controller_joint_names, const TimedJointState & initial_state)

Definition at line 66 of file joint_trajectory_admittance_controller.cpp.

validateFinite()

tl::expected< void, NonFiniteValue > moveit_pro_controllers::validateFinite (const Eigen::VectorNd & values, std::string_view kind)

Definition at line 138 of file ros2_control_utils.cpp.

validateFinite()

tl::expected< void, NonFiniteValue > moveit_pro_controllers::validateFinite (const Eigen::Vector6d & values, std::string_view kind)

Definition at line 150 of file ros2_control_utils.cpp.

validateFinite()

tl::expected< void, NonFiniteValue > moveit_pro_controllers::validateFinite (const TimedJointState & joint_state, const UtilizedInterfaces & interfaces)

Definition at line 162 of file ros2_control_utils.cpp.

vectorContainsString()

bool moveit_pro_controllers::vectorContainsString (const std::vector< std::string > & vec, const std::string & str)
inline

Definition at line 63 of file ros2_control_utils.hpp.

writeToCommandInterfaces()

template <typename T>
tl::expected< void, NonFiniteValue > moveit_pro_controllers::writeToCommandInterfaces (const T & joint_interfaces, const TimedJointState & joint_state, const UtilizedInterfaces & interfaces)

Definition at line 383 of file ros2_control_utils.hpp.

writeUnchecked()

template <typename T>
void moveit_pro_controllers::writeUnchecked (const T & joint_interface, const Eigen::VectorNd & values)

Definition at line 372 of file ros2_control_utils.hpp.

Variables

kAllowedInterfaceTypes

const std::vector<std::string> moveit_pro_controllers::kAllowedInterfaceTypes
Initialiser
= {   hardware_interface::HW_IF_POSITION,   hardware_interface::HW_IF_VELOCITY,   hardware_interface::HW_IF_ACCELERATION, }

Definition at line 43 of file ros2_control_utils.hpp.

kDisableService

constexpr auto moveit_pro_controllers::kDisableService = "disable"
constexpr

Definition at line 27 of file io_controller.cpp.

kEnableService

constexpr auto moveit_pro_controllers::kEnableService = "enable"
constexpr

Definition at line 26 of file io_controller.cpp.

kForceTorqueSensorName

const std::string moveit_pro_controllers::kForceTorqueSensorName = "tcp_fts_sensor"

Definition at line 193 of file robot_test_fixture.hpp.

kJointTrajectoryAdmittanceControllerActionName

constexpr auto moveit_pro_controllers::kJointTrajectoryAdmittanceControllerActionName = "/follow_joint_trajectory"
constexpr

Definition at line 59 of file joint_trajectory_admittance_controller.hpp.

kJointTrajectoryAdmittanceControllerFilteredWrenchTopicName

constexpr auto moveit_pro_controllers::kJointTrajectoryAdmittanceControllerFilteredWrenchTopicName = "~/filtered_wrench"
constexpr

Definition at line 62 of file joint_trajectory_admittance_controller.hpp.

kJointTrajectoryAdmittanceControllerTopicName

constexpr auto moveit_pro_controllers::kJointTrajectoryAdmittanceControllerTopicName = "~/controller_state"
constexpr

Definition at line 60 of file joint_trajectory_admittance_controller.hpp.

kMimicChainRobotSRDF

constexpr auto moveit_pro_controllers::kMimicChainRobotSRDF
constexpr
Initialiser
= R"(<?xml version="1.0"?>     <robot name="mimic_robot">       <group name="arm">         <joint name="joint_a"/><joint name="joint_a_mimic"/><joint name="joint_b"/>       </group>       <group name="mimic_only">         <joint name="joint_a_mimic"/>       </group>     </robot>)"

Definition at line 106 of file robot_test_fixture.hpp.

kMimicChainRobotURDF

constexpr auto moveit_pro_controllers::kMimicChainRobotURDF
constexpr
Initialiser
= R"(<?xml version="1.0"?>     <robot name="mimic_robot">       <link name="base_link"/><link name="link_a"/><link name="link_m"/><link name="tip_link"/>       <joint name="joint_a" type="revolute">         <axis xyz="0 0 1"/><parent link="base_link"/><child link="link_a"/>         <limit effort="1000.0" lower="-3.0" upper="3.0" velocity="0.5"/>       </joint>       <joint name="joint_a_mimic" type="revolute">         <axis xyz="0 0 1"/><parent link="link_a"/><child link="link_m"/>         <limit effort="1000.0" lower="-3.0" upper="3.0" velocity="0.5"/>         <mimic joint="joint_a" multiplier="0.5" offset="0.1"/>       </joint>       <joint name="joint_b" type="revolute">         <axis xyz="0 1 0"/><parent link="link_m"/><child link="tip_link"/>         <limit effort="1000.0" lower="-3.0" upper="3.0" velocity="0.5"/>       </joint>     </robot>)"

Definition at line 89 of file robot_test_fixture.hpp.

kRobotDescriptionSemanticTopic

constexpr auto moveit_pro_controllers::kRobotDescriptionSemanticTopic = "robot_description_semantic"
constexpr

Definition at line 181 of file ros2_control_utils.cpp.

kRobotDescriptionTopic

constexpr auto moveit_pro_controllers::kRobotDescriptionTopic = "robot_description"
constexpr

Definition at line 180 of file ros2_control_utils.cpp.

kTestMultiTipRobotSRDF

constexpr auto moveit_pro_controllers::kTestMultiTipRobotSRDF
constexpr
Initialiser
= R"(     <?xml version="1.0"?>     <robot name="my_robot">       <group name="joint_a_and_b">         <joint name="joint_a"/>         <joint name="joint_b"/>       </group>       <group name="joint_c_and_d">         <joint name="joint_c"/>         <joint name="joint_d"/>       </group>       <group name="chains_ab_and_cd">         <group name="joint_a_and_b"/>         <group name="joint_c_and_d"/>       </group>     </robot>)"

Definition at line 176 of file robot_test_fixture.hpp.

kTestMultiTipRobotURDF

constexpr auto moveit_pro_controllers::kTestMultiTipRobotURDF
constexpr

Definition at line 116 of file robot_test_fixture.hpp.

kTestRobotSRDF

constexpr auto moveit_pro_controllers::kTestRobotSRDF
constexpr
Initialiser
= R"(     <?xml version="1.0"?>     <robot name="my_robot">       <group name="joint_a_and_b">         <joint name="joint_a"/>         <joint name="joint_b"/>       </group>     </robot>)"

Definition at line 77 of file robot_test_fixture.hpp.

kTestRobotURDF

constexpr auto moveit_pro_controllers::kTestRobotURDF
constexpr

Definition at line 32 of file robot_test_fixture.hpp.


The documentation for this namespace was generated from the following files:


Generated via doxygen2docusaurus 2.2.2 by Doxygen 1.9.8.