Skip to content

Commit 9bff63c

Browse files
committed
1 parent 72e2f2c commit 9bff63c

17 files changed

Lines changed: 2864 additions & 0 deletions
Lines changed: 278 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,278 @@
1+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2+
Changelog for package diff_drive_controller
3+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4+
5+
2.33.0 (2024-02-12)
6+
-------------------
7+
* Add test_depend on `hardware_interface_testing` (backport `#1018 <https://github.com/ros-controls/ros2_controllers/issues/1018>`_) (`#1019 <https://github.com/ros-controls/ros2_controllers/issues/1019>`_)
8+
* Add tests for `interface_configuration_type` consistently (`#899 <https://github.com/ros-controls/ros2_controllers/issues/899>`_) (`#1011 <https://github.com/ros-controls/ros2_controllers/issues/1011>`_)
9+
* Contributors: mergify[bot]
10+
11+
2.32.0 (2024-01-20)
12+
-------------------
13+
14+
2.31.0 (2024-01-11)
15+
-------------------
16+
17+
2.30.0 (2023-12-20)
18+
-------------------
19+
* [DiffDriveController] Optional tf namespace prefixes instead of using node namespace (backport `#533 <https://github.com/ros-controls/ros2_controllers/issues/533>`_) (`#726 <https://github.com/ros-controls/ros2_controllers/issues/726>`_)
20+
* Contributors: mergify[bot]
21+
22+
2.29.0 (2023-12-05)
23+
-------------------
24+
25+
2.28.0 (2023-11-30)
26+
-------------------
27+
28+
2.27.0 (2023-11-14)
29+
-------------------
30+
* [diff_drive_controller] Fixed typos in diff_drive_controller_parameter.yaml. (`#822 <https://github.com/ros-controls/ros2_controllers/issues/822>`_) (`#823 <https://github.com/ros-controls/ros2_controllers/issues/823>`_)
31+
* Contributors: Tony Baltovski
32+
33+
2.26.0 (2023-10-03)
34+
-------------------
35+
36+
2.25.0 (2023-09-15)
37+
-------------------
38+
* removed duplicated previous_publish_timestamp\_ increment by publish_period\_ in diff_drive_controller.cpp (`#644 <https://github.com/ros-controls/ros2_controllers/issues/644>`_) (`#777 <https://github.com/ros-controls/ros2_controllers/issues/777>`_)
39+
* Update docs for diff drive controller (`#751 <https://github.com/ros-controls/ros2_controllers/issues/751>`_) (`#753 <https://github.com/ros-controls/ros2_controllers/issues/753>`_)
40+
* Contributors: Christoph Fröhlich, Jules CARPENTIER
41+
42+
2.24.0 (2023-08-07)
43+
-------------------
44+
45+
2.23.0 (2023-06-23)
46+
-------------------
47+
* Renovate load controller tests (`#569 <https://github.com/ros-controls/ros2_controllers/issues/569>`_) (`#677 <https://github.com/ros-controls/ros2_controllers/issues/677>`_)
48+
* Contributors: Bence Magyar
49+
50+
2.22.0 (2023-06-14)
51+
-------------------
52+
* Use generate_parameter_library for all params (`#601 <https://github.com/ros-controls/ros2_controllers/issues/601>`_) (`#627 <https://github.com/ros-controls/ros2_controllers/issues/627>`_)
53+
* Docs: Use branch name substitution for all links (backport `#618 <https://github.com/ros-controls/ros2_controllers/issues/618>`_) (`#633 <https://github.com/ros-controls/ros2_controllers/issues/633>`_)
54+
* [Formatting] enable ReflowComments to also use ColumnLimit on comments (`#628 <https://github.com/ros-controls/ros2_controllers/issues/628>`_)
55+
* Contributors: Sai Kishor Kothakota, Christoph Fröhlich
56+
57+
2.21.0 (2023-05-28)
58+
-------------------
59+
* Fix compilation warnings (`#621 <https://github.com/ros-controls/ros2_controllers/issues/621>`_) (`#623 <https://github.com/ros-controls/ros2_controllers/issues/623>`_)
60+
* Remove compile warnings. (`#519 <https://github.com/ros-controls/ros2_controllers/issues/519>`_) (`#620 <https://github.com/ros-controls/ros2_controllers/issues/620>`_)
61+
* Fix github links on control.ros.org (`#604 <https://github.com/ros-controls/ros2_controllers/issues/604>`_) (`#617 <https://github.com/ros-controls/ros2_controllers/issues/617>`_)
62+
* Fix overriding of install (`#510 <https://github.com/ros-controls/ros2_controllers/issues/510>`_) (`#605 <https://github.com/ros-controls/ros2_controllers/issues/605>`_)
63+
* Contributors: Felix Exner (fexner), Christoph Fröhlich, Mathias Lüdtke, Noel Jiménez García
64+
65+
2.20.0 (2023-05-14)
66+
-------------------
67+
* Clear registered handles of DiffDriveController on deactivate (`#596 <https://github.com/ros-controls/ros2_controllers/issues/596>`_) (`#606 <https://github.com/ros-controls/ros2_controllers/issues/606>`_)
68+
* Contributors: Noel Jiménez García
69+
70+
2.19.0 (2023-05-02)
71+
-------------------
72+
* Fix wrong publish timestamp initialization (`#585 <https://github.com/ros-controls/ros2_controllers/issues/585>`_) (`#593 <https://github.com/ros-controls/ros2_controllers/issues/593>`_)
73+
* Contributors: mergify[bot]
74+
75+
2.18.0 (2023-04-29)
76+
-------------------
77+
* adjusted open_loop param description in diff_drive_controller_parameter.yaml (`#570 <https://github.com/ros-controls/ros2_controllers/issues/570>`_) (`#576 <https://github.com/ros-controls/ros2_controllers/issues/576>`_)
78+
* Contributors: muritane
79+
80+
2.17.3 (2023-04-14)
81+
-------------------
82+
83+
2.17.2 (2023-03-07)
84+
-------------------
85+
86+
2.17.1 (2023-02-20)
87+
-------------------
88+
* [DiffDriveController] Fix prefixing of frame id with controller's namespace (`#522 <https://github.com/ros-controls/ros2_controllers/issues/522>`_)
89+
* Contributors: Tim Verbelen
90+
91+
2.17.0 (2023-02-13)
92+
-------------------
93+
94+
2.16.1 (2023-01-31)
95+
-------------------
96+
97+
2.16.0 (2023-01-19)
98+
-------------------
99+
* diff_drive base_frame_id param (`#495 <https://github.com/ros-controls/ros2_controllers/issues/495>`_) (`#498 <https://github.com/ros-controls/ros2_controllers/issues/498>`_)
100+
* Add backward_ros to all controllers (`#489 <https://github.com/ros-controls/ros2_controllers/issues/489>`_) (`#493 <https://github.com/ros-controls/ros2_controllers/issues/493>`_)
101+
* Contributors: Bence Magyar, Jakub Delicat
102+
103+
2.15.0 (2022-12-06)
104+
-------------------
105+
* [DiffDriveController] Use generate parameter library (`#386 <https://github.com/ros-controls/ros2_controllers/issues/386>`_)
106+
* [DiffDriveController] Change units of velocity feedback (`#452 <https://github.com/ros-controls/ros2_controllers/issues/452>`_)
107+
* Contributors: Maciej Stępień, Paul Gesel, Denis Štogl, Bence Magyar
108+
109+
2.14.0 (2022-11-18)
110+
-------------------
111+
* Odom Topic & Frame Namespaces (`#461 <https://github.com/ros-controls/ros2_controllers/issues/461>`_)
112+
* Write detailed Diff-Drive-Controller documentation to make all the interfaces understandable. (`#371 <https://github.com/ros-controls/ros2_controllers/issues/371>`_)
113+
* Contributors: Denis Štogl, sp-sophia-labs
114+
115+
2.13.0 (2022-10-05)
116+
-------------------
117+
118+
2.12.0 (2022-09-01)
119+
-------------------
120+
* Fix formatting CI job (`#418 <https://github.com/ros-controls/ros2_controllers/issues/418>`_)
121+
* Contributors: Tyler Weaver
122+
123+
2.11.0 (2022-08-04)
124+
-------------------
125+
126+
2.10.0 (2022-08-01)
127+
-------------------
128+
* Formatting changes from pre-commit (`#400 <https://github.com/ros-controls/ros2_controllers/issues/400>`_)
129+
* Parameter loading fixup in diff_drive and gripper controllers (`#385 <https://github.com/ros-controls/ros2_controllers/issues/385>`_)
130+
* Contributors: Andy Zelenak, Tyler Weaver
131+
132+
2.9.0 (2022-07-14)
133+
------------------
134+
135+
2.8.0 (2022-07-09)
136+
------------------
137+
138+
2.7.0 (2022-07-03)
139+
------------------
140+
* Update controllers with new get_name hardware interfaces (`#369 <https://github.com/ros-controls/ros2_controllers/issues/369>`_)
141+
* Contributors: Lucas Schulze
142+
143+
2.6.0 (2022-06-18)
144+
------------------
145+
* Disable failing workflows (`#363 <https://github.com/ros-controls/ros2_controllers/issues/363>`_)
146+
* CMakeLists cleanup (`#362 <https://github.com/ros-controls/ros2_controllers/issues/362>`_)
147+
* Fix exception about parameter already been declared & Change default c++ version to 17 (`#360 <https://github.com/ros-controls/ros2_controllers/issues/360>`_)
148+
* Default C++ version to 17
149+
* Replace explicit use of declare_paremeter with auto_declare
150+
* Contributors: Andy Zelenak, Jafar Abdi
151+
152+
2.5.0 (2022-05-13)
153+
------------------
154+
* [diff_drive_controller] Made odom topic name relative as it was in ROS1. (`#343 <https://github.com/ros-controls/ros2_controllers/issues/343>`_)
155+
* Fix wrong integration of velocity feedback in odometry in diff_drive_controller (`#331 <https://github.com/ros-controls/ros2_controllers/issues/331>`_)
156+
* Contributors: Patrick Roncagliolo, Tony Baltovski
157+
158+
2.4.0 (2022-04-29)
159+
------------------
160+
* updated to use node getter functions (`#329 <https://github.com/ros-controls/ros2_controllers/issues/329>`_)
161+
* Contributors: Bence Magyar, Denis Štogl, Jack Center
162+
163+
2.3.0 (2022-04-21)
164+
------------------
165+
* Use CallbackReturn from controller_interface namespace (`#333 <https://github.com/ros-controls/ros2_controllers/issues/333>`_)
166+
* Contributors: Bence Magyar, Denis Štogl
167+
168+
2.2.0 (2022-03-25)
169+
------------------
170+
* Use lifecycle node as base for controllers (`#244 <https://github.com/ros-controls/ros2_controllers/issues/244>`_)
171+
* Contributors: Denis Štogl, Vatan Aksoy Tezer, Bence Magyar
172+
173+
2.1.0 (2022-02-23)
174+
------------------
175+
* use rolling mean from rcppmath (`#211 <https://github.com/ros-controls/ros2_controllers/issues/211>`_)
176+
* Contributors: Karsten Knese, Bence Magyar
177+
178+
2.0.1 (2022-02-01)
179+
------------------
180+
181+
2.0.0 (2022-01-28)
182+
------------------
183+
184+
1.3.0 (2022-01-11)
185+
------------------
186+
* Add publish_rate option for the diff_drive_controller (`#278 <https://github.com/ros-controls/ros2_controllers/issues/278>`_)
187+
* Fix angular velocity direction of diff_drive_controller odometry (`#281 <https://github.com/ros-controls/ros2_controllers/issues/281>`_)
188+
* Contributors: Benjamin Hug, Paul Verhoeckx
189+
190+
1.2.0 (2021-12-29)
191+
------------------
192+
* Add velocity feedback option for diff_drive_controller (`#260 <https://github.com/ros-controls/ros2_controllers/issues/260>`_)
193+
* Contributors: Patrick Roncagliolo
194+
195+
1.1.0 (2021-10-25)
196+
------------------
197+
* Use common test URDF from descriptions.hpp (`#258 <https://github.com/ros-controls/ros2_controllers/issues/258>`_)
198+
* Fix header include on Fedora <https://github.com/ros-controls/ros2_controllers/issues/255>`_ (`#256 <https://github.com/ros-controls/ros2_controllers/issues/256>`_)
199+
* Fix diff_drive accel limit (`#242 <https://github.com/ros-controls/ros2_controllers/issues/242>`_) (`#252 <https://github.com/ros-controls/ros2_controllers/issues/252>`_)
200+
* Contributors: Denis Štogl, Josh Newans, Noeël Moeskops, bailaC
201+
202+
1.0.0 (2021-09-29)
203+
------------------
204+
* Add time and period to update function (`#241 <https://github.com/ros-controls/ros2_controllers/issues/241>`_)
205+
* Unify style of controllers. (`#236 <https://github.com/ros-controls/ros2_controllers/issues/236>`_)
206+
* ros2_controllers code changes to support ros2_controls issue `#489 <https://github.com/ros-controls/ros2_controllers/issues/489>`_ (`#233 <https://github.com/ros-controls/ros2_controllers/issues/233>`_)
207+
* Removing Boost from controllers. (`#235 <https://github.com/ros-controls/ros2_controllers/issues/235>`_)
208+
* refactor get_current_state to get_state (`#232 <https://github.com/ros-controls/ros2_controllers/issues/232>`_)
209+
* Contributors: Bence Magyar, Denis Štogl, Márk Szitanics, bailaC
210+
211+
0.5.0 (2021-08-30)
212+
------------------
213+
* Add auto declaration of parameters. (`#224 <https://github.com/ros-controls/ros2_controllers/issues/224>`_)
214+
* Bring precommit config up to speed with ros2_control (`#227 <https://github.com/ros-controls/ros2_controllers/issues/227>`_)
215+
* Add initial pre-commit setup. (`#220 <https://github.com/ros-controls/ros2_controllers/issues/220>`_)
216+
* Reduce docs warnings and correct adding guidelines (`#219 <https://github.com/ros-controls/ros2_controllers/issues/219>`_)
217+
* Contributors: Bence Magyar, Denis Štogl, Lovro Ivanov
218+
219+
0.4.1 (2021-07-08)
220+
------------------
221+
222+
0.4.0 (2021-06-28)
223+
------------------
224+
* Force torque sensor broadcaster (`#152 <https://github.com/ros-controls/ros2_controllers/issues/152>`_)
225+
* Add rclcpp::shutdown(); to all standalone test functions
226+
* Fixes for Windows (`#205 <https://github.com/ros-controls/ros2_controllers/issues/205>`_)
227+
* Fix MSVC build for diff_drive_controller test
228+
* Fix parameter initialisation for galactic (`#199 <https://github.com/ros-controls/ros2_controllers/issues/199>`_)
229+
* Contributors: Akash, Denis Štogl, Tim Clephas
230+
231+
0.3.1 (2021-05-23)
232+
------------------
233+
234+
0.3.0 (2021-05-21)
235+
------------------
236+
237+
0.2.1 (2021-05-03)
238+
------------------
239+
* Migrate from deprecated controller_interface::return_type::SUCCESS -> OK (`#167 <https://github.com/ros-controls/ros2_controllers/issues/167>`_)
240+
* Add basic user docs pages for each package (`#156 <https://github.com/ros-controls/ros2_controllers/issues/156>`_)
241+
* [diff_drive_controller] Change header math.h in cmath for better C++ compliance (`#148 <https://github.com/ros-controls/ros2_controllers/issues/148>`_)
242+
and isnan inclusion.
243+
* Contributors: Bence Magyar, Olivier Stasse
244+
245+
0.2.0 (2021-02-06)
246+
------------------
247+
* Fix diff drive twist concurrency issues (`#146 <https://github.com/ros-controls/ros2_controllers/issues/146>`_)
248+
* Fix diff drive twist concurrency issues
249+
Before this fix, a twist message could be received and stored one
250+
thread, in the middle of the update() of the controller.
251+
This would be fixed by making a copy of the shared pointer at the
252+
beginning of the update() function, added realtime box to ensure safe
253+
concurrent access to the pointer.
254+
* Don't store limited command as last command
255+
Before these changes, the limited command overwrote the original
256+
command, which mean that it too much more time to reach the commanded
257+
speed.
258+
We only want this behavior when the command is too old and we replace it
259+
with 0 speed.
260+
* Diff drive parameter fixes (`#145 <https://github.com/ros-controls/ros2_controllers/issues/145>`_)
261+
* Recover old speed limiter behavior, if unspecified min defaults to -max
262+
* Change cmd_vel_timeout to seconds (double) as ROS1 instead of ms(int)
263+
* Unstamped cmd_vel subscriber rebased (`#143 <https://github.com/ros-controls/ros2_controllers/issues/143>`_)
264+
* Contributors: Anas Abou Allaban, Victor Lopez
265+
266+
0.1.2 (2021-01-07)
267+
------------------
268+
* Remove unused sensor_msgs dependency (was non-declared in package.xml) (`#139 <https://github.com/ros-controls/ros2_controllers/issues/139>`_)
269+
* Contributors: Bence Magyar
270+
271+
0.1.1 (2021-01-06)
272+
------------------
273+
* avoid warnings (`#137 <https://github.com/ros-controls/ros2_controllers/issues/137>`_)
274+
* Migrate diff drive controller to resourcemanager (`#128 <https://github.com/ros-controls/ros2_controllers/issues/128>`_)
275+
* Contributors: Bence Magyar, Karsten Knese
276+
277+
0.1.0 (2020-12-23)
278+
------------------
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
cmake_minimum_required(VERSION 3.16)
2+
project(diff_drive_controller LANGUAGES CXX)
3+
4+
if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
5+
add_compile_options(-Wall -Wextra)
6+
endif()
7+
8+
set(THIS_PACKAGE_INCLUDE_DEPENDS
9+
controller_interface
10+
generate_parameter_library
11+
geometry_msgs
12+
hardware_interface
13+
nav_msgs
14+
pluginlib
15+
rclcpp
16+
rclcpp_lifecycle
17+
rcpputils
18+
realtime_tools
19+
tf2
20+
tf2_msgs
21+
)
22+
23+
find_package(ament_cmake REQUIRED)
24+
find_package(backward_ros REQUIRED)
25+
foreach(Dependency IN ITEMS ${THIS_PACKAGE_INCLUDE_DEPENDS})
26+
find_package(${Dependency} REQUIRED)
27+
endforeach()
28+
29+
generate_parameter_library(diff_drive_controller_parameters
30+
src/diff_drive_controller_parameter.yaml
31+
)
32+
33+
add_library(diff_drive_controller SHARED
34+
src/diff_drive_controller.cpp
35+
src/odometry.cpp
36+
src/speed_limiter.cpp
37+
)
38+
target_compile_features(diff_drive_controller PUBLIC cxx_std_17)
39+
target_include_directories(diff_drive_controller PUBLIC
40+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
41+
$<INSTALL_INTERFACE:include/diff_drive_controller>
42+
)
43+
target_link_libraries(diff_drive_controller PUBLIC diff_drive_controller_parameters)
44+
ament_target_dependencies(diff_drive_controller PUBLIC ${THIS_PACKAGE_INCLUDE_DEPENDS})
45+
# Causes the visibility macros to use dllexport rather than dllimport,
46+
# which is appropriate when building the dll but not consuming it.
47+
target_compile_definitions(diff_drive_controller PRIVATE "DIFF_DRIVE_CONTROLLER_BUILDING_DLL")
48+
pluginlib_export_plugin_description_file(controller_interface diff_drive_plugin.xml)
49+
50+
if(BUILD_TESTING)
51+
find_package(ament_cmake_gmock REQUIRED)
52+
find_package(controller_manager REQUIRED)
53+
find_package(ros2_control_test_assets REQUIRED)
54+
55+
ament_add_gmock(test_diff_drive_controller
56+
test/test_diff_drive_controller.cpp
57+
ENV config_file=${CMAKE_CURRENT_SOURCE_DIR}/test/config/test_diff_drive_controller.yaml)
58+
target_link_libraries(test_diff_drive_controller
59+
diff_drive_controller
60+
)
61+
ament_target_dependencies(test_diff_drive_controller
62+
geometry_msgs
63+
hardware_interface
64+
nav_msgs
65+
rclcpp
66+
rclcpp_lifecycle
67+
realtime_tools
68+
tf2
69+
tf2_msgs
70+
)
71+
72+
ament_add_gmock(test_load_diff_drive_controller
73+
test/test_load_diff_drive_controller.cpp
74+
)
75+
ament_target_dependencies(test_load_diff_drive_controller
76+
controller_manager
77+
ros2_control_test_assets
78+
)
79+
endif()
80+
81+
install(
82+
DIRECTORY include/
83+
DESTINATION include/diff_drive_controller
84+
)
85+
install(TARGETS diff_drive_controller diff_drive_controller_parameters
86+
EXPORT export_diff_drive_controller
87+
RUNTIME DESTINATION bin
88+
ARCHIVE DESTINATION lib
89+
LIBRARY DESTINATION lib
90+
)
91+
92+
ament_export_targets(export_diff_drive_controller HAS_LIBRARY_TARGET)
93+
ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS})
94+
ament_package()
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<library path="diff_drive_controller">
2+
<class name="diff_drive_controller/DiffDriveController" type="diff_drive_controller::DiffDriveController" base_class_type="controller_interface::ChainableControllerInterface">
3+
<description>
4+
The differential drive controller transforms linear and angular velocity messages into signals for each wheel(s) for a differential drive robot.
5+
</description>
6+
</class>
7+
</library>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
linear.x: |
2+
Joint limits structure for the linear ``x``-axis.
3+
The limiter ignores position limits.
4+
For details see ``joint_limits`` package from ros2_control repository.
5+
6+
angular.z: |
7+
Joint limits structure for the rotation about ``z``-axis.
8+
The limiter ignores position limits.
9+
For details see ``joint_limits`` package from ros2_control repository.

0 commit comments

Comments
 (0)