ros2 / ros2/geometry2

Publish dynamic TF with this->get_node_topics_interface() works in foxy but not in humble.

Open
#596 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
153
Forks
256
Avg merge
3d 23h
Merged PRs (30d)
14

Description

Bug report

  • Operating System:
    Ubuntu 22.04.2 LTS
  • Installation type:
    binaries
  • Version or commit hash:
    ROS humble
  • DDS implementation:
    Fast-RTPS
  • Client library (if applicable):
    rclcpp, tf2_ros, tf2, or geometry2
Steps to reproduce issue

Make a dynamic publisher as we always do in foxy.

rclcpp::node_interfaces::NodeTopicsInterface::SharedPtr node_topics_handle = this->get_node_topics_interface();

std::unique_ptr<tf2_ros::TransformBroadcaster> tf_broadcaster_ = nullptr;
tf_broadcaster_ = std::make_unique<tf2_ros::TransformBroadcaster>(node_topics_handle);
Expected behavior

The dynamic TF broadcaster object can be initialized.

Actual behavior

It will give you an error.
"passed non-default qos overriding options without providing a parameters interface"

Additional information

image

I have posted an issue on there and there. I also asked my question there. A friend from ROS2 channel suggested I post my questions there. Please, I really would like to know how to work with tf2_ros::TransformBroadcaster, get_node_xxx_interface, other handles, or something else. I don't want to use 'this' directly. By using node_xxx_handle, I can isolate different functions in different classes without passing the shared printer node everywhere.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the error with tf2_ros::TransformBroadcaster constructed from get_node_topics_interface() on ROS Humble. Read the TransformBroadcaster and NodeTopicsInterface entry points, then compare the linked rclcpp and ros2 discussions. Done means establishing a supported construction path for isolated node interfaces or documenting the required alternative.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
robotics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.