Class ControlXacroConfig

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class ControlXacroConfig : public moveit_setup::IncludedXacroConfig

SetupConfig overrides

void onInit() override
void loadPrevious(const std::filesystem::path&, const YAML::Node &node) override
YAML::Node saveToYaml() const override
bool isConfigured() const override

IncludedXacroConfig overrides

virtual std::string getFilepath() const override

The file path to use in the <xacro:include> tag.

If the file is in MoveIt config’s config folder, just the file name is fine. Alternatively you can return a package string a la $(find SOME_PACKAGE_NAME)/relative/path/to/header.xacro

virtual bool hasChanges() const override

Returns if the xacro and its properties have changed, resulting in the whole urdf needing regeneration.

virtual std::vector<std::pair<std::string, std::string>> getArguments() const override

Returns a list of name/value pairs for arguments that the modified urdf should have.

Result will be <xacro:arg name=”pair.first” default=”pair.second” />

virtual std::vector<std::string> getCommands() const override

Return a list of additional commands that need to be inserted after the xacro is included.

e.g. If the included xacro includes a macro definition, the command to run the macro could be here.

Data access and modification

inline const ControlInterfaces &getAvailableControlInterfaces() const
inline const ControlInterfaces &getDefaultControlInterfaces() const
void setControlInterfaces(const ControlInterfaces &ci)

Use the specified controller interfaces for all the lacking joints.

const ControlInterfaces getControlInterfaces(const std::vector<std::string> &joint_names) const

Get all the control interfaces for all of the specified joint names.

Public Functions

void loadFromDescription()

Load the original command interfaces from the original (unmodified) URDF.

Needs to be run whenever the URDF/SRDF may have changed

bool hasAllControlTagsInOriginal() const
std::string getJointsXML() const

Return the additional joint xml needed for ros2_control tags.

inline void collectFiles(const std::filesystem::path &package_path, const GeneratedTime &last_gen_time, std::vector<GeneratedFilePtr> &files) override
void collectVariables(std::vector<TemplateVariable> &variables) override

Protected Functions

void getControlInterfaces(const std::string &joint_name, ControlInterfaces &ci) const

Protected Attributes

std::vector<std::string> joint_names_
std::unordered_map<std::string, ControlInterfaces> original_joint_interfaces_

A list of all joints used by the current SRDF groups.

std::unordered_map<std::string, ControlInterfaces> new_joint_interfaces_
ControlInterfaces default_ci_
ControlInterfaces available_ci_
srdf::Model::GroupState initial_group_state_
bool changed_
class GeneratedControlHeader : public TemplatedGeneratedFile

Public Functions

inline GeneratedControlHeader(const std::filesystem::path &package_path, const GeneratedTime &last_gen_time, ControlXacroConfig &parent)
inline std::filesystem::path getRelativePath() const override
inline std::filesystem::path getTemplatePath() const override
inline std::string getDescription() const override
inline bool hasChanges() const override

Protected Attributes

ControlXacroConfig &parent_
class GeneratedInitialPositions : public YamlGeneratedFile

Public Functions

inline GeneratedInitialPositions(const std::filesystem::path &package_path, const GeneratedTime &last_gen_time, ControlXacroConfig &parent)
inline bool hasChanges() const override
inline std::filesystem::path getRelativePath() const override
inline std::string getDescription() const override
bool writeYaml(YAML::Emitter &emitter) override

Protected Attributes

ControlXacroConfig &parent_