Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
219 changes: 219 additions & 0 deletions gps_sensor_broadcaster/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,219 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package gpio_controllers
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

4.20.0 (2025-01-29)
-------------------

4.19.0 (2025-01-13)
-------------------

4.18.0 (2024-12-19)
-------------------

4.17.0 (2024-12-07)
-------------------

4.16.0 (2024-11-08)
-------------------

4.15.0 (2024-10-07)
-------------------

4.14.0 (2024-09-11)
-------------------

4.13.0 (2024-08-22)
-------------------

4.12.1 (2024-08-14)
-------------------

4.12.0 (2024-07-23)
-------------------

4.11.0 (2024-07-09)
-------------------

4.10.0 (2024-07-01)
-------------------

4.9.0 (2024-06-05)
------------------

4.8.0 (2024-05-14)
------------------

4.7.0 (2024-03-22)
------------------

4.6.0 (2024-02-12)
------------------

4.5.0 (2024-01-31)
------------------

4.4.0 (2024-01-11)
------------------

4.3.0 (2024-01-08)
------------------

4.2.0 (2023-12-12)
------------------

4.1.0 (2023-12-01)
------------------

4.0.0 (2023-11-21)
------------------

3.17.0 (2023-10-31)
-------------------

3.16.0 (2023-09-20)
-------------------

3.15.0 (2023-09-11)
-------------------

3.14.0 (2023-08-16)
-------------------

3.13.0 (2023-08-04)
-------------------

3.12.0 (2023-07-18)
-------------------

3.11.0 (2023-06-24)
-------------------

3.10.1 (2023-06-06)
-------------------

3.10.0 (2023-06-04)
-------------------

3.9.0 (2023-05-28)
------------------

3.8.0 (2023-05-14)
------------------

3.7.0 (2023-05-02)
------------------

3.6.0 (2023-04-29)
------------------

3.5.0 (2023-04-14)
------------------

3.4.0 (2023-04-02)
------------------

3.3.0 (2023-03-07)
------------------

3.2.0 (2023-02-10)
------------------

3.1.0 (2023-01-26)
------------------

3.0.0 (2023-01-19)
------------------

2.15.0 (2022-12-06)
-------------------

2.14.0 (2022-11-18)
-------------------

2.13.0 (2022-10-05)
-------------------

2.12.0 (2022-09-01)
-------------------

2.11.0 (2022-08-04)
-------------------

2.10.0 (2022-08-01)
-------------------

2.9.0 (2022-07-14)
------------------

2.8.0 (2022-07-09)
------------------

2.7.0 (2022-07-03)
------------------

2.6.0 (2022-06-18)
------------------

2.5.0 (2022-05-13)
------------------

2.4.0 (2022-04-29)
------------------

2.3.0 (2022-04-21)
------------------

2.2.0 (2022-03-25)
------------------

2.1.0 (2022-02-23)
------------------

2.0.1 (2022-02-01)
------------------

2.0.0 (2022-01-28)
------------------

1.3.0 (2022-01-11)
------------------

1.2.0 (2021-12-29)
------------------

1.1.0 (2021-10-25)
------------------

1.0.0 (2021-09-29)
------------------

0.5.0 (2021-08-30)
------------------

0.4.1 (2021-07-08)
------------------

0.4.0 (2021-06-28)
------------------

0.3.1 (2021-05-23)
------------------

0.3.0 (2021-05-21)
------------------

0.2.1 (2021-05-03)
------------------

0.2.0 (2021-02-06)
------------------

0.1.2 (2021-01-07)
------------------

0.1.1 (2021-01-06)
------------------

0.1.0 (2020-12-23)
------------------
101 changes: 101 additions & 0 deletions gps_sensor_broadcaster/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
cmake_minimum_required(VERSION 3.16)
project(gps_sensor_broadcaster LANGUAGES CXX)

if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
add_compile_options(-Wall -Wextra -Wpedantic -Werror=conversion -Werror=unused-but-set-variable
-Werror=return-type -Werror=shadow -Werror=format -Werror=range-loop-construct
-Werror=missing-braces)
endif()

# using this instead of visibility macros
# S1 from https://github.com/ros-controls/ros2_controllers/issues/1053
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)

set(THIS_PACKAGE_INCLUDE_DEPENDS
controller_interface
generate_parameter_library
hardware_interface
pluginlib
rclcpp
rclcpp_lifecycle
realtime_tools
sensor_msgs
)

find_package(ament_cmake REQUIRED)
foreach(Dependency IN ITEMS ${THIS_PACKAGE_INCLUDE_DEPENDS})
find_package(${Dependency} REQUIRED)
endforeach()


generate_parameter_library(gps_sensor_broadcaster_parameters
src/gps_sensor_broadcaster_parameters.yaml
)

