Skip to content

Commit 119144a

Browse files
Merge branch 'master' into master
2 parents 70cfc29 + 9ab8205 commit 119144a

File tree

202 files changed

+5347
-1151
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

202 files changed

+5347
-1151
lines changed

.github/workflows/rolling-check-docs.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@ on:
99
- '**.rst'
1010
- '**.md'
1111
- '**.yaml'
12+
- '.github/workflows/rolling-check-docs.yml'
1213

1314
jobs:
1415
check-docs:
1516
name: Check Docs
16-
uses: ros-controls/control.ros.org/.github/workflows/reusable-sphinx-check-single-version.yml@master
17+
uses: ros-controls/control.ros.org/.github/workflows/reusable-sphinx-check-single-version.yml@rolling
1718
with:
1819
ROS2_CONTROLLERS_PR: ${{ github.ref }}

.github/workflows/rosdoc2.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: rosdoc2
2+
3+
on:
4+
workflow_dispatch:
5+
pull_request:
6+
paths:
7+
- ros2_controllers/doc/**
8+
- ros2_controllers/rosdoc2.yaml
9+
- ros2_controllers/package.xml
10+
11+
12+
jobs:
13+
check:
14+
uses: ros-controls/ros2_control_ci/.github/workflows/reusable-rosdoc2.yml@master

.pre-commit-config.yaml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ repos:
2626
- id: check-symlinks
2727
- id: check-xml
2828
- id: check-yaml
29+
args: ["--allow-multiple-documents"]
2930
- id: debug-statements
3031
- id: end-of-file-fixer
3132
- id: mixed-line-ending
@@ -36,7 +37,7 @@ repos:
3637

3738
# Python hooks
3839
- repo: https://github.com/asottile/pyupgrade
39-
rev: v3.15.2
40+
rev: v3.17.0
4041
hooks:
4142
- id: pyupgrade
4243
args: [--py36-plus]
@@ -55,14 +56,14 @@ repos:
5556
args: ["--line-length=99"]
5657

5758
- repo: https://github.com/pycqa/flake8
58-
rev: 7.0.0
59+
rev: 7.1.0
5960
hooks:
6061
- id: flake8
6162
args: ["--extend-ignore=E501"]
6263

6364
# CPP hooks
6465
- repo: https://github.com/pre-commit/mirrors-clang-format
65-
rev: v18.1.4
66+
rev: v18.1.8
6667
hooks:
6768
- id: clang-format
6869
args: ['-fallback-style=none', '-i']
@@ -104,6 +105,7 @@ repos:
104105
description: Check if copyright notice is available in all files.
105106
entry: ament_copyright
106107
language: system
108+
exclude: .*/conf\.py$
107109

108110
# Docs - RestructuredText hooks
109111
- repo: https://github.com/PyCQA/doc8
@@ -124,14 +126,14 @@ repos:
124126
# Spellcheck in comments and docs
125127
# skipping of *.svg files is not working...
126128
- repo: https://github.com/codespell-project/codespell
127-
rev: v2.2.6
129+
rev: v2.3.0
128130
hooks:
129131
- id: codespell
130132
args: ['--write-changes', '--uri-ignore-words-list=ist', '-L manuel']
131133
exclude: CHANGELOG\.rst|\.(svg|pyc|drawio)$
132134

133135
- repo: https://github.com/python-jsonschema/check-jsonschema
134-
rev: 0.28.2
136+
rev: 0.29.1
135137
hooks:
136138
- id: check-github-workflows
137139
args: ["--verbose"]

