Skip to content

Commit

Permalink
Merge branch 'iron' into mergify/bp/iron/pr-957
Browse files Browse the repository at this point in the history
  • Loading branch information
christophfroehlich committed Feb 18, 2024
2 parents fc2aaf9 + b1955c6 commit c065a7e
Show file tree
Hide file tree
Showing 104 changed files with 952 additions and 528 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/ci-coverage-build-humble.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
with:
required-ros-distributions: ${{ env.ROS_DISTRO }}
- uses: actions/checkout@v4
- uses: ros-tooling/[email protected].5
- uses: ros-tooling/[email protected].6
with:
target-ros2-distro: ${{ env.ROS_DISTRO }}
import-token: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -54,12 +54,12 @@ jobs:
}
}
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
- uses: codecov/codecov-action@v3.1.4
- uses: codecov/codecov-action@v4.0.1
with:
file: ros_ws/lcov/total_coverage.info
flags: unittests
name: codecov-umbrella
- uses: actions/upload-artifact@v4.2.0
- uses: actions/upload-artifact@v4.3.1
with:
name: colcon-logs-coverage-humble
path: ros_ws/log
6 changes: 3 additions & 3 deletions .github/workflows/ci-coverage-build-iron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
with:
required-ros-distributions: ${{ env.ROS_DISTRO }}
- uses: actions/checkout@v4
- uses: ros-tooling/[email protected].5
- uses: ros-tooling/[email protected].6
with:
target-ros2-distro: ${{ env.ROS_DISTRO }}
import-token: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -54,12 +54,12 @@ jobs:
}
}
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
- uses: codecov/codecov-action@v3.1.4
- uses: codecov/codecov-action@v4.0.1
with:
file: ros_ws/lcov/total_coverage.info
flags: unittests
name: codecov-umbrella
- uses: actions/upload-artifact@v4.2.0
- uses: actions/upload-artifact@v4.3.1
with:
name: colcon-logs-coverage-iron
path: ros_ws/log
6 changes: 3 additions & 3 deletions .github/workflows/ci-coverage-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
with:
required-ros-distributions: ${{ env.ROS_DISTRO }}
- uses: actions/checkout@v4
- uses: ros-tooling/[email protected].5
- uses: ros-tooling/[email protected].6
with:
target-ros2-distro: ${{ env.ROS_DISTRO }}
import-token: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -54,12 +54,12 @@ jobs:
}
}
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
- uses: codecov/codecov-action@v3.1.4
- uses: codecov/codecov-action@v4.0.1
with:
file: ros_ws/lcov/total_coverage.info
flags: unittests
name: codecov-umbrella
- uses: actions/upload-artifact@v4.2.0
- uses: actions/upload-artifact@v4.3.1
with:
name: colcon-logs-coverage-rolling
path: ros_ws/log
2 changes: 1 addition & 1 deletion .github/workflows/ci-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@ jobs:
python-version: '3.10'
- name: Install system hooks
run: sudo apt install -qq clang-format-14 cppcheck
- uses: pre-commit/[email protected].0
- uses: pre-commit/[email protected].1
with:
extra_args: --all-files --hook-stage manual
30 changes: 30 additions & 0 deletions .github/workflows/humble-debian-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Debian Humble Build
on:
workflow_dispatch:
pull_request:
branches:
- humble
schedule:
# Run every day to detect flakiness and broken dependencies
- cron: '03 1 * * *'


jobs:
humble_debian:
name: Humble debian build
runs-on: ubuntu-latest
env:
ROS_DISTRO: humble
container: ghcr.io/ros-controls/ros:humble-debian
steps:
- uses: actions/checkout@v4
with:
path: src/ros2_controllers
- name: Build and test
shell: bash
run: |
source /opt/ros2_ws/install/setup.bash
vcs import src < src/ros2_controllers/ros2_controllers.${{ env.ROS_DISTRO }}.repos
colcon build --packages-skip rqt_controller_manager rqt_joint_trajectory_controller
colcon test --packages-skip rqt_controller_manager rqt_joint_trajectory_controller control_msgs controller_manager_msgs
colcon test-result --verbose
31 changes: 31 additions & 0 deletions .github/workflows/humble-rhel-binary-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: RHEL Humble Binary Build
on:
workflow_dispatch:
pull_request:
branches:
- humble
schedule:
# Run every day to detect flakiness and broken dependencies
- cron: '03 1 * * *'

