Skip to content

Commit bef84b9

Browse files
pac48bjsowa
andauthored
Port to ROS 2 (#35)
* init conversion Signed-off-by: Paul Gesel <paulgesel@gmail.com> * refactor msgs to new package Signed-off-by: Paul Gesel <paulgesel@gmail.com> * continue action server impl Signed-off-by: Paul Gesel <paulgesel@gmail.com> * fix message name + base action server compiles Signed-off-by: Paul Gesel <paulgesel@gmail.com> * use rosidl_default_generators is find_package or else python interfaces are not generated Signed-off-by: Paul Gesel <paul.gesel@picknik.ai> * simplify action server * remove unused code Signed-off-by: Paul Gesel <paul.gesel@picknik.ai> * remove ROS 1 test Signed-off-by: Paul Gesel <paul.gesel@picknik.ai> * fix install Signed-off-by: Paul Gesel <paulgesel@gmail.com> * add include directory Signed-off-by: Paul Gesel <paulgesel@gmail.com> * add and run pre-commit Signed-off-by: Paul Gesel <paul.gesel@picknik.ai> * add test file Signed-off-by: Paul Gesel <paul.gesel@picknik.ai> * test action server Signed-off-by: Paul Gesel <paul.gesel@picknik.ai> * add workflow file Signed-off-by: Paul Gesel <paul.gesel@picknik.ai> * sort headers, update maintainer/authors Signed-off-by: Paul Gesel <paul.gesel@picknik.ai> * Update tf2_web_republisher/CMakeLists.txt Co-authored-by: Błażej Sowa <bsowa123@gmail.com> * Update tf2_web_republisher/src/tf2_web_republisher.cpp Co-authored-by: Błażej Sowa <bsowa123@gmail.com> * Update tf2_web_republisher/src/tf2_web_republisher.cpp Co-authored-by: Błażej Sowa <bsowa123@gmail.com> * Update tf2_web_republisher/include/tf_web_republisher/tf2_web_republisher.hpp Co-authored-by: Błażej Sowa <bsowa123@gmail.com> * Update tf2_web_republisher/CMakeLists.txt Co-authored-by: Błażej Sowa <bsowa123@gmail.com> * Use newer .hpp headers instead of deprecated .h headers * Change include directory name * Use target_link_libraries instead of ament_target_dependencies * Rename _msgs package to _interfaces * Simplify interfaces package dependencies * Remove .gitkeep file * Simplify package dependencies * Register node as rclcpp component * Use snake_case for all member functions * Don't call member function with this-> * Use class logger * Add ci workflow * Fix inconsistent place of return type * Add license header * Add ament_cmake_gmock to test dependencies * Use .h headers for tf2_ros * Move service definition to standard directory srv * Build shared library * Use rclcpp::Rate * Reject goals which cannot be handled * Add missing LICENSE content * Add ROS2 port section in AUTHORS.md * Add authors to code source * Add docstrings for member functions * Add type aliases for ROS interfaces * Add XML schema * Update maintainer and author tags * Remove pre-commit files * Move README, AUTHORS and LICENSE to top-level directory * Update README * Fix trailing whitespace in maintainer email * Remove ROS wiki reference * Restore github workflow Accidentally removed it with an earlier commit. --------- Signed-off-by: Paul Gesel <paulgesel@gmail.com> Signed-off-by: Paul Gesel <paul.gesel@picknik.ai> Co-authored-by: Błażej Sowa <bsowa123@gmail.com>
1 parent 0fa7ba1 commit bef84b9

26 files changed

+639
-982
lines changed

.github/workflows/ci.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: CI
2+
3+
on: [push, pull_request, workflow_dispatch]
4+
5+
jobs:
6+
test:
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
include:
11+
- ros: humble
12+
os: ubuntu-22.04
13+
- ros: jazzy
14+
os: ubuntu-24.04
15+
- ros: kilted
16+
os: ubuntu-24.04
17+
- ros: rolling
18+
os: ubuntu-24.04
19+
20+
name: ROS 2 ${{ matrix.ros }} (${{ matrix.os }})
21+
runs-on: ${{ matrix.os }}
22+
23+
steps:
24+
- uses: actions/checkout@v4
25+
with:
26+
path: ros_ws/src
27+
28+
- uses: ros-tooling/setup-ros@v0.7
29+
30+
- uses: ros-tooling/action-ros-ci@v0.4
31+
with:
32+
target-ros2-distro: ${{ matrix.ros }}

.gitignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

.travis.yml

Lines changed: 0 additions & 40 deletions
This file was deleted.

AUTHORS.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
Original Authors
22
----------------
33

4-
* [Julius Kammerl](http://www.kammerl.de) (jkammerl@willowgarage.com)
4+
* Julius Kammerl (jkammerl@willowgarage.com)
55

66
Contributors
77
------------
88

9-
* [Russell Toris](http://users.wpi.edu/~rctoris/) (rctoris@wpi.edu)
10-
* [William Woodall](http://wjwwood.github.com) (wjwwood@gmail.com)
9+
* Russell Toris (rctoris@wpi.edu)
10+
* William Woodall (wjwwood@gmail.com)
11+
12+
ROS 2 Port
13+
----------
14+
15+
* Paul Gesel (paul.gesel@picknik.ai)
16+
* Błażej Sowa (blazej@fictionlab.pl)

CHANGELOG.rst

Lines changed: 0 additions & 88 deletions
This file was deleted.

CMakeLists.txt

Lines changed: 0 additions & 84 deletions
This file was deleted.

README.md

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,37 @@
1-
tf2_web_republisher [![Build Status](https://api.travis-ci.org/RobotWebTools/tf2_web_republisher.png)](https://travis-ci.org/RobotWebTools/tf2_web_republisher)
1+
tf2_web_republisher
22
===================
33

4-
**Status**: This project is not maintained (see [#34](https://github.com/RobotWebTools/tf2_web_republisher/issues/34))
4+
The tf2_web_republisher package can be used to throttle and precompute [tf transform] information to be sent via the [rosbridge_suite] to a [ros3djs] web client. The tf2_web_republisher is developed as part of the Robot Web Tools effort.
55

6-
#### Republishing of Selected TFs
7-
For full documentation, see [the ROS wiki](http://ros.org/wiki/tf2_web_republisher).
6+
## Action interface
7+
The ROS node starts a [ROS action](https://docs.ros.org/en/rolling/Concepts/About-Actionlib.html) server that allows clients to request transforms for a set of source frames relative to a target frame. The action server will compute the transforms at a specified rate and return them as feedback.
88

9-
[Doxygen](http://docs.ros.org/indigo/api/tf2_web_republisher/html/) files can be found on the ROS wiki.
9+
```
10+
# goal
11+
string[] source_frames
12+
string target_frame
13+
float32 angular_thres
14+
float32 trans_thres
15+
float32 rate
16+
---
17+
# result
18+
---
19+
# feedback
20+
geometry_msgs/TransformStamped[] transforms
21+
```
1022

11-
This project is released as part of the [Robot Web Tools](http://robotwebtools.org/) effort.
23+
- `source_frames` - list of source TF frames to be transformed
24+
- `target_frame` - target TF frame to which the source frames are transformed
25+
- `angular_thres` - update threshold for angular changes in radians
26+
- `trans_thres` - update threshold for translational changes in meters
27+
- `rate` - maximum update rate of geometry_msgs/msg/TransformStamped messages on the feedback channel. Each feedback message contains a stamped transform for each specified source_frame.
1228

13-
### License
29+
## License
1430
tf2_web_republisher is released with a BSD license. For full terms and conditions, see the [LICENSE](LICENSE) file.
1531

16-
### Authors
32+
## Authors
1733
See the [AUTHORS](AUTHORS.md) file for a full list of contributors.
34+
35+
[tf transform]: https://docs.ros.org/en/rolling/Concepts/Intermediate/About-Tf2.html#tf2
36+
[rosbridge_suite]: https://github.com/RobotWebTools/rosbridge_suite
37+
[ros3djs]: https://github.com/RobotWebTools/ros3djs

0 commit comments

Comments
 (0)