ackermann_steering_controller/CHANGELOG.rst

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,37 @@
22
Changelog for package ackermann_steering_controller
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
4.12.0 (2024-07-23)
6+
-------------------
7+
* Add missing includes (`#1226 <https://github.com/ros-controls/ros2_controllers/issues/1226>`_)
8+
* Change the subscription timeout in the tests to 5ms (`#1219 <https://github.com/ros-controls/ros2_controllers/issues/1219>`_)
9+
* Unused header cleanup (`#1199 <https://github.com/ros-controls/ros2_controllers/issues/1199>`_)
10+
* Fix WaitSet issue in tests (`#1206 <https://github.com/ros-controls/ros2_controllers/issues/1206>`_)
11+
* Fix parallel gripper controller CI (`#1202 <https://github.com/ros-controls/ros2_controllers/issues/1202>`_)
12+
* Contributors: Christoph Fröhlich, Henry Moore, Sai Kishor Kothakota
13+
14+
4.11.0 (2024-07-09)
15+
-------------------
16+
* added changes corresponding to the logger and clock propagation in ResourceManager (`#1184 <https://github.com/ros-controls/ros2_controllers/issues/1184>`_)
17+
* Fix steering controllers library kinematics (`#1150 <https://github.com/ros-controls/ros2_controllers/issues/1150>`_)
18+
* Contributors: Christoph Fröhlich, Sai Kishor Kothakota
19+
20+
4.10.0 (2024-07-01)
21+
-------------------
22+
* [Steering controllers library] Reference interfaces are body twist (`#1168 <https://github.com/ros-controls/ros2_controllers/issues/1168>`_)
23+
* Fix steering controllers library code documentation and naming (`#1149 <https://github.com/ros-controls/ros2_controllers/issues/1149>`_)
24+
* Remove unstamped twist subscribers + parameters (`#1151 <https://github.com/ros-controls/ros2_controllers/issues/1151>`_)
25+
* Contributors: Christoph Fröhlich, Sai Kishor Kothakota, Quique Llorente
26+
27+
4.9.0 (2024-06-05)
28+
------------------
29+
30+
4.8.0 (2024-05-14)
31+
------------------
32+
* Add parameter check for geometric values (`#1120 <https://github.com/ros-controls/ros2_controllers/issues/1120>`_)
33+
* add missing compiler definitions of RCPPUTILS_VERSION (`#1089 <https://github.com/ros-controls/ros2_controllers/issues/1089>`_)
34+
* Contributors: Christoph Fröhlich, Sai Kishor Kothakota
35+
536
4.7.0 (2024-03-22)
637
------------------
738
* Fix pid_controller build on ROS 2 Rolling on Ubuntu 24.04 (`#1084 <https://github.com/ros-controls/ros2_controllers/issues/1084>`_)

ackermann_steering_controller/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>ackermann_steering_controller</name>
5-
<version>4.7.0</version>
5+
<version>4.12.0</version>
66
<description>Steering controller for Ackermann kinematics. Rear fixed wheels are powering the vehicle and front wheels are steering it.</description>
77
<license>Apache License 2.0</license>
88
<maintainer email="[email protected]">Bence Magyar</maintainer>

ackermann_steering_controller/src/ackermann_steering_controller.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -62,28 +62,29 @@ bool AckermannSteeringController::update_odometry(const rclcpp::Duration & perio
6262
}
6363
else
6464
{
65-
const double rear_right_wheel_value = state_interfaces_[STATE_TRACTION_RIGHT_WHEEL].get_value();
66-
const double rear_left_wheel_value = state_interfaces_[STATE_TRACTION_LEFT_WHEEL].get_value();
67-
const double front_right_steer_position =
68-
state_interfaces_[STATE_STEER_RIGHT_WHEEL].get_value();
69-
const double front_left_steer_position = state_interfaces_[STATE_STEER_LEFT_WHEEL].get_value();
65+
const double traction_right_wheel_value =
66+
state_interfaces_[STATE_TRACTION_RIGHT_WHEEL].get_value();
67+
const double traction_left_wheel_value =
68+
state_interfaces_[STATE_TRACTION_LEFT_WHEEL].get_value();
69+
const double steering_right_position = state_interfaces_[STATE_STEER_RIGHT_WHEEL].get_value();
70+
const double steering_left_position = state_interfaces_[STATE_STEER_LEFT_WHEEL].get_value();
7071
if (
71-
!std::isnan(rear_right_wheel_value) && !std::isnan(rear_left_wheel_value) &&
72-
!std::isnan(front_right_steer_position) && !std::isnan(front_left_steer_position))
72+
std::isfinite(traction_right_wheel_value) && std::isfinite(traction_left_wheel_value) &&
73+
std::isfinite(steering_right_position) && std::isfinite(steering_left_position))
7374
{
7475
if (params_.position_feedback)
7576
{
7677
// Estimate linear and angular velocity using joint information
7778
odometry_.update_from_position(
78-
rear_right_wheel_value, rear_left_wheel_value, front_right_steer_position,
79-
front_left_steer_position, period.seconds());
79+
traction_right_wheel_value, traction_left_wheel_value, steering_right_position,
80+
steering_left_position, period.seconds());
8081
}
8182
else
8283
{
8384
// Estimate linear and angular velocity using joint information
8485
odometry_.update_from_velocity(
85-
rear_right_wheel_value, rear_left_wheel_value, front_right_steer_position,
86-
front_left_steer_position, period.seconds());
86+
traction_right_wheel_value, traction_left_wheel_value, steering_right_position,
87+
steering_left_position, period.seconds());
8788
}
8889
}
8990
}