jobs:
humble_rhel_binary:
name: Humble RHEL binary build
runs-on: ubuntu-latest
env:
ROS_DISTRO: humble
container: ghcr.io/ros-controls/ros:humble-rhel
steps:
- uses: actions/checkout@v4
with:
path: src/ros2_controllers
- name: Install dependencies
run: |
rosdep update
rosdep install -iyr --from-path src/ros2_controllers || true
- name: Build and test
run: |
source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash
colcon build --packages-skip rqt_joint_trajectory_controller
colcon test --packages-skip rqt_joint_trajectory_controller
colcon test-result --verbose
30 changes: 30 additions & 0 deletions .github/workflows/iron-debian-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Debian Iron Build
on:
workflow_dispatch:
pull_request:
branches:
- iron
schedule:
# Run every day to detect flakiness and broken dependencies
- cron: '03 1 * * *'


jobs:
iron_debian:
name: Iron debian build
runs-on: ubuntu-latest
env:
ROS_DISTRO: iron
container: ghcr.io/ros-controls/ros:iron-debian
steps:
- uses: actions/checkout@v4
with:
path: src/ros2_controllers
- name: Build and test
shell: bash
run: |
source /opt/ros2_ws/install/setup.bash
vcs import src < src/ros2_controllers/ros2_controllers.${{ env.ROS_DISTRO }}.repos
colcon build --packages-skip rqt_controller_manager rqt_joint_trajectory_controller
colcon test --packages-skip rqt_controller_manager rqt_joint_trajectory_controller control_msgs controller_manager_msgs
colcon test-result --verbose
18 changes: 12 additions & 6 deletions .github/workflows/iron-rhel-binary-build.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Iron RHEL Binary Build
name: RHEL Iron Binary Build
on:
workflow_dispatch:
push:
pull_request:
branches:
- iron
schedule:
Expand All @@ -20,9 +20,15 @@ jobs:
- uses: actions/checkout@v4
with:
path: src/ros2_controllers
- run: |
- name: Install dependencies
run: |
rosdep update
rosdep install -iy --from-path src/ros2_controllers
rosdep install -iyr --from-path src/ros2_controllers || true
- name: Build and test
# source also underlay workspace with generate_parameter_library on rhel9
run: |
source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash
colcon build
colcon test
source /opt/ros2_ws/install/setup.bash
colcon build --packages-skip rqt_joint_trajectory_controller
colcon test --packages-skip rqt_joint_trajectory_controller
colcon test-result --verbose
4 changes: 2 additions & 2 deletions .github/workflows/reusable-ros-tooling-source-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.ref }}
- uses: ros-tooling/[email protected].5
- uses: ros-tooling/[email protected].6
with:
target-ros2-distro: ${{ inputs.ros_distro }}
ref: ${{ inputs.ref }}
Expand Down Expand Up @@ -63,7 +63,7 @@ jobs:
https://raw.githubusercontent.com/ros2/ros2/${{ inputs.ros2_repo_branch }}/ros2.repos
https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/ros2_controllers.${{ inputs.ros_distro }}.repos?token=${{ secrets.GITHUB_TOKEN }}
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
- uses: actions/upload-artifact@v4.2.0
- uses: actions/upload-artifact@v4.3.1
with:
name: colcon-logs-ubuntu-22.04
path: ros_ws/log
30 changes: 30 additions & 0 deletions .github/workflows/rolling-debian-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Debian Rolling Build
on:
workflow_dispatch:
pull_request:
branches:
- master
schedule:
# Run every day to detect flakiness and broken dependencies
- cron: '03 1 * * *'


