Skip to content

Port to ROS 2 #42

@jacobperron

Description

@jacobperron

I've started a port to ROS 2.

Following a brief discussion in #41, I'll outline my plans here. Besides the obvious changes to switch to rclcpp, I plan to make the following changes:

  • Style refactor + enable common ament linter tests (cpplint, uncrustify, flake8, etc ...)
  • Use C++11/14 features where appropriate (e.g smart pointers).
  • Switch from tf to tf2
  • Add the interactive marker feedback publisher to InteractiveMarkerClient.
    • Previously handled by RViz.
  • Replace the "init" topic with a ROS service.
    • It seems more intuitive for clients to request the full state on demand rather than listening to a latched topic (which may have redundant messages queued).
    • We can avoid the logic for clients unsubscribing to the topic after receiving the state.
    • I will prototype a ROS 1 bridge shim to handle the new API.
  • Replace the use of the KEEP_ALIVE timer with the Liveliness QoS setting.
    • Seems like a natural use of Liveliness and should remove the existing timer-related logic.

I've completed a subset of the points above and will open PRs soon for visibility/review.

Unless there are objections, I will target my PR to a new ros2 branch of this repository.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions