From d201aaafef2842a9037e902439bcc5d824c7033a Mon Sep 17 00:00:00 2001 From: Stephanie Eng Date: Mon, 2 Jan 2023 12:27:45 -0500 Subject: [PATCH] Small grammar fixes (#28) --- README.md | 2 +- doc/INSTALL.md | 8 ++++---- doc/USAGE.md | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index d6e170f..87981d5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ `pick_ik` is an inverse kinematics (IK) solver compatible with [MoveIt 2](https://github.com/ros-planning/moveit2). -The solver is a reimplementation of [`bio_ik`](https://github.com/TAMS-Group/bio_ik), which combines +The solver is a reimplementation of [`bio_ik`](https://github.com/TAMS-Group/bio_ik), which combines: * A local optimizer which solves inverse kinematics via gradient descent * A global optimizer based on evolutionary algorithms diff --git a/doc/INSTALL.md b/doc/INSTALL.md index 9cf6e17..c93f488 100644 --- a/doc/INSTALL.md +++ b/doc/INSTALL.md @@ -44,11 +44,11 @@ colcon build --mixin release --- -## Local development in devcontainer +## Local development in Dev Containers -This repo is also set up for VSCode dev containers, so you can develop directly in a Docker container. +This repo is also set up for VSCode Dev Containers, so you can develop directly in a Docker container. -1. Install docker and add yourself to the docker group. +1. Install Docker and add yourself to the Docker group. ```shell curl -fsSL https://get.docker.com -o get-docker.sh @@ -66,4 +66,4 @@ mkdir -p ~/.local/.pick_ik/ccache mkdir -p ~/.local/.pick_ik/ros ``` -3. Open project in VSCode and follow prompts to open project in devcontainer. +3. Open the project in VSCode and follow the prompts to open the project in a Dev Container. diff --git a/doc/USAGE.md b/doc/USAGE.md index b3618c4..6c48bac 100644 --- a/doc/USAGE.md +++ b/doc/USAGE.md @@ -20,7 +20,7 @@ panda_arm: gd_step_size: 0.0001 ``` -As a sanity check, you could follow the [MoveIt Quickstart in RViz](https://moveit.picknik.ai/humble/doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial.html) tutorial and change the `moveit_resources/panda_moveit_config/config/kinematics.yaml/kinematics.yaml` file to use a configuration like the one above. +As a sanity check, you could follow the [MoveIt Quickstart in RViz](https://moveit.picknik.ai/humble/doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial.html) tutorial and change the `moveit_resources/panda_moveit_config/config/kinematics.yaml` file to use a configuration like the one above. --- @@ -30,11 +30,11 @@ For an exhaustive list of parameters, refer to the [parameters YAML file](../src Some key parameters you may want to start with are: -* `mode`: If you choose `local`, this solver will only do local gradient descent; If you choose `global`, it will also enable the evolutionary algorithm. Using the global solver will be less performant, but if you're having trouble getting out of local minima, this could help you. We recommend using `local` for things like relative motion / Cartesian interpolation / endpoint jogging, and `global` if you need to solve for goals with a far-away initial conditions. +* `mode`: If you choose `local`, this solver will only do local gradient descent; if you choose `global`, it will also enable the evolutionary algorithm. Using the global solver will be less performant, but if you're having trouble getting out of local minima, this could help you. We recommend using `local` for things like relative motion / Cartesian interpolation / endpoint jogging, and `global` if you need to solve for goals with a far-away initial conditions. * `memetic_`: All the properties that only kick in if you use the `global` solver. The key one is `memetic_num_threads`, as we have enabled the evolutionary algorithm to solve on multiple threads. * `cost_threshold`: This solver works by setting up cost functions based on how far away your pose is, how much your joints move relative to the initial guess, and custom cost functions you can add. Optimization succeeds only if the cost is less than `cost_threshold`. Note that if you're adding custom cost functions, you may want to set this threshold fairly high and rely on `position_threshold` and `orientation_threshold` to be your deciding factors, whereas this is more of a guideline. -* `position_threshold`/`orientation_threshold`: Optimization succeeds only if the pose difference. is less than these thresholds in meters and radians respectively. So `position_threshold` of 0.001 would mean a 1 mm accuracy and `orientation_threshold` of 0.01 would mean a 0.01 radian accuracy. -* `approximate_solution_position_threshold`/`approximate_position_orientation_threshold`: When using approximate IK solutions for applications such as endpoint servoing, `pick_ik` may sometimes return solutions that are significantly far from the goal frame. To prevent issues with such jumps in solutions, these parameters define maximum translational and rotation displacement. We recommend setting this to values around a few centimeters and a few degrees for most applications. +* `position_threshold`/`orientation_threshold`: Optimization succeeds only if the pose difference is less than these thresholds in meters and radians respectively. A `position_threshold` of 0.001 would mean a 1 mm accuracy and an `orientation_threshold` of 0.01 would mean a 0.01 radian accuracy. +* `approximate_solution_position_threshold`/`approximate_solution_orientation_threshold`: When using approximate IK solutions for applications such as endpoint servoing, `pick_ik` may sometimes return solutions that are significantly far from the goal frame. To prevent issues with such jumps in solutions, these parameters define maximum translational and rotation displacement. We recommend setting this to values around a few centimeters and a few degrees for most applications. * `rotation_scale`: If you want position-only IK, set this to 0.0. If you want to treat position and orientation equally, set this to 1.0. You can also use any value in between; it's part of the cost function. Note that any checks using `orientation_threshold` will be ignored if you use `rotation_scale = 0.0`. * `minimal_displacement_weight`: This is one of the standard cost functions that checks for the joint angle difference between the initial guess and the solution. If you're solving for far-away goals, leave it to zero or it will hike up your cost function for no reason. Have this to a small non-zero value (e.g., 0.001) if you're doing things like Cartesian interpolation along a path, or endpoint jogging for servoing.