Skip to content

Commit

Permalink
Add detail on custom IK plugin param declaration. (moveit#488)
Browse files Browse the repository at this point in the history
* Add detail on custom IK plugin param declaration.

MoveIt Servo dispenses with the `automatically_declare_parameters_from_overrides` machinery discussed here:

https://github.com/orgs/ros-planning/discussions/1486

However, unlike a kinematics plugin loaded by a `move_group` node, this seems to mean that the kinematics plugin code is responsible for declaring any custom parameters on `/servo_node` that it needs to load from a MoveIt Config's `kinematics.yaml`

Maybe this is not the case for configs generated with `MoveItConfigsBuilder`, but it was my experience with the launch strategy used by

https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/main/ur_moveit_config

* Typo on line number

* Fix code tag formatting

* getROSParam code tag

* Whitespace cleanup

Co-authored-by: AndyZe <andyz@utexas.edu>
  • Loading branch information
danzimmerman and AndyZe committed Aug 11, 2022
1 parent cc0769a commit c9616ee
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions doc/examples/realtime_servo/realtime_servo_tutorial.rst
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,10 @@ The above excerpt is taken from `servo_example.launch.py <https://github.com/ros
In the above example, the :code:`kinematics.yaml` file is taken from the `moveit_resources <https://github.com/ros-planning/moveit_resources>`_ repository in the workspace, specifically :code:`moveit_resources/panda_moveit_config/config/kinematics.yaml`.
The actual ROS parameter names that get passed by loading the yaml file are of the form :code:`robot_description_kinematics.<group_name>.<param_name>`, e.g. :code:`robot_description_kinematics.panda_arm.kinematics_solver`.

Since :code:`moveit_servo` does not allow undeclared parameters found in the :code:`kinematics.yaml` file to be set on the Servo node, custom solver parameters need to be declared from inside your plugin code.

For example, :code:`bio_ik` defines a :code:`getROSParam()` function in `bio_ik/src/kinematics_plugin.cpp <https://github.com/PickNikRobotics/bio_ik/blob/ros2/src/kinematics_plugin.cpp#L160>`_ that declares parameters if they're not found on the Servo Node.

Setup on a New Robot
--------------------

Expand Down

0 comments on commit c9616ee

Please sign in to comment.