Skip to content

Conversation

@Juliaj
Copy link
Contributor

@Juliaj Juliaj commented Nov 21, 2025

Address #1842

This PR adds a new utility node wrench_transformer_node to force_torque_sensor_broadcaster to transform input Wrench messages to output Wrench messages for a given list of frames.

Feedback on naming is welcome and appreciated.

Testing

@Juliaj Juliaj changed the title Fts broadercaster utility node 1842 2 [fts-broadercaster] transform input Wrench to output Wrenches for a given list of frames Nov 21, 2025
@Juliaj Juliaj force-pushed the fts_broadercaster_utility_node_1842_2 branch from 594c6ce to 254c53e Compare November 21, 2025 22:48
@Juliaj Juliaj changed the title [fts-broadercaster] transform input Wrench to output Wrenches for a given list of frames [force_torque_sensor_broadcaster] transform input Wrench to output Wrenches for a given list of frames Nov 21, 2025
@Juliaj Juliaj force-pushed the fts_broadercaster_utility_node_1842_2 branch from 254c53e to ab7b06a Compare November 21, 2025 23:04
@codecov
Copy link

codecov bot commented Nov 21, 2025

Codecov Report

❌ Patch coverage is 88.10198% with 42 lines in your changes missing coverage. Please review.
✅ Project coverage is 85.20%. Comparing base (ec198b1) to head (97a9495).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
...ensor_broadcaster/test/test_wrench_transformer.cpp 91.27% 14 Missing and 10 partials ⚠️
...rque_sensor_broadcaster/src/wrench_transformer.cpp 78.66% 8 Missing and 8 partials ⚠️
...sensor_broadcaster/src/wrench_transformer_main.cpp 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2021      +/-   ##
==========================================
+ Coverage   85.13%   85.20%   +0.07%     
==========================================
  Files         144      148       +4     
  Lines       13968    14321     +353     
  Branches     1201     1225      +24     
==========================================
+ Hits        11891    12202     +311     
- Misses       1670     1694      +24     
- Partials      407      425      +18     
Flag Coverage Δ
unittests 85.20% <88.10%> (+0.07%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...e_torque_sensor_broadcaster/wrench_transformer.hpp 100.00% <100.00%> (ø)
...sensor_broadcaster/src/wrench_transformer_main.cpp 0.00% <0.00%> (ø)
...rque_sensor_broadcaster/src/wrench_transformer.cpp 78.66% <78.66%> (ø)
...ensor_broadcaster/test/test_wrench_transformer.cpp 91.27% <91.27%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Member

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

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

Thanks a lot for picking this.

Overall LGTM. I added some suggestions to fix deprecation warnings or sphinx issues.

The tests do not cover if the message is actually transformed, right? Maybe you could add one for that.

Copy link
Member

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

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

Thanks for adding more tests, but I think the one I asked for is still missing?

And please use the github UI directly for committing proposed changes (from the files tab you can commit batches at once), this saves some minutes for the next review round :)

@Juliaj
Copy link
Contributor Author

Juliaj commented Nov 23, 2025

Thanks for adding more tests, but I think the one I asked for is still missing?

And please use the github UI directly for committing proposed changes (from the files tab you can commit batches at once), this saves some minutes for the next review round :)

Thanks, will do. Was looking for a way for batch commit.

Juliaj and others added 4 commits November 23, 2025 13:18
Copy link
Member

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

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

Thanks, that test covers what I was asking for. A small detail in the comment

@Juliaj
Copy link
Contributor Author

Juliaj commented Nov 25, 2025

Thanks, that test covers what I was asking for. A small detail in the comment

Thanks, @christophfroehlich. Please let me know if any additional changes are needed. I've reviewed the comments but wasn't able to determine what specific changes are required.

Co-authored-by: Christoph Fröhlich <christophfroehlich@users.noreply.github.com>
Copy link
Member

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

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

LGTM, thanks again!

