54 return {
"position",
"velocity",
"effort" };
63 void loadPrevious(
const std::filesystem::path& ,
const YAML::Node& node)
override;
72 std::vector<std::pair<std::string, std::string>>
getArguments()
const override;
73 std::vector<std::string>
getCommands()
const override;
126 return std::filesystem::path(
"config") / (
parent_.
urdf_config_->getRobotName() +
".ros2_control.xacro");
131 return getSharePath(
"moveit_setup_controllers") /
"templates" /
"config" /
"ros2_control.xacro";
136 return "Macro definition for required ros2_control xacro additions.";
164 return "config/initial_positions.yaml";
169 return "Initial positions for ros2_control";
172 bool writeYaml(YAML::Emitter& emitter)
override;
179 std::vector<GeneratedFilePtr>& files)
override
181 files.push_back(std::make_shared<GeneratedControlHeader>(package_path, last_gen_time, *
this));
182 files.push_back(std::make_shared<GeneratedInitialPositions>(package_path, last_gen_time, *
this));
A virtual class that represents a xacro header that should be included in the modified urdf configura...
std::shared_ptr< URDFConfig > urdf_config_
Specialization of GeneratedFile for generating a text file from a template.
ControlXacroConfig & parent_
GeneratedInitialPositions(const std::filesystem::path &package_path, const GeneratedTime &last_gen_time, ControlXacroConfig &parent)
bool hasChanges() const override
Returns true if this file will have changes when it is written to file.
std::filesystem::path getRelativePath() const override
Returns the path relative to the configuration package root.
bool writeYaml(YAML::Emitter &emitter) override
std::string getDescription() const override
Returns an English description of this file's purpose.
std::unordered_map< std::string, ControlInterfaces > original_joint_interfaces_
A list of all joints used by the current SRDF groups.
bool hasAllControlTagsInOriginal() const
ControlInterfaces default_ci_
void loadPrevious(const std::filesystem::path &, const YAML::Node &node) override
Loads the configuration from an existing MoveIt configuration.
std::string getJointsXML() const
Return the additional joint xml needed for ros2_control tags.
void collectFiles(const std::filesystem::path &package_path, const GeneratedTime &last_gen_time, std::vector< GeneratedFilePtr > &files) override
Collect the files generated by this configuration and add them to the vector.
YAML::Node saveToYaml() const override
Optionally save "meta" information for saving in the .setup_assistant yaml file.
void onInit() override
Overridable initialization method.
std::unordered_map< std::string, ControlInterfaces > new_joint_interfaces_
const ControlInterfaces & getDefaultControlInterfaces() const
std::string getFilepath() const override
The file path to use in the <xacro:include> tag.
std::vector< std::string > joint_names_
bool hasChanges() const override
Returns if the xacro and its properties have changed, resulting in the whole urdf needing regeneratio...
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.
std::vector< std::string > getCommands() const override
Return a list of additional commands that need to be inserted after the xacro is included.
const ControlInterfaces getControlInterfaces(const std::vector< std::string > &joint_names) const
Get all the control interfaces for all of the specified joint names.
srdf::Model::GroupState initial_group_state_
void loadFromDescription()
Load the original command interfaces from the original (unmodified) URDF.
void setControlInterfaces(const ControlInterfaces &ci)
Use the specified controller interfaces for all the lacking joints.
const ControlInterfaces & getAvailableControlInterfaces() const
bool isConfigured() const override
Return true if this part of the configuration is completely set up.
ControlInterfaces available_ci_
void collectVariables(std::vector< TemplateVariable > &variables) override
Collect key/value pairs for use in templates.
std::vector< std::string > getAvailableInterfaceNames()
std::filesystem::path getSharePath(const std::string &package_name)
Return a path for the given package's share folder.
std::filesystem::file_time_type GeneratedTime
std::vector< std::string > state_interfaces
std::vector< std::string > command_interfaces