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

ROS2 docking manager plugins #394

Merged
merged 10 commits into from
Aug 28, 2024
Merged

Conversation

delihus
Copy link
Contributor

@delihus delihus commented Aug 21, 2024

Description

Based on https://github.com/open-navigation/opennav_docking/tree/humble/opennav_docking_bt added DockRobotAction and UndockRobotAction plugins to BehaviorTree and tested them.

Summary by CodeRabbit

  • New Features
    • Introduced DockRobot and UndockRobot classes to enhance robotic docking and undocking capabilities within the behavior tree framework.
    • Added unit tests for both docking and undocking actions to ensure robust functionality and error handling.
  • Bug Fixes
    • Improved input validation and error logging for parameter handling in both action classes.

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
@delihus delihus requested a review from pawelirh August 21, 2024 12:35
Copy link
Contributor

coderabbitai bot commented Aug 21, 2024

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Base branches to auto review (1)
  • ros2-devel

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

The changes to the panther_manager project introduce two new action nodes, DockRobot and UndockRobot, to facilitate robotic docking and undocking processes within a behavior tree framework. These modifications include the implementation of corresponding unit tests and updates to the build configuration, integrating new libraries and dependencies.

Changes

Files Change Summary
panther_manager/CMakeLists.txt Updated package dependencies and added shared libraries for dock_robot_bt_node and undock_robot_bt_node. Introduced Google Test configurations for their unit tests.
panther_manager/include/panther_manager/plugins/action/* Created headers for DockRobot and UndockRobot classes, defining their constructors and key methods for managing docking and undocking actions within behavior trees.
panther_manager/src/plugins/action/* Implemented DockRobot and UndockRobot classes, detailing methods for goal setting, result handling, and error management specific to the docking and undocking processes.
panther_manager/test/plugins/action/test_dock_robot_node.cpp Added unit tests for the DockRobot action, validating action server behavior under various scenarios, including parameter validation and success/failure handling.
panther_manager/test/plugins/action/test_undock_robot_node.cpp Developed unit tests for the UndockRobot action, covering scenarios similar to DockRobot, verifying initialization, goal handling, and server responses.
panther_manager/test/utils/plugin_test_utils.hpp Enhanced PluginTestUtils with methods to create action servers, improving testing capabilities for behavior trees in ROS 2 applications.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant BehaviorTree
    participant DockRobot
    participant ActionServer

    User->>BehaviorTree: Initiate Docking
    BehaviorTree->>DockRobot: Set Goal
    DockRobot->>ActionServer: Send Goal
    ActionServer-->>DockRobot: Goal Accepted
    DockRobot->>ActionServer: Monitor Result
    ActionServer-->>DockRobot: Result Success
    DockRobot-->>BehaviorTree: Notify Success
    BehaviorTree-->>User: Docking Complete
Loading
sequenceDiagram
    participant User
    participant BehaviorTree
    participant UndockRobot
    participant ActionServer

    User->>BehaviorTree: Initiate Undocking
    BehaviorTree->>UndockRobot: Set Goal
    UndockRobot->>ActionServer: Send Goal
    ActionServer-->>UndockRobot: Goal Accepted
    UndockRobot->>ActionServer: Monitor Result
    ActionServer-->>UndockRobot: Result Success
    UndockRobot-->>BehaviorTree: Notify Success
    BehaviorTree-->>User: Undocking Complete
Loading

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Outside diff range, codebase verification and nitpick comments (7)
panther_manager/src/plugins/action/undock_robot_action_node.cpp (2)

39-51: Consider logging additional result details.

In onResultReceived, while the success and error code are set, consider logging additional details from the result to aid in debugging and monitoring.


60-63: Consider expanding onHalt functionality.

The onHalt method currently logs a message. Consider adding any necessary cleanup or state reset logic if applicable.

panther_manager/include/panther_manager/plugins/action/undock_robot_action_node.hpp (1)

29-61: Add documentation for class methods.

The methods in UndockRobotAction lack documentation. Adding comments explaining the purpose and usage of each method would improve readability and maintainability.

panther_manager/include/panther_manager/plugins/action/dock_robot_action_node.hpp (1)

29-65: Add documentation for class methods.

The methods in DockRobotAction lack documentation. Adding comments explaining the purpose and usage of each method would improve readability and maintainability.

panther_manager/src/plugins/action/dock_robot_action_node.cpp (2)

63-76: Consider logging additional result details.

In onResultReceived, while the success and error code are set, consider logging additional details from the result to aid in debugging and monitoring.


85-88: Consider expanding onHalt functionality.

The onHalt method currently logs a message. Consider adding any necessary cleanup or state reset logic if applicable.

panther_manager/test/utils/plugin_test_utils.hpp (1)

161-161: Document new member variable server_.

The new member variable server_ should be documented to clarify its purpose and usage within the class.

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between cdafc74 and 87d9f0d.

Files selected for processing (8)
  • panther_manager/CMakeLists.txt (3 hunks)
  • panther_manager/include/panther_manager/plugins/action/dock_robot_action_node.hpp (1 hunks)
  • panther_manager/include/panther_manager/plugins/action/undock_robot_action_node.hpp (1 hunks)
  • panther_manager/src/plugins/action/dock_robot_action_node.cpp (1 hunks)
  • panther_manager/src/plugins/action/undock_robot_action_node.cpp (1 hunks)
  • panther_manager/test/plugins/action/test_dock_robot_action_node.cpp (1 hunks)
  • panther_manager/test/plugins/action/test_undock_robot_action_node.cpp (1 hunks)
  • panther_manager/test/utils/plugin_test_utils.hpp (3 hunks)
Additional comments not posted (22)
panther_manager/src/plugins/action/undock_robot_action_node.cpp (1)

53-58: Verify error handling coverage in onFailure.

The onFailure method logs the error but does not take any corrective action. Ensure that this behavior aligns with the overall error handling strategy.

panther_manager/src/plugins/action/dock_robot_action_node.cpp (1)

78-83: Verify error handling coverage in onFailure.

The onFailure method logs the error but does not take any corrective action. Ensure that this behavior aligns with the overall error handling strategy.

panther_manager/test/utils/plugin_test_utils.hpp (1)

117-133: Ensure thread safety in CreateAction.

The CreateAction method creates a new node and executor thread. Ensure that the node and executor are properly managed and consider potential thread safety issues.

panther_manager/test/plugins/action/test_undock_robot_action_node.cpp (6)

67-78: Test case GoodLoadingUndockRobotActionPlugin is well-implemented.

The test correctly verifies that the UndockRobotAction plugin loads without exceptions when provided with valid parameters.


80-91: Test case WrongLoadingUndockRobotActionPlugin is correctly implemented.

The test verifies that a BT::RuntimeError is thrown when an invalid action name is used.


93-109: Test case WrongCallUndockRobotActionServerNotInitialized is valid.

The test correctly expects a failure status when the action server is not initialized.


111-128: Test case WrongCallUndockRobotActionServerWithNoDockType is correctly implemented.

The test verifies that a failure status is returned when the dock_type parameter is empty.


130-146: Test case CallUndockRobotActionServerFailure is valid.

The test correctly expects a failure status when the goal response is rejected.


148-165: Test case CallUndockRobotActionServerSuccess is well-implemented.

The test correctly expects a success status when the action server processes the request successfully.

panther_manager/test/plugins/action/test_dock_robot_action_node.cpp (9)

68-81: Test case GoodLoadingDockRobotActionPlugin is well-implemented.

The test correctly verifies that the DockRobotAction plugin loads without exceptions when provided with valid parameters.


84-95: Test case WrongLoadingDockRobotActionPlugin is correctly implemented.

The test verifies that a BT::RuntimeError is thrown when an invalid action name is used.


97-115: Test case WrongCallDockRobotActionServerNotInitialized is valid.

The test correctly expects a failure status when the action server is not initialized.


117-134: Test case WrongCallDockRobotActionServerWithNoDockID is correctly implemented.

The test verifies that a failure status is returned when the dock_id parameter is missing.


136-153: Test case CallDockRobotActionServerWithoutDockID is valid.

The test correctly expects a success status when the use_dock_id parameter is set to false.


155-175: Test case CallDockRobotActionServerWithEmptyDockID is correctly implemented.

The test verifies that a failure status is returned when the dock_id parameter is empty.


177-197: Test case CallDockRobotActionServerWithEmptyDockType is correctly implemented.

The test verifies that a failure status is returned when the dock_type parameter is empty.


199-217: Test case CallDockRobotActionServerWithNavigateToStagingPoseFailure is valid.

The test correctly expects a failure status when the goal response is rejected.


220-239: Test case CallDockRobotActionServerWithNavigateToStagingPoseSuccess is well-implemented.

The test correctly expects a success status when the action server processes the request successfully.

panther_manager/CMakeLists.txt (4)

20-21: Addition of opennav_docking_msgs to dependencies is appropriate.

The inclusion of opennav_docking_msgs is necessary for the new docking and undocking functionalities.


59-61: Addition of dock_robot_bt_node library is appropriate.

The new shared library supports the docking action node functionality.


63-65: Addition of undock_robot_bt_node library is appropriate.

The new shared library supports the undocking action node functionality.


148-160: Addition of test cases for docking and undocking action nodes is appropriate.

The new test configurations ensure that the functionalities are covered by unit tests, enhancing robustness.

| changed DockRobotAction to DockRobot

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
@delihus delihus requested a review from pawelirh August 23, 2024 10:53
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Outside diff range, codebase verification and nitpick comments (1)
panther_manager/src/plugins/action/dock_robot_node.cpp (1)

23-27: Ensure consistency in error handling.

The error message for the dock_type input is clear. Ensure similar clarity and consistency for other error messages in the method.

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 87d9f0d and 687c52f.

Files selected for processing (8)
  • panther_manager/CMakeLists.txt (3 hunks)
  • panther_manager/include/panther_manager/plugins/action/dock_robot_node.hpp (1 hunks)
  • panther_manager/include/panther_manager/plugins/action/undock_robot_node.hpp (1 hunks)
  • panther_manager/src/plugins/action/dock_robot_node.cpp (1 hunks)
  • panther_manager/src/plugins/action/undock_robot_node.cpp (1 hunks)
  • panther_manager/test/plugins/action/test_dock_robot_node.cpp (1 hunks)
  • panther_manager/test/plugins/action/test_undock_robot_node.cpp (1 hunks)
  • panther_manager/test/utils/plugin_test_utils.hpp (3 hunks)
Files skipped from review as they are similar to previous changes (2)
  • panther_manager/CMakeLists.txt
  • panther_manager/test/utils/plugin_test_utils.hpp
Additional context used
Learnings (5)
Common learnings
Learnt from: delihus
PR: husarion/panther_ros#394
File: panther_manager/src/plugins/action/undock_robot_action_node.cpp:22-37
Timestamp: 2024-08-23T10:51:30.231Z
Learning: The `dock_type` parameter in the `setGoal` method of the `UndockRobotAction` class cannot have a default value because it is essential for specifying the type of charging dock.
panther_manager/src/plugins/action/undock_robot_node.cpp (1)
Learnt from: delihus
PR: husarion/panther_ros#394
File: panther_manager/src/plugins/action/undock_robot_action_node.cpp:22-37
Timestamp: 2024-08-23T10:51:30.231Z
Learning: The `dock_type` parameter in the `setGoal` method of the `UndockRobotAction` class cannot have a default value because it is essential for specifying the type of charging dock.
panther_manager/include/panther_manager/plugins/action/undock_robot_node.hpp (1)
Learnt from: delihus
PR: husarion/panther_ros#394
File: panther_manager/src/plugins/action/undock_robot_action_node.cpp:22-37
Timestamp: 2024-08-23T10:51:30.231Z
Learning: The `dock_type` parameter in the `setGoal` method of the `UndockRobotAction` class cannot have a default value because it is essential for specifying the type of charging dock.
panther_manager/include/panther_manager/plugins/action/dock_robot_node.hpp (1)
Learnt from: delihus
PR: husarion/panther_ros#394
File: panther_manager/src/plugins/action/undock_robot_action_node.cpp:22-37
Timestamp: 2024-08-23T10:51:30.231Z
Learning: The `dock_type` parameter in the `setGoal` method of the `UndockRobotAction` class cannot have a default value because it is essential for specifying the type of charging dock.
panther_manager/src/plugins/action/dock_robot_node.cpp (1)
Learnt from: delihus
PR: husarion/panther_ros#394
File: panther_manager/src/plugins/action/undock_robot_action_node.cpp:22-37
Timestamp: 2024-08-23T10:51:30.231Z
Learning: The `dock_type` parameter in the `setGoal` method of the `UndockRobotAction` class cannot have a default value because it is essential for specifying the type of charging dock.
Additional comments not posted (36)
panther_manager/src/plugins/action/undock_robot_node.cpp (4)

21-35: LGTM! Ensure dock_type is always provided.

The setGoal method correctly checks for the presence of dock_type and max_undocking_time inputs. The learning confirms that dock_type cannot have a default value, which aligns with the implementation.


38-49: LGTM!

The onResultReceived method correctly sets the output ports and returns the appropriate node status based on the result's success.


52-57: LGTM!

The onFailure method correctly logs the error and returns a failure status.


59-62: LGTM!

The onHalt method correctly logs an informational message indicating the node has been halted.

panther_manager/include/panther_manager/plugins/action/undock_robot_node.hpp (6)

36-40: LGTM!

The constructor for UndockRobot correctly initializes the base class with the provided parameters.


42-42: LGTM!

The setGoal method is correctly declared to override the base class method.


44-44: LGTM!

The onHalt method is correctly declared to override the base class method.


46-46: LGTM!

The onResultReceived method is correctly declared to override the base class method.


48-48: LGTM!

The onFailure method is correctly declared to override the base class method.


50-61: LGTM!

The providedPorts method correctly defines input and output ports for the behavior tree. The dock_type input port aligns with the learning that it cannot have a default value.

panther_manager/include/panther_manager/plugins/action/dock_robot_node.hpp (6)

36-40: LGTM!

The constructor for DockRobot correctly initializes the base class with the provided parameters.


41-41: LGTM!

The setGoal method is correctly declared to override the base class method.


43-43: LGTM!

The onHalt method is correctly declared to override the base class method.


45-45: LGTM!

The onResultReceived method is correctly declared to override the base class method.


47-47: LGTM!

The onFailure method is correctly declared to override the base class method.


49-63: LGTM!

The providedPorts method correctly defines input and output ports for the behavior tree. The ports are well-documented and align with the expected functionality.

panther_manager/src/plugins/action/dock_robot_node.cpp (6)

29-33: Consider using default values for optional inputs.

The use_dock_id input defaults to false if not set. Ensure this aligns with the intended behavior and document it if necessary.


51-57: Clarify error handling for max_staging_time.

The error message for max_staging_time is triggered only if navigate_to_staging_pose is true. Ensure this conditional logic is intentional and documented.


62-74: LGTM!

The method correctly sets outputs based on the received result and returns the appropriate status.


77-81: LGTM!

The method correctly logs the error and returns a failure status.


84-86: LGTM!

The method correctly logs an informational message on halt.


91-92: LGTM!

The plugin registration appears correct and follows the expected pattern.

panther_manager/test/plugins/action/test_undock_robot_node.cpp (6)

66-77: LGTM!

The test case correctly verifies the successful loading of the UndockRobot plugin with valid parameters.


79-90: LGTM!

The test case correctly checks for an exception when loading the plugin with invalid parameters.


92-108: LGTM!

The test case correctly verifies failure when the server is not initialized.


110-126: LGTM!

The test case correctly checks for failure when the dock_type is not provided.


129-144: LGTM!

The test case correctly verifies failure when the server rejects the goal.


147-163: LGTM!

The test case correctly verifies success when the server accepts and executes the goal.

panther_manager/test/plugins/action/test_dock_robot_node.cpp (8)

64-77: LGTM!

The test case correctly verifies the successful loading of the DockRobot plugin with valid parameters.


80-90: LGTM!

The test case correctly checks for an exception when loading the plugin with invalid parameters.


93-110: LGTM!

The test case correctly verifies failure when the server is not initialized.


113-129: LGTM!

The test case correctly checks for failure when the dock_id is not provided.


132-148: LGTM!

The test case correctly verifies success when use_dock_id is false, even if dock_id is not provided.


151-170: LGTM!

The test case correctly checks for failure when dock_id is empty but use_dock_id is true.


173-192: LGTM!

The test case correctly verifies failure when dock_type is empty.


195-213: LGTM!

The test case correctly checks for failure when the goal is rejected with navigate_to_staging_pose set to true.

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
@delihus delihus requested a review from pawelirh August 26, 2024 15:33
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 687c52f and 1b70e25.

Files selected for processing (3)
  • panther_manager/include/panther_manager/plugins/action/dock_robot_node.hpp (1 hunks)
  • panther_manager/include/panther_manager/plugins/action/undock_robot_node.hpp (1 hunks)
  • panther_manager/test/plugins/action/test_dock_robot_node.cpp (1 hunks)
Files skipped from review due to trivial changes (1)
  • panther_manager/include/panther_manager/plugins/action/dock_robot_node.hpp
Files skipped from review as they are similar to previous changes (2)
  • panther_manager/include/panther_manager/plugins/action/undock_robot_node.hpp
  • panther_manager/test/plugins/action/test_dock_robot_node.cpp

@JanBrzyk
Copy link
Contributor

Merge to ros2-docking

@delihus delihus changed the base branch from ros2-devel to ros2-docking August 27, 2024 15:24
@delihus delihus merged commit 3bc8f34 into ros2-docking Aug 28, 2024
1 check passed
@delihus delihus deleted the ros2-docking-manager-plugins branch August 28, 2024 12:23
@coderabbitai coderabbitai bot mentioned this pull request Dec 11, 2024
5 tasks
rafal-gorecki added a commit that referenced this pull request Dec 20, 2024
* added half tested panther_docking package

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added tests

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added redme

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* run precommit

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fix typo

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* After coderabbit review

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* fixed parameters | fixed exporting_package

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Adjust cmake

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added getParameters and declareParameters | review suggestions

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* added offsetPose | moved transformPose to ros_utils

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* removed hardware deps

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Moved TransformPose to tf2_utils

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* added filter description

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* removed realtime_tools

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Modef OffsetFunction utils

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* added and applied ArePosesNear()

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* fix tf utils header guard

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added comment

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added locking node

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update docking to develop (#399)

* Implement testing POC

* Namespace refactor

* Add EStop to Gazebo

* unify CMakeLists.txt files

* Add dependencies

* Add remapping

* Rename files in panther_diagnostics package

* Update after changes in panther_diagnostics

* Rename config and launch file in manager package

* Correct include guards in manager package

* Restructure files tree in manager tests

* Ros2 estop sim gui (#384)

* New format of documentation  (#369)

* Change 3 package for demo

* Improve ROS_API

* fix links

* Update

* Update

* Table improvements

* Format

* Save work

* Save work

* update

* fix

* fix

* fix

* fix

* fix

* Add API warning

* Improve links

* lights simplify

* Create CONFIGURATION.md files

* Typos

* pre-commit

* Apply suggestions from code review

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Save work

* Final unification

* Delete trash

* typos

* Update README.md

* Update ROS_API.md

* Update ROS_API.md

* Update README.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Change initial warning to beta warning

* improve warn rendering

* rendering

* Update Diagram

* Add Dawid suggestions

* Dot

* Change diagram ext and typos

* Do not describe external nodes

* Add Dawid suggestons

* Add last Dawid suggestions

* Format

* Pawel suggestions

* Diagram improvements

* Update

* Diagram Visual

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Change scheme theme (#380)

* unify CMakeLists.txt files (#381)

* First working version

* Ros2 increase bt service timeout (#382)

* Parametrize and increase service timeout in managers

* Format panther API drawio file

* Add Estop GUI and docs

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Paweł Irzyk <108666440+pawelirh@users.noreply.github.com>
Co-authored-by: Dawid Kmak <73443304+KmakD@users.noreply.github.com>

* Update panther_gazebo/panther_hardware_plugins.xml

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Add david suggestion and change gui layout

* Typos in Readme + estop publish on service call

* Reorganize files in panther_lights

* UPdate include guards in panther_lights

* Reorganize files in panther_battery

* Move estop to plugins folder

* add nmea gps

* Rename battery driver files

* Rename shutdown hosts config

* Inherit from IgnitionSystem

* Change to Estop -> EStop

* Reorganize panther_hardware_interfaces files

* Dawid suggestions part 1

* Rename PantherSystem -> GzPantherSystem

* Update references to files

* Rename battery exec

* Fix links in documentations (#387)

* Refer to header files

* Update panther_gazebo/include/panther_gazebo/gz_panther_system.hpp

Co-authored-by: Dawid Kmak <73443304+KmakD@users.noreply.github.com>

* Update panther_gazebo/src/gz_panther_system.cpp

Co-authored-by: Dawid Kmak <73443304+KmakD@users.noreply.github.com>

* Update panther_gazebo/src/gz_panther_system.cpp

Co-authored-by: Dawid Kmak <73443304+KmakD@users.noreply.github.com>

* Dawid suggestions

* delete typo

* Minor modifications

* Move BT plugins to src directory

* Reorganize test utilities in hardware_interfaces

* Merge remote-tracking branch 'origin/ros2-devel' into ros2-testing-poc

* Add missing module configuration

* Update panther_gazebo/include/panther_gazebo/gz_panther_system.hpp

Co-authored-by: Dawid Kmak <73443304+KmakD@users.noreply.github.com>

* Dawid suggestions

* update docs

* Extend filesystem responsibility

* Update ROS_API.md

Co-authored-by: Paweł Irzyk <108666440+pawelirh@users.noreply.github.com>

* update names

* Add new common utility functions

* System monitor improvements

* Round temperature precision

* Implement filesystem unit tests

* Formatting

* Add integration tests condition

* Update ROS_API.md

* Review changes

* Add pre-commit workflow (#395)

---------

Co-authored-by: pawelirh <pawel.irzyk@husarion.com>
Co-authored-by: rafal-gorecki <rafal.gorecki@husarion.com>
Co-authored-by: Dawid <kmakd197@gmail.com>
Co-authored-by: rafal-gorecki <126687345+rafal-gorecki@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Paweł Irzyk <108666440+pawelirh@users.noreply.github.com>
Co-authored-by: Dawid Kmak <73443304+KmakD@users.noreply.github.com>

* ROS2 docking manager plugins  (#394)

* Added base of BT docking plugins

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Teste dock and undock plugins

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Removed test dock manager

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* run precommit

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* moved plugins

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* changed names of files and classes
| changed DockRobotAction to DockRobot

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed copyright

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Changed timeouts | changed using

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* JoySubscription BT node (#397)

* changed main in manager's tests

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Changed to AreButtonsPressed

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed model

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Revert "Fixed model"

This reverts commit 97d85c2.

* Fixed model

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Readme update

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update panther_docking/README.md

Co-authored-by: Paweł Irzyk <108666440+pawelirh@users.noreply.github.com>

* Added exec depend and pip install to cmake

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* add python as interpreter

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed namespaces and updated ros_component_description (#424)

* Fixed namespaces and updated ros_component_description

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Remove panther_version

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Co-authored-by: rafal-gorecki <rafal.gorecki@husarion.com>

* Ros2 docking manager no lights (#430)

* Manage lights

* Simple working version

* Clean up

* Clean up and add types enums

* Simplifications

* Change ports

* Add use_docking arg

* Fix port

* Fix port

* Add more cases to tests

* update

* Fix ports

* Add dock_pose field, improve description, add dependencies

* Docking manager without lights

* Auto review

* Update CONFIGURATION.md

* Typo

* Coderabbit suggestions

* Jakub suggestions

* Fix tests

* Jakub suggestions

* ROS2 docking fix joy (#439)

* Fixed utils test, fixed joy

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Revert "Fixed utils test, fixed joy"

This reverts commit 3bd5e30.

* Fixed bt utils test, changed dock jot input

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Joy input and typo

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Charging Dock Plugin based on dock pose subscriber (#431)

* Fixed namespaces and updated ros_component_description

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Changed GetDockPose approach

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Cleanup charger

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added unit tests

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update docs:

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fix upside down

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added updateAndPublishStagingPose method

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added suggestins | added reading docking_server parameter is dock pose publisher

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Remove redundant tests

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added aprilros launch to simulation

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* update vsc and changed dock name

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Ros2 docking charging dock wibotic msgs (#436)

* Fixed namespaces and updated ros_component_description

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Changed GetDockPose approach

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Cleanup charger

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added unit tests

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update docs:

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fix upside down

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added updateAndPublishStagingPose method

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added suggestins | added reading docking_server parameter is dock pose publisher

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Remove redundant tests

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added reading wibotic_info

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added launching wibotic_connector_can

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added right condition to wibotic_connector_can

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* wibotic_ros is needed to build

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update repose, update parameters

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added condition for use_docking

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* update repose

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed use_wibotic_info param

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Rafal's suggestions applied

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* README update and comment delete

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update docs

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update .repose

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* ROS2 docking nav2 (#443)

* Fixed namespaces and updated ros_component_description

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Changed GetDockPose approach

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Cleanup charger

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added unit tests

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update docs:

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fix upside down

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added updateAndPublishStagingPose method

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added suggestins | added reading docking_server parameter is dock pose publisher

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Remove redundant tests

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added aprilros launch to simulation

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* update vsc and changed dock name

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Tested with nav2 in simulation | Added docking to multibple stations | Spawning multiple stations

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed after merge

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* described parameters | applied codeguides

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* coderabbitai suggestions

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Review

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* wibotic_connector_ros depends on hardware | fixed launch args

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* wibotic_connector_ros depends on hardware | fixed launch args

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added default values

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update panther_manager/launch/manager.launch.py

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Co-authored-by: Rafal Gorecki <126687345+rafal-gorecki@users.noreply.github.com>

* Ros2 docking tf compare (#451)

* Changed camera pose

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed test

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update docs

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* typo

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* typo

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update panther_docking/README.md

Co-authored-by: Rafal Gorecki <126687345+rafal-gorecki@users.noreply.github.com>

* updated vcs

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Co-authored-by: Rafal Gorecki <126687345+rafal-gorecki@users.noreply.github.com>

* Ros2 docking lifecycle node (#453)

* Changed camera pose

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed test

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Update docs

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* typo

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* typo

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Changed to lifecyclenode | added transition service client

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Updated docs

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Added timeout function

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Changed names in package

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Revert "Changed names in package"

This reverts commit 31ae7ce.

* ROS2 Docking - panther_docking to husarion_ugv_docking (#459)

* Changed names in package

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* fixed param name

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Removed docking

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Removed docking manager

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Removed docking manager

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed after merge

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Code rabbit ai suggestions

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Remove accident panther_manager

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Removed dock plugins

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed path

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed path

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed path

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Removed docking files

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Removed tf2_utils

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* removed station launch

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

* Fixed HEADER GUARD

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>

---------

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Co-authored-by: pawelirh <pawel.irzyk@husarion.com>
Co-authored-by: rafal-gorecki <rafal.gorecki@husarion.com>
Co-authored-by: Dawid <kmakd197@gmail.com>
Co-authored-by: rafal-gorecki <126687345+rafal-gorecki@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Paweł Irzyk <108666440+pawelirh@users.noreply.github.com>
Co-authored-by: Dawid Kmak <73443304+KmakD@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants