Package Summary

Tags No category tags.
Version 0.2.3
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/generate_parameter_library.git
VCS Type git
VCS Version main
Last Updated 2022-08-05
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Example usage of generate_parameter_library.

Additional Links

No additional links.

Maintainers

  • Paul Gesel

Authors

  • Paul Gesel

Example:

Build the node

 mkdir colcon_ws
 mkdir colcon_ws/src
 cd colcon_ws/src
 git clone https://github.com/picknikrobotics/generate_parameter_library.git
 cd ..
 colcon build

Run the node

source install/setup.bash
ros2 run generate_parameter_library_example test_node --ros-args --params-file src/generate_parameter_library/example/config/implementation.yaml


You should see an output like this: [INFO] [1656018676.015816509] [admittance_controller]: Control frame is: 'ee_link'

ROS 2 CLI

Run the following:

ros2 param list

You should see:

  /admittance_controller:
  admittance.damping_ratio
  admittance.mass
  admittance.selected_axes
  admittance.stiffness
  chainable_command_interfaces
  command_interfaces
  control.frame.external
  control.frame.id
  enable_parameter_update_without_reactivation
  fixed_world_frame.frame.external
  fixed_world_frame.frame.id
  ft_sensor.frame.external
  ft_sensor.frame.id
  ft_sensor.name
  gravity_compensation.CoG.force
  gravity_compensation.CoG.pos
  gravity_compensation.frame.external
  gravity_compensation.frame.id
  joints
  kinematics.base
  kinematics.plugin_name
  kinematics.tip
  qos_overrides./parameter_events.publisher.depth
  qos_overrides./parameter_events.publisher.durability
  qos_overrides./parameter_events.publisher.history
  qos_overrides./parameter_events.publisher.reliability
  state_interfaces
  use_sim_time

All parameter are automatically declared and callbacks are setup by default. You can set a parameter by typing:

ros2 param set /admittance_controller control.frame.id new_frame

You should see:

[INFO] [1656019001.515820371] [admittance_controller]: Control frame is: 'new_frame'

Congratulations, you updated the parameter!

If you try to set a parameter that is read only, you will get an error. Running the following

ros2 param set /admittance_controller joints ["joint_new"]

will result in the error

Setting parameter failed: parameter 'joints' cannot be set because it is read-only

Running the following

ros2 param describe /admittance_controller admittance.damping_ratio

will show a parameter's description

 Parameter name: admittance.damping_ratio
  Type: double array
  Description: specifies damping ratio values for x, y, z, rx, ry, and rz used in the admittance calculation. The values are calculated as damping can be used instead: zeta = D / (2 * sqrt( M * S ))
  Constraints:
    Min value: 0.1
    Max value: 10.0

If you try to set a value out of the specified bounds,

ros2 param set /admittance_controller admittance.damping_ratio [-10.0,-10.0,-10.0,-10.0,-10.0,-10.0]

you will get the error

Setting parameter failed: Invalid value for parameter admittance.damping_ratio. Value not within required bounds.

If you try to set a vector parameter with the wrong length,

ros2 param set /admittance_controller admittance.damping_ratio [1.0,1.0,1.0]

you will get the error

Setting parameter failed: Invalid size for vector parameter admittance.damping_ratio. Expected 6 got 3

If you try to load a yaml file with missing required parameters

ros2 run generate_parameter_library_example test_node --ros-args --params-file src/generate_parameter_library/example/config/missing_required.yaml

you will get the error

terminate called after throwing an instance of 'rclcpp::exceptions::ParameterUninitializedException'
  what():  parameter 'command_interfaces' is not initialized
[ros2run]: Aborted

CHANGELOG

Changelog for package generate_parameter_library_example

0.2.3 (2022-08-05)

0.2.2 (2022-08-03)

