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

[TASK] Aruco Lifecycle Node #2

Open
3 tasks
jorgenfj opened this issue Oct 12, 2024 · 0 comments
Open
3 tasks

[TASK] Aruco Lifecycle Node #2

jorgenfj opened this issue Oct 12, 2024 · 0 comments
Assignees

Comments

@jorgenfj
Copy link
Contributor

jorgenfj commented Oct 12, 2024

Description of task

We want fine grained control of our ros nodes to allow better integration with the autonomy group. We will therefore implement this node as a state machine with predefined states from the Managed nodes concept.

We want the node to be able to transition between states controlled by a supervisor node that executes the current mission. To transition between the states we need to implement callbacks for the various transitions that will be invoked by the supervisor node.

rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_configure(const rclcpp_lifecycle::State & previous_state)

rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_activate(const rclcpp_lifecycle::State & previous_state)

rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_deactivate(const rclcpp_lifecycle::State & previous_state)

rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_cleanup(const rclcpp_lifecycle::State & previous_state)

rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
on_shutdown(const rclcpp_lifecycle::State & previous_state)

These are the relevant callbacks taken from the Lifecycle demo README that we need to integrate into the aruco detector node.

The lifecycle_talker.cpp node of this demo shows how to implement these transition callbacks.

The Aruco detector node already has many initialization functions implemented in a modular design so moving these into the relevant transition callbacks shouldn't require too much reconfiguration.

The current aruco detector is set up to filter the board detection directly inside the node in the camera frame using EKF of the vortex-vkf repo. This filtering will be moved over to the pi where we can easily access the camera_frame->odom transform and do filtering in the odom frame instead. Link up with the person responsible for this issue to help with the removal of everything related to the vortex-vkf.

Suggested Workflow

Specifications

  • Would be nice to have to ability to automatically transition the node into the active state through a ros param for testing purposes.
  • Check if the camera matrix can be set up before transitioning to the active state.

Contacts

No response

Code Quality

  • Every function in header files are documented (inputs/returns/exceptions)
  • The project has automated tests that cover MOST of the functions and branches in functions (pytest/gtest)
  • The code is documented on the wiki (provide link)
@jorgenfj jorgenfj changed the title [TASK] Aruco Action Server [TASK] Aruco Lifecycle Node Oct 14, 2024
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

When branches are created from issues, their pull requests are automatically linked.

3 participants