jobs:
rolling_debian:
name: Rolling debian build
runs-on: ubuntu-latest
env:
ROS_DISTRO: rolling
container: ghcr.io/ros-controls/ros:rolling-debian
steps:
- uses: actions/checkout@v4
with:
path: src/ros2_controllers
- name: Build and test
shell: bash
run: |
source /opt/ros2_ws/install/setup.bash
vcs import src < src/ros2_controllers/ros2_controllers.${{ env.ROS_DISTRO }}.repos
colcon build --packages-skip rqt_controller_manager rqt_joint_trajectory_controller
colcon test --packages-skip rqt_controller_manager rqt_joint_trajectory_controller
colcon test-result --verbose
18 changes: 12 additions & 6 deletions .github/workflows/rolling-rhel-binary-build.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Rolling RHEL Binary Build
name: RHEL Rolling Binary Build
on:
workflow_dispatch:
push:
pull_request:
branches:
- master
schedule:
Expand All @@ -20,9 +20,15 @@ jobs:
- uses: actions/checkout@v4
with:
path: src/ros2_controllers
- run: |
- name: Install dependencies
run: |
rosdep update
rosdep install -iy --from-path src/ros2_controllers
rosdep install -iyr --from-path src/ros2_controllers || true
- name: Build and test
# source also underlay workspace with generate_parameter_library on rhel9
run: |
source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash
colcon build
colcon test
source /opt/ros2_ws/install/setup.bash
colcon build --packages-skip rqt_joint_trajectory_controller
colcon test --packages-skip rqt_joint_trajectory_controller
colcon test-result --verbose
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ Commonly used and generalized controllers for ros2-control framework that are re

