forked from ros-controls/ros2_controllers
-
Notifications
You must be signed in to change notification settings - Fork 2
Ackermann odometry library #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
destogl
wants to merge
197
commits into
master
Choose a base branch
from
ackermann-odometry-library
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 72 commits
Commits
Show all changes
197 commits
Select commit
Hold shift + click to select a range
2c744de
created pkg and setup controller from templates rtw
e3be21f
recreated controller setup outside docker to use rtw branch with ref_…
c9b1dad
modified .yaml and controller methods content
568f723
added odometry.hpp
29ef5f8
modified namespace of odometry.hpp and added odometry.cpp
2671377
spotted issue with namespace naming (has xyz_ros2 when namespace eve…
9181e18
corrected the copy paste error in the .yaml file which created the _r…
ff4c3b9
added tests yet to debug few tests
a1cb0bc
Corrected formatting.
destogl afe5006
Delete services and comment out to compile.
destogl 222a40d
Make compilable on humble.
destogl 72c3ca1
Correct interfaces in ackerman controllers.
destogl d81513c
all tests pass
82e7cf2
added test_time_stamp_zero test
4d7fa99
ackermann odometry
petkovich 6e9a519
template state publisher
petkovich 8544e3c
interfaces check
96a5879
removed publish_period related code
29df374
compiles, tests passed, publish_period removed
7f36236
state publisher
petkovich 65c69bc
new message published
petkovich 6e52043
added feedback_type() method to choose position or velocity hardware …
c8cbd28
Code optimization.
destogl 4d6dced
Make controller to compile again.
destogl 4ab177b
added unstamped twist topic -clean commit -functional changes
8335f95
using only one realtime buffer handle
dc4a590
Debuging ackermann controller.
destogl 0c54190
updated tests to work with twist and twist_stamped cases
20f5319
modifid config files
0c84ca6
modified cmakelists
c8bbf2c
removed file not needed
fcd3cb4
odom lib creation
petkovich 41df037
refrence new library
petkovich ce0556d
snake case
petkovich 24802b5
steer names as arrays
petkovich 6a17f95
direct kinematics
petkovich dd1df2c
replaced bacc acumulator with rcpputils
petkovich 7583c99
migrated to steering_controllers package
petkovich e7c1a83
cleaned warnings
petkovich 931553d
move tricycle, edit ackermann cmakelists
petkovich de0e531
tricycle uses steering odometry, keeping odom.cpp for comparison, TOD…
petkovich 9f85d4b
cleaned cmakelists, removed tricycle odometry
petkovich 7bce411
affed steering_controllers package, new base class/package
petkovich 1a1f977
namespace, visibility, parameters
petkovich ad05e0b
inherited steering controller in ackermann src
petkovich 58c36b9
template for modifying update function
petkovich 067e4df
odom configuration separated
petkovich effee35
function for changing intefrace number
petkovich 59f4c46
Delete LICENSE
destogl 8f6803c
remove custom msg, integrate new msg from control msgs
petkovich 7ba0580
Update steering_controllers/ackermann_steering_controller/CMakeLists.txt
petkovich ace1ccb
Update steering_controllers/ackermann_steering_controller/CMakeLists.txt
petkovich 4e132fd
cmakelists build and install interfaces
petkovich 8a4d7c0
license and maintainers
petkovich 27332c5
removed ackermann package, integrated with steering controllers
petkovich 6695ad3
renamed ackermann to steering_controller_implementations
petkovich eed9310
added bicycle controller (the same as ackermann for now)
petkovich 33597a2
removed template from copyright
petkovich 16842f1
removed template from copyright
petkovich 127f834
defines
petkovich 8267fc8
ported tricycle controller
petkovich da6198f
export tricycle controller
petkovich e38b79b
named variables for some odom parameters
petkovich 15a2eb6
integration function, trans rot vel to steering angle arguments
petkovich ef8fbc9
removed redundant classes and variables
petkovich 6c73ecf
removed some more redundant classes and variables
petkovich 61eaf2a
configure_odometry pure virtual
petkovich eaa0a3c
removed tricycle package, integrated steering odometry with steering …
petkovich 6a87431
removed subfolder
petkovich c95c7bb
returned configure odometry implementation that returns error, protec…
petkovich 8904ec2
odometry update implementations for bicycle and tricycle, integration…
petkovich 267de9c
Fix command_interface_configuration iterator
petkovich 9364caa
returned tricycle (in root folder)
petkovich 6fae035
separated implementations in files
petkovich 2d86708
remove lint tests
petkovich 4d14b5f
ControllerTwistReferenceMsg, ControllerAckermannReferenceMsg
petkovich 4a910cd
unstamped twist deprecation, ackermann subscriber
petkovich 8586362
authors, maintainers
petkovich f4a1880
removed rmw_qos_profile_services_hist_keep_all
petkovich b1a62f4
changed deprecation error
petkovich d28e2a4
parameters configured in base class, removed some comments
petkovich 9fe998a
doc folder
petkovich 453a534
virtual classes for odometry
petkovich e46bafa
ackermann odometry implementation
petkovich 4e4d86a
front_wheels_names, rear_wheels_names
petkovich 97ff28c
precommit and control_msgs repos
petkovich 88c6a7b
Merge branch 'master' into ackermann-odometry-library
destogl 821bfd7
separated implementation-specific parameters to implemenation files
petkovich d711a96
removed comments in odometry
petkovich d5b66a3
removed multipliers
petkovich efbaf67
enable rear steering, different wheels radii
petkovich f295112
changed SteeringControllerStatus
petkovich d2b87ca
command interfaces for multiple wheels
petkovich 922099e
odometry types
petkovich 599b223
forward kinematics model template
petkovich da4b41c
command interface always has traction before steering
petkovich 98eba40
configs
petkovich 0e3aa8f
fwd kinematics implementation, TODO ackermann
petkovich be9c0e1
steer_pos_ in odometry, adjusted names of arguments for update function
petkovich e4ff91d
Add new package for Bicycle controller.
destogl 4074602
Add new package for Tricycle controller.
destogl 5c5acb3
Add new package for Ackermann controller.
destogl 0a8a264
Correct authors and descriptions.
destogl cb3e8af
Rename to steering_controllers_library.
destogl 47f6d2e
Bicycle Controller moved to a separate package.
destogl b9b2e7e
Cleanup some files.
destogl 378d88b
Move Ackermann steering controller to dedicated package.
destogl 952c784
Moved Tricycle controller.
destogl 82f096d
Updated ackermann controller stuff.
destogl 6625551
Small fixes on bicycl eand library.
destogl 04a18d8
tests build
petkovich 3a81c9b
on cofigure test
petkovich c96a83b
first test finished
petkovich d645557
exported intefraces
petkovich 73edcce
on activate
petkovich b723724
on activate
petkovich 32db0c7
publish_commands
petkovich 467a4a5
publish_commands
petkovich db15472
cleared slow controllers, publishing test subscriber
petkovich 28ffa17
command_interfaces_ don't update
petkovich 067c41d
fixed reference update
petkovich 872ff14
publisher works
petkovich e0b0665
bicycle finished
petkovich e0255e0
tricycle params#
petkovich a9e249a
tricycle tests compile, ready for implementations
petkovich 8a1da69
bicycle uses CMD_DRIVE_WHEEL etc instead of hardcoded numbers
petkovich c291ea7
tricycle first test, add subscription fails
petkovich fafcd20
first test passes
petkovich 1840708
try: first test passes
petkovich 38b7dcc
bi&tri: check_exported_intefaces
petkovich c6b51a0
tri: activate, update, deactivate, reactivate
petkovich 607a774
update logic init tricycle
petkovich 9c0c93f
update logic tricycle
petkovich ec851ad
tricycle done
petkovich e63558f
ackermann tests
petkovich b0adcaa
Delete steering_controllers.xml
destogl c0d348d
Update ackermann_steering_controller/ackermann_steering_controller.xml
petkovich cf4b48a
Update ackermann_steering_controller/include/ackermann_steering_contr…
petkovich a4c37e2
changed state_drive to state_traction
petkovich 006b241
nr itfs in the header
petkovich 7e31f93
ackermann tests cmd interfaces
petkovich c2849c9
control tricycle constants
petkovich 5198ddd
control bicycle constants
petkovich e92a4bd
package descriptions, wheelbase param desc
petkovich 304b288
preceeding ackermann
petkovich cc72efc
tricycle preceeding
petkovich 5dfdf19
bicycle preceeding
petkovich abf035f
update logic chained
petkovich f829c45
removed pragma once
petkovich 6368eca
params and cosmetics
petkovich bed538f
preceeding params and testing
petkovich 9ccf5b2
cosmetic changes
petkovich 5322b56
reset interfaces to nan
petkovich db764ab
reduce code for controller state publisher
petkovich 29e9015
steering commands for ackermann
petkovich e2b8eb3
adding ref_timeout update behavior
5b74105
test header and param
91e2d2c
test cpp
83c882e
working tests for steering_controllers_library
9774c21
reverted to old update_and_write_commands, steering tests do not pass…
petkovich 26772b2
odometry config, some variables renamed
petkovich 797a0ce
cleaned todo
petkovich 38650d4
fixed compile error, exported parameters to include
petkovich 8d46a9a
DESTINATION include/
petkovich 73e32be
Merge branch 'master' into ackermann-odometry-library
destogl 7cd6683
Apply suggestions from code review
destogl aaf5187
Update ackermann_steering_controller/test/test_ackermann_steering_con…
destogl 2f80658
Update bicycle_steering_controller/src/bicycle_steering_controller.yaml
destogl 8f527f1
Last updates of CMake files copyright year and docs.
destogl 6021447
Update controllers_index.rst
destogl c1d7515
fix typos
bmagyar 563f8a9
Fix typos
bmagyar aa41b9d
Merge branch 'master' into ackermann-odometry-library
bmagyar 9b9cadb
Update steering_controllers_library/src/steering_odometry.cpp
destogl c0144cf
Restore control_msgs repo version
bmagyar bcbc61c
Merge branch 'master' into ackermann-odometry-library
bmagyar ba54cb2
Merge branch 'master' into ackermann-odometry-library
bmagyar 2b41621
fix format
bmagyar 469702c
Fix typo in link
bmagyar 63e4c28
Braces are good for you
bmagyar 676239e
Fix typo
bmagyar ce4f36a
Add units to parameters
bmagyar c609707
Fix typo
bmagyar cd7622e
Merge branch 'master' into ackermann-odometry-library
bmagyar a3083e8
fix format again?!
bmagyar c1431af
Return update_odometry() instead of return true
bmagyar d78bb6a
Update to new signature of update_reference_from_subscribers
bmagyar 092b459
Remove odom member from state publishing (doesn't exist)
bmagyar 55d158c
Fix test compilation
bmagyar ecdf2a5
fix format
bmagyar d817144
Renovate load controller tests
bmagyar 79f5102
remove typo
bmagyar 96bcefa
fixed use_stamped_vel doc (#12)
ARK3r b9bdf63
Steering controller time related test fixes (#13)
ARK3r 9e9007e
Merge branch 'master' into ackermann-odometry-library
bmagyar 503f748
Controllers not initialized in the 4 steering controllers (#14)
ARK3r a27f976
Update style for lists in docs
bmagyar File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
cmake_minimum_required(VERSION 3.8) | ||
project(steering_controllers) | ||
|
||
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") | ||
add_compile_options(-Wall -Wextra -Wpedantic) | ||
endif() | ||
|
||
# find dependencies | ||
set(THIS_PACKAGE_INCLUDE_DEPENDS | ||
control_msgs | ||
controller_interface | ||
geometry_msgs | ||
hardware_interface | ||
nav_msgs | ||
pluginlib | ||
rclcpp | ||
rclcpp_lifecycle | ||
realtime_tools | ||
std_srvs | ||
tf2 | ||
tf2_msgs | ||
tf2_geometry_msgs | ||
ackermann_msgs | ||
) | ||
|
||
find_package(ament_cmake REQUIRED) | ||
find_package(generate_parameter_library REQUIRED) | ||
foreach(Dependency IN ITEMS ${THIS_PACKAGE_INCLUDE_DEPENDS}) | ||
find_package(${Dependency} REQUIRED) | ||
endforeach() | ||
|
||
add_library( | ||
${PROJECT_NAME} | ||
SHARED | ||
src/steering_controllers.cpp | ||
src/steering_odometry.cpp | ||
src/steering_controller_implementations.cpp | ||
) | ||
generate_parameter_library(steering_controllers_parameters | ||
src/steering_controllers.yaml | ||
) | ||
|
||
#target_include_directories(${PROJECT_NAME} PRIVATE include) | ||
target_include_directories(${PROJECT_NAME} PUBLIC | ||
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>" | ||
"$<INSTALL_INTERFACE:include/${PROJECT_NAME}>") | ||
target_link_libraries(${PROJECT_NAME} steering_controllers_parameters) | ||
ament_target_dependencies(${PROJECT_NAME} ${THIS_PACKAGE_INCLUDE_DEPENDS}) | ||
target_compile_definitions(${PROJECT_NAME} PRIVATE "STEERING_CONTROLLERS_BUILDING_DLL") | ||
|
||
pluginlib_export_plugin_description_file( | ||
controller_interface steering_controllers.xml) | ||
|
||
install( | ||
TARGETS | ||
${PROJECT_NAME} | ||
RUNTIME DESTINATION bin | ||
ARCHIVE DESTINATION lib | ||
LIBRARY DESTINATION lib | ||
) | ||
|
||
install( | ||
DIRECTORY include/ | ||
DESTINATION include/${PROJECT_NAME} | ||
) | ||
|
||
if(BUILD_TESTING) | ||
find_package(ament_lint_auto REQUIRED) | ||
# the following line skips the linter which checks for copyrights | ||
# comment the line when a copyright and license is added to all source files | ||
set(ament_cmake_copyright_FOUND TRUE) | ||
# the following line skips cpplint (only works in a git repo) | ||
# comment the line when this package is in a git repo and when | ||
# a copyright and license is added to all source files | ||
set(ament_cmake_cpplint_FOUND TRUE) | ||
ament_lint_auto_find_test_dependencies() | ||
petkovich marked this conversation as resolved.
Show resolved
Hide resolved
|
||
endif() | ||
|
||
ament_export_include_directories( | ||
include | ||
) | ||
|
||
ament_export_dependencies( | ||
${THIS_PACKAGE_INCLUDE_DEPENDS} | ||
) | ||
ament_export_libraries( | ||
${PROJECT_NAME} | ||
) | ||
|
||
ament_package() |
61 changes: 61 additions & 0 deletions
61
steering_controllers/include/steering_controllers/steering_controller_implementations.hpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
// Copyright (c) 2022, Stogl Robotics Consulting UG (haftungsbeschränkt) | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
#ifndef STEERING_CONTROLLERS_IMPLEMENTATIONS_HPP_ | ||
#define STEERING_CONTROLLERS_IMPLEMENTATIONS_HPP_ | ||
|
||
#include "steering_controllers/steering_controllers.hpp" | ||
|
||
namespace ackermann_steering_controller | ||
{ | ||
class AckermannSteeringController : public steering_controllers::SteeringControllers | ||
{ | ||
public: | ||
AckermannSteeringController(); | ||
|
||
STEERING_CONTROLLERS__VISIBILITY_PUBLIC controller_interface::CallbackReturn configure_odometry() | ||
override; | ||
}; | ||
} // namespace ackermann_steering_controller | ||
|
||
namespace bicycle_steering_controller | ||
{ | ||
class BicycleSteeringController : public steering_controllers::SteeringControllers | ||
{ | ||
public: | ||
BicycleSteeringController(); | ||
|
||
STEERING_CONTROLLERS__VISIBILITY_PUBLIC controller_interface::CallbackReturn configure_odometry() | ||
override; | ||
|
||
STEERING_CONTROLLERS__VISIBILITY_PUBLIC bool update_odometry( | ||
const rclcpp::Duration & period) override; | ||
}; | ||
} // namespace bicycle_steering_controller | ||
|
||
namespace tricycle_steering_controller | ||
{ | ||
class TricycleSteeringController : public steering_controllers::SteeringControllers | ||
{ | ||
public: | ||
TricycleSteeringController(); | ||
|
||
STEERING_CONTROLLERS__VISIBILITY_PUBLIC controller_interface::CallbackReturn configure_odometry() | ||
override; | ||
STEERING_CONTROLLERS__VISIBILITY_PUBLIC bool update_odometry( | ||
const rclcpp::Duration & period) override; | ||
}; | ||
} // namespace tricycle_steering_controller | ||
|
||
#endif // STEERING_CONTROLLERS_IMPLEMENTATIONS_HPP_ |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.