From e2a4a34e320d159b0dbc79ba0319c447623a1a03 Mon Sep 17 00:00:00 2001 From: Yelluri Date: Wed, 24 Jun 2026 13:54:39 +0530 Subject: [PATCH 1/6] Fix inaccurate docstring for JointLimiterInterface::init overload --- joint_limits/include/joint_limits/joint_limiter_interface.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/joint_limits/include/joint_limits/joint_limiter_interface.hpp b/joint_limits/include/joint_limits/joint_limiter_interface.hpp index d1bd70c97c..5804b9fd8d 100644 --- a/joint_limits/include/joint_limits/joint_limiter_interface.hpp +++ b/joint_limits/include/joint_limits/joint_limiter_interface.hpp @@ -132,7 +132,7 @@ class JointLimiterInterface } /** - * Wrapper init method that accepts the joint names and their limits directly + * Wrapper init method that accepts the joint names, their limits directly, and the soft joint limits. */ virtual bool init( const std::vector & joint_names, From be1e47075f08534b32abec1825d5766a12623a34 Mon Sep 17 00:00:00 2001 From: Yelluri Date: Wed, 24 Jun 2026 14:09:38 +0530 Subject: [PATCH 2/6] fix: update docstring for JointLimiterInterface::init overload to include soft_joint_limits --- joint_limits/include/joint_limits/joint_limiter_interface.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/joint_limits/include/joint_limits/joint_limiter_interface.hpp b/joint_limits/include/joint_limits/joint_limiter_interface.hpp index 5804b9fd8d..da83b34bb1 100644 --- a/joint_limits/include/joint_limits/joint_limiter_interface.hpp +++ b/joint_limits/include/joint_limits/joint_limiter_interface.hpp @@ -132,7 +132,7 @@ class JointLimiterInterface } /** - * Wrapper init method that accepts the joint names, their limits directly, and the soft joint limits. + * @brief Initialize joints from directly provided names, limits, and soft joint limits. */ virtual bool init( const std::vector & joint_names, From f745d7f60142dfe8e02c0f75d4783d70d8ed9f2d Mon Sep 17 00:00:00 2001 From: Yelluri Date: Wed, 24 Jun 2026 20:46:39 +0530 Subject: [PATCH 3/6] fix: unify docstring format in joint_limiter_interface --- .../joint_limits/joint_limiter_interface.hpp | 98 +++++++++++++------ 1 file changed, 67 insertions(+), 31 deletions(-) diff --git a/joint_limits/include/joint_limits/joint_limiter_interface.hpp b/joint_limits/include/joint_limits/joint_limiter_interface.hpp index da83b34bb1..2404b631c6 100644 --- a/joint_limits/include/joint_limits/joint_limiter_interface.hpp +++ b/joint_limits/include/joint_limits/joint_limiter_interface.hpp @@ -40,16 +40,18 @@ class JointLimiterInterface /// Initialization of every JointLimiter. /** - * Initialization of JointLimiter for defined joints with their names. + * @brief Initialize JointLimiter for defined joints with their names. + * * Robot description topic provides a topic name where URDF of the robot can be found. * This is needed to use joint limits from URDF (not implemented yet!). * Override this method only if initialization and reading joint limits should be adapted. * Otherwise, initialize your custom limiter in `on_limit` method. * - * \param[in] joint_names names of joints where limits should be applied. - * \param[in] param_itf node parameters interface object to access parameters. - * \param[in] logging_itf node logging interface to log if error happens. - * \param[in] robot_description_topic string of a topic where robot description is accessible. + * @param[in] joint_names names of joints where limits should be applied. + * @param[in] param_itf node parameters interface object to access parameters. + * @param[in] logging_itf node logging interface to log if error happens. + * @param[in] robot_description_topic string of a topic where robot description is accessible. + * @returns true if initialization was successful, otherwise false. */ virtual bool init( const std::vector & joint_names, @@ -133,6 +135,13 @@ class JointLimiterInterface /** * @brief Initialize joints from directly provided names, limits, and soft joint limits. + * + * @param[in] joint_names names of the joints to initialize. + * @param[in] joint_limits hard joint limits for each joint. + * @param[in] soft_joint_limits soft joint limits for each joint. + * @param[in] param_itf node parameters interface for parameter handling. + * @param[in] logging_itf node logging interface for logging. + * @returns true if initialization was successful, otherwise false. */ virtual bool init( const std::vector & joint_names, @@ -160,8 +169,14 @@ class JointLimiterInterface } /** - * Wrapper init method that accepts pointer to the Node. + * @brief Initialize method wrapper that accepts a pointer to the Node. + * * For details see other init method. + * + * @param[in] joint_names names of joints where limits should be applied. + * @param[in] node pointer to the node to get parameter and logging interfaces. + * @param[in] robot_description_topic string of a topic where robot description is accessible. + * @returns true if initialization was successful, otherwise false. */ virtual bool init( const std::vector & joint_names, const rclcpp::Node::SharedPtr & node, @@ -173,8 +188,14 @@ class JointLimiterInterface } /** - * Wrapper init method that accepts pointer to the LifecycleNode. + * @brief Initialize method wrapper that accepts a pointer to the LifecycleNode. + * * For details see other init method. + * + * @param[in] joint_names names of joints where limits should be applied. + * @param[in] lifecycle_node pointer to the lifecycle node to get parameter and logging interfaces. + * @param[in] robot_description_topic string of a topic where robot description is accessible. + * @returns true if initialization was successful, otherwise false. */ virtual bool init( const std::vector & joint_names, @@ -186,19 +207,26 @@ class JointLimiterInterface lifecycle_node->get_node_logging_interface(), robot_description_topic); } + /** + * @brief Configure the joint limiter with the current joint states. + * + * @param[in] current_joint_states current joint states a robot is in. + * @returns true if configuration was successful, otherwise false. + */ virtual bool configure(const JointLimitsStateDataType & current_joint_states) { return on_configure(current_joint_states); } - /** \brief Enforce joint limits to desired joint state for multiple physical quantities. + /** + * @brief Enforce joint limits to desired joint state for multiple physical quantities. * * Generic enforce method that calls implementation-specific `on_enforce` method. * - * \param[in] current_joint_states current joint states a robot is in. - * \param[in,out] desired_joint_states joint state that should be adjusted to obey the limits. - * \param[in] dt time delta to calculate missing integrals and derivation in joint limits. - * \returns true if limits are enforced, otherwise false. + * @param[in] current_joint_states current joint states a robot is in. + * @param[in,out] desired_joint_states joint state that should be adjusted to obey the limits. + * @param[in] dt time delta to calculate missing integrals and derivation in joint limits. + * @returns true if limits are enforced, otherwise false. */ virtual bool enforce( const JointLimitsStateDataType & current_joint_states, @@ -208,49 +236,57 @@ class JointLimiterInterface return on_enforce(current_joint_states, desired_joint_states, dt); } + /** + * @brief Reset the internal states of the joint limiter. + */ virtual void reset_internals() = 0; protected: - /** \brief Method is realized by an implementation. + /** + * @brief Initialize limiter's internal states and libraries (implementation-specific). * - * Implementation-specific initialization of limiter's internal states and libraries. - * \returns true if initialization was successful, otherwise false. + * @returns true if initialization was successful, otherwise false. */ virtual bool on_init() = 0; - /** \brief Method is realized by an implementation. + /** + * @brief Configure limiter's internal states and libraries (implementation-specific). * - * Implementation-specific configuration of limiter's internal states and libraries. - * \returns true if initialization was successful, otherwise false. + * @param[in] current_joint_states current joint states a robot is in. + * @returns true if initialization was successful, otherwise false. */ virtual bool on_configure(const JointLimitsStateDataType & current_joint_states) = 0; - /** \brief Method is realized by an implementation. + /** + * @brief Enforce the joint limits for multiple dependent physical quantities (implementation-specific). * - * Filter-specific implementation of the joint limits enforce algorithm for multiple dependent - * physical quantities. + * Filter-specific implementation of the joint limits enforce algorithm. * - * \param[in] current_joint_states current joint states a robot is in. - * \param[in,out] desired_joint_states joint state that should be adjusted to obey the limits. - * \param[in] dt time delta to calculate missing integrals and derivation in joint limits. - * \returns true if limits are enforced, otherwise false. + * @param[in] current_joint_states current joint states a robot is in. + * @param[in,out] desired_joint_states joint state that should be adjusted to obey the limits. + * @param[in] dt time delta to calculate missing integrals and derivation in joint limits. + * @returns true if limits are enforced, otherwise false. */ virtual bool on_enforce( const JointLimitsStateDataType & current_joint_states, JointLimitsStateDataType & desired_joint_states, const rclcpp::Duration & dt) = 0; - /** \brief Checks if the logging interface is set. - * \returns true if the logging interface is available, otherwise false. + /** + * @brief Check if the logging interface is set. * - * \note this way of interfacing would be useful for instances where the logging interface is not + * @returns true if the logging interface is available, otherwise false. + * + * @note this way of interfacing would be useful for instances where the logging interface is not * available, for example in the ResourceManager or ResourceStorage classes. */ bool has_logging_interface() const { return node_logging_itf_ != nullptr; } - /** \brief Checks if the parameter interface is set. - * \returns true if the parameter interface is available, otherwise false. + /** + * @brief Check if the parameter interface is set. + * + * @returns true if the parameter interface is available, otherwise false. * - * * \note this way of interfacing would be useful for instances where the logging interface is + * @note this way of interfacing would be useful for instances where the logging interface is * not available, for example in the ResourceManager or ResourceStorage classes. */ bool has_parameter_interface() const { return node_param_itf_ != nullptr; } From 8d2da534a1f07d11709af6ae2bca842b7815f9b0 Mon Sep 17 00:00:00 2001 From: Yelluri Date: Wed, 24 Jun 2026 20:51:10 +0530 Subject: [PATCH 4/6] docs: update docstring format in joint_limiter_interface --- .../joint_limits/joint_limiter_interface.hpp | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/joint_limits/include/joint_limits/joint_limiter_interface.hpp b/joint_limits/include/joint_limits/joint_limiter_interface.hpp index 2404b631c6..3df4fba0aa 100644 --- a/joint_limits/include/joint_limits/joint_limiter_interface.hpp +++ b/joint_limits/include/joint_limits/joint_limiter_interface.hpp @@ -135,7 +135,7 @@ class JointLimiterInterface /** * @brief Initialize joints from directly provided names, limits, and soft joint limits. - * + * * @param[in] joint_names names of the joints to initialize. * @param[in] joint_limits hard joint limits for each joint. * @param[in] soft_joint_limits soft joint limits for each joint. @@ -193,7 +193,8 @@ class JointLimiterInterface * For details see other init method. * * @param[in] joint_names names of joints where limits should be applied. - * @param[in] lifecycle_node pointer to the lifecycle node to get parameter and logging interfaces. + * @param[in] lifecycle_node pointer to the lifecycle node to get parameter and logging + * interfaces. * @param[in] robot_description_topic string of a topic where robot description is accessible. * @returns true if initialization was successful, otherwise false. */ @@ -209,7 +210,7 @@ class JointLimiterInterface /** * @brief Configure the joint limiter with the current joint states. - * + * * @param[in] current_joint_states current joint states a robot is in. * @returns true if configuration was successful, otherwise false. */ @@ -218,7 +219,7 @@ class JointLimiterInterface return on_configure(current_joint_states); } - /** + /** * @brief Enforce joint limits to desired joint state for multiple physical quantities. * * Generic enforce method that calls implementation-specific `on_enforce` method. @@ -242,14 +243,14 @@ class JointLimiterInterface virtual void reset_internals() = 0; protected: - /** + /** * @brief Initialize limiter's internal states and libraries (implementation-specific). * * @returns true if initialization was successful, otherwise false. */ virtual bool on_init() = 0; - /** + /** * @brief Configure limiter's internal states and libraries (implementation-specific). * * @param[in] current_joint_states current joint states a robot is in. @@ -257,8 +258,9 @@ class JointLimiterInterface */ virtual bool on_configure(const JointLimitsStateDataType & current_joint_states) = 0; - /** - * @brief Enforce the joint limits for multiple dependent physical quantities (implementation-specific). + /** + * @brief Enforce the joint limits for multiple dependent physical quantities + * (implementation-specific). * * Filter-specific implementation of the joint limits enforce algorithm. * @@ -271,7 +273,7 @@ class JointLimiterInterface const JointLimitsStateDataType & current_joint_states, JointLimitsStateDataType & desired_joint_states, const rclcpp::Duration & dt) = 0; - /** + /** * @brief Check if the logging interface is set. * * @returns true if the logging interface is available, otherwise false. @@ -281,7 +283,7 @@ class JointLimiterInterface */ bool has_logging_interface() const { return node_logging_itf_ != nullptr; } - /** + /** * @brief Check if the parameter interface is set. * * @returns true if the parameter interface is available, otherwise false. From 2e65a7422547291be860148c17c1a0c23c10181b Mon Sep 17 00:00:00 2001 From: Yelluri Date: Thu, 2 Jul 2026 21:05:29 +0530 Subject: [PATCH 5/6] docs: standardize @return docstring tags to match upstream --- .../include/joint_limits/joint_limiter_interface.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/joint_limits/include/joint_limits/joint_limiter_interface.hpp b/joint_limits/include/joint_limits/joint_limiter_interface.hpp index 4ba2a2ef4b..8567418e7e 100644 --- a/joint_limits/include/joint_limits/joint_limiter_interface.hpp +++ b/joint_limits/include/joint_limits/joint_limiter_interface.hpp @@ -176,7 +176,7 @@ class JointLimiterInterface * @param[in] joint_names names of joints where limits should be applied. * @param[in] node pointer to the node to get parameter and logging interfaces. * @param[in] robot_description_topic string of a topic where robot description is accessible. - * @returns true if initialization was successful, otherwise false. + * @return true if initialization was successful, otherwise false. */ virtual bool init( const std::vector & joint_names, const rclcpp::Node::SharedPtr & node, @@ -196,7 +196,7 @@ class JointLimiterInterface * @param[in] lifecycle_node pointer to the lifecycle node to get parameter and logging * interfaces. * @param[in] robot_description_topic string of a topic where robot description is accessible. - * @returns true if initialization was successful, otherwise false. + * @return true if initialization was successful, otherwise false. */ virtual bool init( const std::vector & joint_names, @@ -212,7 +212,7 @@ class JointLimiterInterface * @brief Configure the joint limiter with the current joint states. * * @param[in] current_joint_states current joint states a robot is in. - * @returns true if configuration was successful, otherwise false. + * @return true if configuration was successful, otherwise false. */ virtual bool configure(const JointLimitsStateDataType & current_joint_states) { From 0a158d4e68b4f768227028d0613e8e0da1cd9140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20Fr=C3=B6hlich?= Date: Sat, 4 Jul 2026 21:37:14 +0200 Subject: [PATCH 6/6] Rephrase docstring Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- joint_limits/include/joint_limits/joint_limiter_interface.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/joint_limits/include/joint_limits/joint_limiter_interface.hpp b/joint_limits/include/joint_limits/joint_limiter_interface.hpp index 8567418e7e..eef118508e 100644 --- a/joint_limits/include/joint_limits/joint_limiter_interface.hpp +++ b/joint_limits/include/joint_limits/joint_limiter_interface.hpp @@ -257,7 +257,7 @@ class JointLimiterInterface * Implementation-specific configuration of limiter's internal states and libraries. * * @param[in] current_joint_states current joint states a robot is in. - * @return true if initialization was successful, otherwise false. + * @return true if configuration was successful, otherwise false. */ virtual bool on_configure(const JointLimitsStateDataType & current_joint_states) = 0;