ackermann_steering_controller/test/ackermann_steering_controller_params.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ test_ackermann_steering_controller:
66
open_loop: false
77
velocity_rolling_window_size: 10
88
position_feedback: false
9-
use_stamped_vel: true
109
rear_wheels_names: [rear_right_wheel_joint, rear_left_wheel_joint]
1110
front_wheels_names: [front_right_steering_joint, front_left_steering_joint]
1211

ackermann_steering_controller/test/ackermann_steering_controller_preceeding_params.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ test_ackermann_steering_controller:
55
open_loop: false
66
velocity_rolling_window_size: 10
77
position_feedback: false
8-
use_stamped_vel: true
98
rear_wheels_names: [pid_controller/rear_right_wheel_joint, pid_controller/rear_left_wheel_joint]
109
front_wheels_names: [pid_controller/front_right_steering_joint, pid_controller/front_left_steering_joint]
1110
rear_wheels_state_names: [rear_right_wheel_joint, rear_left_wheel_joint]

ackermann_steering_controller/test/test_ackermann_steering_controller.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@
1414

1515
#include "test_ackermann_steering_controller.hpp"
1616

17-
#include <limits>
1817
#include <memory>
1918
#include <string>
20-
#include <utility>
2119
#include <vector>
2220

2321
class AckermannSteeringControllerTest
@@ -84,7 +82,7 @@ TEST_F(AckermannSteeringControllerTest, check_exported_interfaces)
8482
controller_->front_wheels_state_names_[1] + "/" + steering_interface_name_);
8583
EXPECT_EQ(state_if_conf.type, controller_interface::interface_configuration_type::INDIVIDUAL);
8684

87-
// check ref itfsTIME
85+
// check ref itfs
8886
auto reference_interfaces = controller_->export_reference_interfaces();
8987
ASSERT_EQ(reference_interfaces.size(), joint_reference_interfaces_.size());
9088
for (size_t i = 0; i < joint_reference_interfaces_.size(); ++i)
@@ -173,6 +171,7 @@ TEST_F(AckermannSteeringControllerTest, test_update_logic)
173171
controller_->update(rclcpp::Time(0, 0, RCL_ROS_TIME), rclcpp::Duration::from_seconds(0.01)),
174172
controller_interface::return_type::OK);
175173

174+
// we test with open_loop=false, but steering angle was not updated (is zero) -> same commands
176175
EXPECT_NEAR(
177176
controller_->command_interfaces_[CMD_TRACTION_RIGHT_WHEEL].get_value(), 0.22222222222222224,
178177
COMMON_THRESHOLD);
@@ -211,8 +210,9 @@ TEST_F(AckermannSteeringControllerTest, test_update_logic_chained)
211210
ASSERT_EQ(
212211
controller_->update(rclcpp::Time(0, 0, RCL_ROS_TIME), rclcpp::Duration::from_seconds(0.01)),
213212
controller_interface::return_type::OK);
214-
EXPECT_NEAR(
215213

214+
// we test with open_loop=false, but steering angle was not updated (is zero) -> same commands
215+
EXPECT_NEAR(
216216
controller_->command_interfaces_[STATE_TRACTION_RIGHT_WHEEL].get_value(), 0.22222222222222224,
217217
COMMON_THRESHOLD);
218218
EXPECT_NEAR(
@@ -255,12 +255,13 @@ TEST_F(AckermannSteeringControllerTest, receive_message_and_publish_updated_stat
255255
EXPECT_EQ(msg.steering_angle_command[1], 4.4);
256256

257257
publish_commands();
258-
ASSERT_TRUE(controller_->wait_for_commands(executor));
258+
controller_->wait_for_commands(executor);
259259

260260
ASSERT_EQ(
261261
controller_->update(rclcpp::Time(0, 0, RCL_ROS_TIME), rclcpp::Duration::from_seconds(0.01)),
262262
controller_interface::return_type::OK);
263263

264+
// we test with open_loop=false, but steering angle was not updated (is zero) -> same commands
264265
EXPECT_NEAR(
265266
controller_->command_interfaces_[CMD_TRACTION_RIGHT_WHEEL].get_value(), 0.22222222222222224,
266267
COMMON_THRESHOLD);
@@ -276,6 +277,7 @@ TEST_F(AckermannSteeringControllerTest, receive_message_and_publish_updated_stat
276277

277278
subscribe_and_get_messages(msg);
278279

280+
// we test with open_loop=false, but steering angle was not updated (is zero) -> same commands
279281
EXPECT_NEAR(
280282
msg.linear_velocity_command[CMD_TRACTION_RIGHT_WHEEL], 0.22222222222222224, COMMON_THRESHOLD);
281283
EXPECT_NEAR(

0 commit comments

Comments
 (0)