0.2.1 (2022-08-02)

  • Fix scientific notation (#46)
  • Contributors: Paul Gesel

0.2.0 (2022-08-01)

  • Create stack allocated struct (#45)
  • Fixed length arrays (#44)
  • Fixed size string no default bug (#43)
  • static OK to fix ODR errors (#41)
  • Change package name (#40)
  • parameter validators interface library (#32)
  • Validate fixed length Strings (#33)
  • Fixed size strings (#29)
  • Contributors: Paul Gesel, Tyler Weaver

0.1.0 (2022-07-27)

  • Example usage of generate_parameter_library.
  • Contributors: Paul Gesel, Tyler Weaver

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged generate_parameter_library_example at answers.ros.org

No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.2.3
License BSD-3-Clause
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/PickNikRobotics/generate_parameter_library.git
VCS Type git
VCS Version main
Last Updated 2022-08-05
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Example usage of generate_parameter_library.

Additional Links

No additional links.

Maintainers

  • Paul Gesel

Authors

  • Paul Gesel

Example:

Build the node

 mkdir colcon_ws
 mkdir colcon_ws/src
 cd colcon_ws/src
 git clone https://github.com/picknikrobotics/generate_parameter_library.git
 cd ..
 colcon build

Run the node

source install/setup.bash
ros2 run generate_parameter_library_example test_node --ros-args --params-file src/generate_parameter_library/example/config/implementation.yaml


You should see an output like this: [INFO] [1656018676.015816509] [admittance_controller]: Control frame is: 'ee_link'

ROS 2 CLI

Run the following:

ros2 param list

You should see:

  /admittance_controller:
  admittance.damping_ratio
  admittance.mass
  admittance.selected_axes
  admittance.stiffness
  chainable_command_interfaces
  command_interfaces
  control.frame.external
  control.frame.id
  enable_parameter_update_without_reactivation
  fixed_world_frame.frame.external
  fixed_world_frame.frame.id
  ft_sensor.frame.external
  ft_sensor.frame.id
  ft_sensor.name
  gravity_compensation.CoG.force
  gravity_compensation.CoG.pos
  gravity_compensation.frame.external
  gravity_compensation.frame.id
  joints
  kinematics.base
  kinematics.plugin_name
  kinematics.tip
  qos_overrides./parameter_events.publisher.depth
  qos_overrides./parameter_events.publisher.durability
  qos_overrides./parameter_events.publisher.history
  qos_overrides./parameter_events.publisher.reliability
  state_interfaces
  use_sim_time

All parameter are automatically declared and callbacks are setup by default. You can set a parameter by typing:

ros2 param set /admittance_controller control.frame.id new_frame

You should see:

[INFO] [1656019001.515820371] [admittance_controller]: Control frame is: 'new_frame'

Congratulations, you updated the parameter!

If you try to set a parameter that is read only, you will get an error. Running the following

ros2 param set /admittance_controller joints ["joint_new"]

will result in the error

Setting parameter failed: parameter 'joints' cannot be set because it is read-only

Running the following

ros2 param describe /admittance_controller admittance.damping_ratio

will show a parameter's description

 Parameter name: admittance.damping_ratio
  Type: double array
  Description: specifies damping ratio values for x, y, z, rx, ry, and rz used in the admittance calculation. The values are calculated as damping can be used instead: zeta = D / (2 * sqrt( M * S ))
  Constraints:
    Min value: 0.1
    Max value: 10.0

If you try to set a value out of the specified bounds,

ros2 param set /admittance_controller admittance.damping_ratio [-10.0,-10.0,-10.0,-10.0,-10.0,-10.0]

you will get the error

Setting parameter failed: Invalid value for parameter admittance.damping_ratio. Value not within required bounds.

If you try to set a vector parameter with the wrong length,

ros2 param set /admittance_controller admittance.damping_ratio [1.0,1.0,1.0]

you will get the error

Setting parameter failed: Invalid size for vector parameter admittance.damping_ratio. Expected 6 got 3

If you try to load a yaml file with missing required parameters

ros2 run generate_parameter_library_example test_node --ros-args --params-file src/generate_parameter_library/example/config/missing_required.yaml

you will get the error

terminate called after throwing an instance of 'rclcpp::exceptions::ParameterUninitializedException'
  what():  parameter 'command_interfaces' is not initialized
[ros2run]: Aborted

CHANGELOG

Changelog for package generate_parameter_library_example

0.2.3 (2022-08-05)

0.2.2 (2022-08-03)

0.2.1 (2022-08-02)

  • Fix scientific notation (#46)
  • Contributors: Paul Gesel

0.2.0 (2022-08-01)

  • Create stack allocated struct (#45)
  • Fixed length arrays (#44)
  • Fixed size string no default bug (#43)
  • static OK to fix ODR errors (#41)
  • Change package name (#40)
  • parameter validators interface library (#32)
  • Validate fixed length Strings (#33)
  • Fixed size strings (#29)
  • Contributors: Paul Gesel, Tyler Weaver

0.1.0 (2022-07-27)

  • Example usage of generate_parameter_library.
  • Contributors: Paul Gesel, Tyler Weaver

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged generate_parameter_library_example at answers.ros.org

No version for distro noetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.
No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.