Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed paths and expected log messages in example/README.md #138

Merged
merged 1 commit into from
Aug 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 4 additions & 11 deletions example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,7 @@

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

```
## Or run the Python node

```
source install/setup.bash
ros2 run generate_parameter_module_example test_node --ros-args --params-file src/generate_parameter_library/examples/python/config/implementation.yaml
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:
Expand Down Expand Up @@ -106,7 +99,7 @@ All parameter are automatically declared and callbacks are setup by default. You

You should see:

`[INFO] [1656019001.515820371] [admittance_controller]: Control frame is: 'new_frame'`
`[INFO] [1656019001.515820371] [admittance_controller]: New control frame parameter is: 'new_frame'`

Congratulations, you updated the parameter!

Expand Down Expand Up @@ -139,15 +132,15 @@ If you try to set a value out of the specified bounds,

you will get the error

`Setting parameter failed: Invalid value '-10' for parameter 'admittance.damping_ratio'. Required bounds: [0.1, 10]`
`Setting parameter failed: Value -10.0 in parameter 'admittance.damping_ratio' must be within bounds [0.1, 10.0]`

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 length '3' for parameter 'admittance.damping_ratio'. Required equal to: 6`
`Setting parameter failed: Length of parameter 'admittance.damping_ratio' is 3 but must be equal to 6`

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

Expand Down
157 changes: 157 additions & 0 deletions example_python/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
# 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 Python node

```
source install/setup.bash
ros2 run generate_parameter_module_example test_node --ros-args --params-file src/generate_parameter_library/example_python/config/implementation.yaml
```

You should see an output like this:
`[INFO] [1656018676.015816509] [admittance_controller]: Initial control frame parameter 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_array
fixed_string
fixed_string_no_default
fixed_world_frame.frame.external
fixed_world_frame.frame.id
ft_sensor.filter_coefficient
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
interpolation_mode
joints
kinematics.alpha
kinematics.base
kinematics.group_name
kinematics.plugin_name
kinematics.plugin_package
kinematics.tip
one_number
pid.elbow_joint.d
pid.elbow_joint.i
pid.elbow_joint.p
pid.rate
pid.shoulder_lift_joint.d
pid.shoulder_lift_joint.i
pid.shoulder_lift_joint.p
pid.shoulder_pan_joint.d
pid.shoulder_pan_joint.i
pid.shoulder_pan_joint.p
pid.wrist_1_joint.d
pid.wrist_1_joint.i
pid.wrist_1_joint.p
pid.wrist_2_joint.d
pid.wrist_2_joint.i
pid.wrist_2_joint.p
pid.wrist_3_joint.d
pid.wrist_3_joint.i
pid.wrist_3_joint.p
qos_overrides./parameter_events.publisher.depth
qos_overrides./parameter_events.publisher.durability
qos_overrides./parameter_events.publisher.history
qos_overrides./parameter_events.publisher.reliability
scientific_notation_num
state_interfaces
three_numbers
three_numbers_of_five
use_feedforward_commanded_input
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]: New control frame parameter 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 command_interfaces ["velocity"]`

will result in the error

`Setting parameter failed: Trying to set a read-only parameter: command_interfaces.`

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: Value array('d', [-10.0, -10.0, -10.0, -10.0, -10.0, -10.0]) in parameter 'admittance.damping_ratio' must be within bounds [0.1, 10.0]`

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: Length of parameter 'admittance.damping_ratio' is '3' but must be equal to 6`

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

`ros2 run generate_parameter_module_example test_node --ros-args --params-file src/generate_parameter_library/example_python/config/missing_required.yaml`

you will get the error

```
Traceback (most recent call last):
[...]
rclpy.exceptions.ParameterUninitializedException: The parameter 'fixed_string_no_default' is not initialized
[ros2run]: Process exited with failure 1
```
Loading