saikishor
saikishor previously approved these changes Nov 25, 2025
Copy link
Member

@saikishor saikishor left a comment

Choose a reason for hiding this comment

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

Thanks for taking up this P
Pretty good testing 👌🏾

I've some nitpicks on the parameters etc, but these can be addressed in a different PR

@christophfroehlich christophfroehlich added backport-jazzy Triggers PR backport to ROS 2 jazzy. backport-kilted Triggers PR backport to ROS 2 kilted. backport-humble Triggers PR backport to ROS 2 humble. labels Nov 25, 2025
Copy link
Member

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

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

Oh, I forgot one thing: Please update the doc/release_notes with this new feature.

@christophfroehlich christophfroehlich changed the title [force_torque_sensor_broadcaster] transform input Wrench to output Wrenches for a given list of frames Add utility node for transform wrench messages for a list of frames Nov 25, 2025
@saikishor
Copy link
Member

@Juliaj The nitpicks I mentioned earlier are the following:

  • I don't think we will need broadcaster_namespace and use_filtered parameters at all, if you make the input topic as the wrench alone, when you namespace the node, it will listen to the broadcaster's topic right?. Likewise for the filtered topic part, you can remap the input topic to have it working
  • It could be interesting to have a node like tf2_echo, so it would look like something like following
ros2 run force_torque_sensor_broadcaster wrench_transformer_node frame1 frame2 --ros-args -r __ns:=fts -r input:=wrench
  • The output topic could also be something like /ns/<frame_name>/wrench?

What's your opinion on this?

@Juliaj
Copy link
Contributor Author

Juliaj commented Nov 26, 2025

@saikishor, thanks a lot for your feedback on simplifying the parameter handling, ❤️ them .

  • I don't think we will need broadcaster_namespace and use_filtered parameters at all, if you make the input topic as the wrench alone, when you namespace the node, it will listen to the broadcaster's topic right?. Likewise for the filtered topic part, you can remap the input topic to have it working

Agreed, broadcaster_namespace and use_filtered removed.

  • The output topic could also be something like /ns/<frame_name>/wrench?

Implemented as your suggested with a small add-on. If the user remaps the topic to wrench_filtered, the output topic will be a corresponding /ns/<frame_name>/wrench_filtered.

For following,

have a node like tf2_echo,

I created a separate issue and will look into it in subsequent PR.

@Juliaj
Copy link
Contributor Author

Juliaj commented Nov 26, 2025

Oh, I forgot one thing: Please update the doc/release_notes with this new feature.

Added. The release_notes.rst was empty , so I wasn't sure if it was the right file to edit.

@christophfroehlich
Copy link
Member

Oh, I forgot one thing: Please update the doc/release_notes with this new feature.

Added. The release_notes.rst was empty , so I wasn't sure if it was the right file to edit.

No this is fine, I just recently branched off for kilted. That's why the kilted-lyrical release notes are empty.

@saikishor saikishor merged commit 3d03572 into ros-controls:master Nov 28, 2025
18 checks passed
mergify bot pushed a commit that referenced this pull request Nov 28, 2025
…2021)

(cherry picked from commit 3d03572)

# Conflicts:
#	doc/release_notes.rst
#	force_torque_sensor_broadcaster/CMakeLists.txt
mergify bot pushed a commit that referenced this pull request Nov 28, 2025
…2021)

(cherry picked from commit 3d03572)

# Conflicts:
#	doc/release_notes.rst
mergify bot pushed a commit that referenced this pull request Nov 28, 2025
…2021)

(cherry picked from commit 3d03572)

# Conflicts:
#	doc/release_notes.rst
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-humble Triggers PR backport to ROS 2 humble. backport-jazzy Triggers PR backport to ROS 2 jazzy. backport-kilted Triggers PR backport to ROS 2 kilted.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create a utility node that transforms input Wrench to output Wrenches for a given list of frames

3 participants