-
Notifications
You must be signed in to change notification settings - Fork 4
Port end effector trajectory controller from Angler #54
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
Conversation
...controller/include/end_effector_trajectory_controller/end_effector_trajectory_controller.hpp
Outdated
Show resolved
Hide resolved
...controller/include/end_effector_trajectory_controller/end_effector_trajectory_controller.hpp
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR is porting the end effector trajectory controller from Angler to the repository while adding common utility functions and updating related changelogs.
- Added documentation for the new end effector trajectory controller and modified README content.
- Introduced a new utility function, common::math::isclose, along with its declarations and changelog updates.
Reviewed Changes
Copilot reviewed 37 out of 48 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| end_effector_trajectory_controller/README.md | New documentation for the trajectory controller. |
| end_effector_trajectory_controller/LICENSE | Added MIT license file. |
| controller_common/src/common.cpp | Added implementation of the isclose function. |
| controller_common/include/controller_common/common.hpp | Declared the isclose function with default tolerance values. |
| controller_common/CHANGELOG.md | Updated changelog to include isclose. |
| auv_controllers/CHANGELOG.md | Updated changelog to include the new controller. |
| auv_control_msgs/CHANGELOG.md | Updated changelog with new messages and action. |
| auv_control_demos/CHANGELOG.md | Changelog update with version bump. |
| README.md | Updated global project README with enhanced descriptions. |
Files not reviewed (11)
- auv_control_demos/package.xml: Language not supported
- auv_control_msgs/CMakeLists.txt: Language not supported
- auv_control_msgs/action/FollowEndEffectorTrajectory.action: Language not supported
- auv_control_msgs/msg/EndEffectorTrajectory.msg: Language not supported
- auv_control_msgs/msg/EndEffectorTrajectoryControllerState.msg: Language not supported
- auv_control_msgs/msg/EndEffectorTrajectoryPoint.msg: Language not supported
- auv_control_msgs/msg/IKControllerStateStamped.msg: Language not supported
- auv_control_msgs/package.xml: Language not supported
- auv_controllers/package.xml: Language not supported
- controller_common/package.xml: Language not supported
- end_effector_trajectory_controller/CMakeLists.txt: Language not supported
| { | ||
| return std::ranges::all_of(vec, [](double x) { return std::isnan(x); }); | ||
| } | ||
|
|
Copilot
AI
May 4, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Consider adding inline documentation for 'isclose' explaining the tolerance parameters and the rationale behind its implementation for clarity of usage.
| /** | |
| * @brief Compares two floating-point numbers for approximate equality. | |
| * | |
| * This function checks whether the difference between two numbers `a` and `b` | |
| * is within a specified tolerance. The tolerance is determined by the formula: | |
| * |a - b| <= atol + rtol * |b| | |
| * | |
| * @param a The first floating-point number. | |
| * @param b The second floating-point number. | |
| * @param rtol The relative tolerance. It scales with the magnitude of `b`. | |
| * @param atol The absolute tolerance. It provides a fixed margin of error. | |
| * @return true if the numbers are approximately equal, false otherwise. | |
| */ |
* testing gif in readme * format * bleh * Added reference to blue docs * Cleanup folders * implemented trajectory * whoops * ee controller mvp done * added error tolerance for execution * add controller state publishing * fix compilation errors * update version and changelogs * Start implementing action server interface * adding action server and improving logic * updates * controller ready for testing * add pluginlib description * fix pluginlib * fix plugin registration * reintegrate default constructor * fix library build * add transform to chained references in ik controller * bug fixes * bug fixes * added readme * fix slerp * fix link to blue docs * add changelogs * fix ci errors and pr comments * cleanup * bad idea :D (cherry picked from commit d197fc7) # Conflicts: # README.md # auv_control_demos/CHANGELOG.md # auv_control_demos/package.xml # auv_control_msgs/CHANGELOG.md # auv_control_msgs/CMakeLists.txt # auv_control_msgs/msg/IKControllerStateStamped.msg # auv_control_msgs/package.xml # auv_controllers/CHANGELOG.md # auv_controllers/package.xml # controller_common/CHANGELOG.md # controller_common/include/controller_common/common.hpp # controller_common/package.xml # controller_common/src/common.cpp # ik_solvers/CHANGELOG.md # ik_solvers/include/ik_solvers/solver.hpp # ik_solvers/include/ik_solvers/task_priority_solver.hpp # ik_solvers/package.xml # ik_solvers/src/solver.cpp # ik_solvers/src/task_priority_solver.cpp # thruster_allocation_matrix_controller/CHANGELOG.md # thruster_allocation_matrix_controller/package.xml # thruster_controllers/CHANGELOG.md # thruster_controllers/package.xml # topic_sensors/CHANGELOG.md # topic_sensors/package.xml # velocity_controllers/CHANGELOG.md # velocity_controllers/package.xml # whole_body_controllers/CHANGELOG.md # whole_body_controllers/CMakeLists.txt # whole_body_controllers/include/whole_body_controllers/ik_controller.hpp # whole_body_controllers/package.xml # whole_body_controllers/src/ik_controller.cpp
Changes Made
This PR ports the end effector trajectory controller from Angler to this repository. The controller interpolates end effector motion plans using linear interpolation and spherical linear interpolation.
Associated Issues
Testing
Testing was done in Gazebo using Blue. The Blue documentation has been updated (in the PR that I don't feel like linking right now) to include a tutorial demonstrating how to use this feature.