add_library(gps_sensor_broadcaster SHARED
src/gps_sensor_broadcaster.cpp
)

target_compile_features(gps_sensor_broadcaster PUBLIC cxx_std_17)
target_include_directories(gps_sensor_broadcaster PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include/gps_sensor_broadcaster>
)

target_link_libraries(gps_sensor_broadcaster PUBLIC gps_sensor_broadcaster_parameters)
ament_target_dependencies(gps_sensor_broadcaster PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})

pluginlib_export_plugin_description_file(
controller_interface gps_sensor_broadcaster.xml)

if(BUILD_TESTING)
find_package(ament_cmake_gmock REQUIRED)
find_package(controller_manager REQUIRED)
find_package(hardware_interface REQUIRED)
find_package(ros2_control_test_assets REQUIRED)

add_definitions(-DTEST_FILES_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}/test")
ament_add_gmock(test_load_gps_sensor_broadcaster
test/test_load_gps_sensor_broadcaster.cpp
${CMAKE_CURRENT_SOURCE_DIR}/test/gps_sensor_broadcaster_params.yaml)
target_include_directories(test_load_gps_sensor_broadcaster PRIVATE include)
target_link_libraries(test_load_gps_sensor_broadcaster
gps_sensor_broadcaster
)
ament_target_dependencies(test_load_gps_sensor_broadcaster
controller_manager
hardware_interface
ros2_control_test_assets
)

ament_add_gmock(test_gps_sensor_broadcaster
test/test_gps_sensor_broadcaster.cpp
${CMAKE_CURRENT_SOURCE_DIR}/test/gps_sensor_broadcaster_params.yaml)
target_include_directories(test_gps_sensor_broadcaster PRIVATE include)
target_link_libraries(test_gps_sensor_broadcaster
gps_sensor_broadcaster
)
ament_target_dependencies(test_gps_sensor_broadcaster
hardware_interface
ros2_control_test_assets
)
endif()

install(
DIRECTORY include/
DESTINATION include/gps_sensor_broadcaster
)
install(
TARGETS
gps_sensor_broadcaster
gps_sensor_broadcaster_parameters
EXPORT export_gps_sensor_broadcaster
RUNTIME DESTINATION bin
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
INCLUDES DESTINATION include
)

ament_export_targets(export_gps_sensor_broadcaster HAS_LIBRARY_TARGET)
ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS})
ament_package()
8 changes: 8 additions & 0 deletions gps_sensor_broadcaster/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
gps_sensor_broadcaster
==========================================

Controller to publish readings of GPS sensors.

Pluginlib-Library: gps_sensor_broadcaster

Plugin: gps_sensor_broadcaster/GPSSensorBroadcaster (controller_interface::ControllerInterface)
27 changes: 27 additions & 0 deletions gps_sensor_broadcaster/doc/userdoc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
:github_url: https://github.com/ros-controls/ros2_controllers/blob/{REPOS_FILE_BRANCH}/gps_sensor_broadcaster/doc/userdoc.rst

.. _gps_sensor_broadcaster_userdoc:

GPS Sensor Broadcaster
--------------------------------
Broadcaster of messages from GPS sensor.
The published message type is ``sensor_msgs/msg/NavSatFix``.

The controller is a wrapper around ``GPSSensor`` semantic component (see ``controller_interface`` package).

Parameters
^^^^^^^^^^^
This controller uses the `generate_parameter_library <https://github.com/PickNikRobotics/generate_parameter_library>`_ to handle its parameters. The parameter `definition file located in the src folder <https://github.com/ros-controls/ros2_controllers/blob/{REPOS_FILE_BRANCH}/gps_sensor_broadcaster/src/gps_sensor_broadcaster_params.yaml>`_ contains descriptions for all the parameters used by the controller.

List of parameters
=========================
.. generate_parameter_library_details:: ../src/gps_sensor_broadcaster_parameters.yaml


An example parameter file
=========================

An example parameter file for this controller can be found in `the test directory <https://github.com/ros-controls/ros2_controllers/blob/{REPOS_FILE_BRANCH}/gps_sensor_broadcaster/test/gps_sensor_broadcaster_params.yaml>`_:

.. literalinclude:: ../test/gps_sensor_broadcaster_params.yaml
:language: yaml
8 changes: 8 additions & 0 deletions gps_sensor_broadcaster/gps_sensor_broadcaster.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<library path="gps_sensor_broadcaster">
<class name="gps_sensor_broadcaster/GPSSensorBroadcaster"
type="gps_sensor_broadcaster::GPSSensorBroadcaster" base_class_type="controller_interface::ControllerInterface">
<description>
This controller publishes the readings of an GPS sensor as sensor_msgs/NavSatFix message.
</description>
</class>
</library>
Loading