ROS2 Distro | Branch | Build status | Documentation | Released packages
:---------: | :----: | :----------: | :-----------: | :---------------:
**Rolling** | [`rolling`](https://github.com/ros-controls/ros2_controllers/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-binary-build-main.yml?branch=master) <br /> [![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-semi-binary-build-main.yml?branch=master) | | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#rolling)
**Iron** | [`iron`](https://github.com/ros-controls/ros2_controllers/tree/iron) | [![Iron Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/iron-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/iron-binary-build-main.yml?branch=master) <br /> [![Iron Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/iron-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/iron-semi-binary-build-main.yml?branch=master) | | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#iron)
**Humble** | [`humble`](https://github.com/ros-controls/ros2_controllers/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-binary-build-main.yml?branch=master) <br /> [![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-semi-binary-build-main.yml?branch=master) | | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#humble)
**Rolling** | [`rolling`](https://github.com/ros-controls/ros2_controllers/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-binary-build.yml?branch=master) <br /> [![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-semi-binary-build.yml?branch=master) | [control.ros.org](https://control.ros.org/master/doc/ros2_controllers/doc/controllers_index.html) | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#rolling)
**Iron** | [`iron`](https://github.com/ros-controls/ros2_controllers/tree/iron) | [![Iron Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/iron-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/iron-binary-build.yml?branch=master) <br /> [![Iron Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/iron-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/iron-semi-binary-build.yml?branch=master) | [control.ros.org](https://control.ros.org/iron/doc/ros2_controllers/doc/controllers_index.html) | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#iron)
**Humble** | [`humble`](https://github.com/ros-controls/ros2_controllers/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-binary-build.yml?branch=master) <br /> [![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-semi-binary-build.yml?branch=master) | [control.ros.org](https://control.ros.org/humble/doc/ros2_controllers/doc/controllers_index.html) | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#humble)

### Explanation of different build types

Expand Down
6 changes: 6 additions & 0 deletions ackermann_steering_controller/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
Changelog for package ackermann_steering_controller
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

3.22.0 (2024-02-12)
-------------------
* Add test_depend on `hardware_interface_testing` (backport `#1018 <https://github.com/ros-controls/ros2_controllers/issues/1018>`_) (`#1020 <https://github.com/ros-controls/ros2_controllers/issues/1020>`_)
* Add tests for `interface_configuration_type` consistently (backport `#899 <https://github.com/ros-controls/ros2_controllers/issues/899>`_) (`#1007 <https://github.com/ros-controls/ros2_controllers/issues/1007>`_)
* Contributors: mergify[bot]

3.21.0 (2024-01-20)
-------------------

Expand Down
3 changes: 2 additions & 1 deletion ackermann_steering_controller/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>ackermann_steering_controller</name>
<version>3.21.0</version>
<version>3.22.0</version>
<description>Steering controller for Ackermann kinematics. Rear fixed wheels are powering the vehicle and front wheels are steering it.</description>
<license>Apache License 2.0</license>
<maintainer email="[email protected]">Bence Magyar</maintainer>
Expand All @@ -27,6 +27,7 @@

<test_depend>ament_cmake_gmock</test_depend>
<test_depend>controller_manager</test_depend>
<test_depend>hardware_interface_testing</test_depend>
<test_depend>hardware_interface</test_depend>
<test_depend>ros2_control_test_assets</test_depend>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,41 +46,43 @@ TEST_F(AckermannSteeringControllerTest, all_parameters_set_configure_success)
ASSERT_EQ(controller_->ackermann_params_.rear_wheel_track, rear_wheel_track_);
}

TEST_F(AckermannSteeringControllerTest, check_exported_intefaces)
TEST_F(AckermannSteeringControllerTest, check_exported_interfaces)
{
SetUpController();

ASSERT_EQ(controller_->on_configure(rclcpp_lifecycle::State()), NODE_SUCCESS);

auto command_intefaces = controller_->command_interface_configuration();
ASSERT_EQ(command_intefaces.names.size(), joint_command_values_.size());
auto cmd_if_conf = controller_->command_interface_configuration();
ASSERT_EQ(cmd_if_conf.names.size(), joint_command_values_.size());
EXPECT_EQ(
command_intefaces.names[CMD_TRACTION_RIGHT_WHEEL],
cmd_if_conf.names[CMD_TRACTION_RIGHT_WHEEL],
rear_wheels_names_[0] + "/" + traction_interface_name_);
EXPECT_EQ(
command_intefaces.names[CMD_TRACTION_LEFT_WHEEL],
cmd_if_conf.names[CMD_TRACTION_LEFT_WHEEL],
rear_wheels_names_[1] + "/" + traction_interface_name_);
EXPECT_EQ(
command_intefaces.names[CMD_STEER_RIGHT_WHEEL],
cmd_if_conf.names[CMD_STEER_RIGHT_WHEEL],
front_wheels_names_[0] + "/" + steering_interface_name_);
EXPECT_EQ(
command_intefaces.names[CMD_STEER_LEFT_WHEEL],
cmd_if_conf.names[CMD_STEER_LEFT_WHEEL],
front_wheels_names_[1] + "/" + steering_interface_name_);
EXPECT_EQ(cmd_if_conf.type, controller_interface::interface_configuration_type::INDIVIDUAL);

auto state_intefaces = controller_->state_interface_configuration();
ASSERT_EQ(state_intefaces.names.size(), joint_state_values_.size());
auto state_if_conf = controller_->state_interface_configuration();
ASSERT_EQ(state_if_conf.names.size(), joint_state_values_.size());
EXPECT_EQ(
state_intefaces.names[STATE_TRACTION_RIGHT_WHEEL],
state_if_conf.names[STATE_TRACTION_RIGHT_WHEEL],
controller_->rear_wheels_state_names_[0] + "/" + traction_interface_name_);
EXPECT_EQ(
state_intefaces.names[STATE_TRACTION_LEFT_WHEEL],
state_if_conf.names[STATE_TRACTION_LEFT_WHEEL],
controller_->rear_wheels_state_names_[1] + "/" + traction_interface_name_);
EXPECT_EQ(
state_intefaces.names[STATE_STEER_RIGHT_WHEEL],
state_if_conf.names[STATE_STEER_RIGHT_WHEEL],
controller_->front_wheels_state_names_[0] + "/" + steering_interface_name_);
EXPECT_EQ(
state_intefaces.names[STATE_STEER_LEFT_WHEEL],
state_if_conf.names[STATE_STEER_LEFT_WHEEL],
controller_->front_wheels_state_names_[1] + "/" + steering_interface_name_);
EXPECT_EQ(state_if_conf.type, controller_interface::interface_configuration_type::INDIVIDUAL);

// check ref itfsTIME
auto reference_interfaces = controller_->export_reference_interfaces();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class TestableAckermannSteeringController
: public ackermann_steering_controller::AckermannSteeringController
{
FRIEND_TEST(AckermannSteeringControllerTest, all_parameters_set_configure_success);
FRIEND_TEST(AckermannSteeringControllerTest, check_exported_intefaces);
FRIEND_TEST(AckermannSteeringControllerTest, check_exported_interfaces);
FRIEND_TEST(AckermannSteeringControllerTest, activate_success);
FRIEND_TEST(AckermannSteeringControllerTest, update_success);
FRIEND_TEST(AckermannSteeringControllerTest, deactivate_success);
Expand Down
Loading

0 comments on commit c065a7e

Please sign in to comment.