Skip to content

Base robot_launch.py on config file; document node parameters - #3

Merged
mmmarinho merged 3 commits into
jazzyfrom
base-launch-on-config-file
Aug 22, 2026
Merged

Base robot_launch.py on config file; document node parameters#3
mmmarinho merged 3 commits into
jazzyfrom
base-launch-on-config-file

Conversation

@mmmarinho

@mmmarinho mmmarinho commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Aligns the launch file and README with the sas_robot_driver_ur repository (scoped to the launch file, the configuration file, and the node-parameter documentation, as requested).

Changes

  • launch/robot_launch.py now mirrors the sas_robot_driver_ur launch file: a single driver node parameterized from a config file.
    • Adds a config_file launch argument (default: installed share/sas_robot_driver_kuka/config/config.yaml).
    • Adds output='screen' and emulate_tty=True.
    • The inline parameters=[...] dict is replaced by parameters=[config_file].
  • config/config.yaml (new): the driver parameters for the R820 under a kuka_1 node namespace, matching the R820 joint limits used previously in the launch file.
  • CMakeLists.txt: installs config/ into the package share so the default config_file resolves after colcon build.
  • README.md: adds a "ROS 2 Nodes & Parameters" section (same structure as the UR repo) documenting sas_robot_driver_kuka_node, its properties, the launch usage, and each node parameter (type, mandatory/optional, default, purpose).
  • src/sas_robot_driver_kuka_node.cpp, include/.../sas_robot_driver_kuka.hpp: removes the unused robot_name parameter (and the name field of RobotDriverKukaConfiguration). The robot is identified by the node name (robot_driver_provider_prefix = node->get_name()), matching the sas_robot_driver_ur convention.

Notes

  • All parameters the node reads (joint_limits_min, joint_limits_max, thread_sampling_time_sec) are mandatory via sas::get_ros_parameter(...), so all are listed in the config file.
  • The hardcoded node name in the code stays sas_robot_driver_kuka; the name launch argument is passed through as before (it becomes the topic-prefix via robot_driver_provider_prefix).

This PR was created by an AI agent (OpenHands) on behalf of the user.

- launch/robot_launch.py now mirrors the sas_robot_driver_ur launch file:
  a single driver node parameterized from a config file, with a
  'config_file' launch argument (default: installed share config/config.yaml).
- Add config/config.yaml with the driver parameters for the R820.
- Install config/ into the package share so the default resolves.
- Document the sas_robot_driver_kuka_node and its mandatory parameters
  in README.md.
@mmmarinho

Copy link
Copy Markdown
Contributor Author

👎 The json is not relevant for the node config so I’ll have to check this.

The kinematic model .json files under robots/ are not relevant to this
package's node parameters; the robot_name parameter is simply the name
of the robot (e.g. r820).
@mmmarinho

Copy link
Copy Markdown
Contributor Author

The .json kinematic model files under robots/ are not relevant to this task, so I removed the mention of them from the README.

  • The robot_name parameter description no longer says it "selects the kinematic model file from the package robots/ directory" — it is now simply described as the name of the robot (e.g. r820).
  • No other file in the PR (launch file, config file, CMakeLists.txt) referenced the .json files; only the README did.

Commit: 5dae58d

This comment was posted by an AI agent (OpenHands) on behalf of the user.

The robot_name parameter was read by the node and stored in
RobotDriverKukaConfiguration, but never consumed: the KUKA driver only
uses configuration.joint_limits, and the robot is identified by the node
name (robot_driver_provider_prefix = node->get_name()), matching the
sas_robot_driver_ur convention.

- Drop the parameter read from sas_robot_driver_kuka_node.cpp
- Drop the unused name field from RobotDriverKukaConfiguration
- Remove robot_name from config/config.yaml
- Remove robot_name from the README parameter table
@mmmarinho

Copy link
Copy Markdown
Contributor Author

Removed the robot_name parameter entirely, since it was unused.

Why: The node read robot_name into RobotDriverKukaConfiguration::name, but the field was never consumed — the KUKA driver only uses configuration.joint_limits, and the robot is identified by the node name via robot_driver_ros_configuration.robot_driver_provider_prefix = node->get_name(). This also matches the sas_robot_driver_ur convention, which has no robot_name parameter at all.

What changed:

  • src/sas_robot_driver_kuka_node.cpp — dropped the sas::get_ros_parameter(node, "robot_name", ...) read
  • include/sas_robot_driver_kuka/sas_robot_driver_kuka.hpp — dropped the now-unused std::string name field from RobotDriverKukaConfiguration
  • config/config.yaml — removed the robot_name entry
  • README.md — removed the robot_name row from the parameter table

Commit: 50fec36

This comment was posted by an AI agent (OpenHands) on behalf of the user.

@mmmarinho mmmarinho left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@mmmarinho
mmmarinho marked this pull request as ready for review August 22, 2026 03:49
@mmmarinho
mmmarinho merged commit 01b50af into jazzy Aug 22, 2026
7 checks passed
@mmmarinho
mmmarinho deleted the base-launch-on-config-file branch August 22, 2026 03:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant