-
Notifications
You must be signed in to change notification settings - Fork 292
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
Steering odometry library and controllers #484
Steering odometry library and controllers #484
Conversation
…timeout updated template/ updated .hpp of controller
…ryhere is xyz) inside generated parameters.hpp, removed _ros2 from the namespace name, pkg compiles without any error,
…os2 addition in the namespace naming of the parameters.hpp file
bicycle_steering_controller/test/test_load_bicycle_steering_controller.cpp
Outdated
Show resolved
Hide resolved
This pull request is in conflict. Could you fix it @petkovich? |
I would like to start testing the ackermann controller (for personal and community gains hopefully) to expedite the process of getting these changes pushed to the repo. I'm looking at f1tenth car with the urdf provided here. So I'm wondering
|
Apache 2.0 is the same license as others in ros-controls, I think you can use this one.
The problem is that the joint_trajectory_controller does not build since we updated the controller_state message without deprecation period in the rolling branch. Try to merge the master into this branch and it should run, unless @petkovich pushes it to the PR. |
- <controller_name>/reference [geometry_msgs/msg/TwistStamped] | ||
**NOTE**: Parameter ``use_stamped_vel`` is ``true``. | ||
- <controller_name>/reference_unstamped [geometry_msgs/msg/Twist] | ||
**NOTE**: Parameter ``use_stamped_vel`` is ``true``. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This list is not rendered properly in rst.
What does the note mean? It expects it to be true, or it will force it to true?
- <controller_name>/reference [geometry_msgs/msg/TwistStamped] | |
**NOTE**: Parameter ``use_stamped_vel`` is ``true``. | |
- <controller_name>/reference_unstamped [geometry_msgs/msg/Twist] | |
**NOTE**: Parameter ``use_stamped_vel`` is ``true``. | |
- <controller_name>/reference [geometry_msgs/msg/TwistStamped] | |
- <controller_name>/reference_unstamped [geometry_msgs/msg/Twist] | |
.. note:: | |
Parameter ``use_stamped_vel`` is ``true``. |
I built the docker image with the steering controllers and made a bare bone ros2 package for the f1tenth urdf. I'm thinking my next step would be to port the urdf to gazebo and configure the Ackermann controller then get it to work with gazebo. Any possible suggestions how I should alter this course of action? Should I use something besides gazebo classic? I've never used gazebo nor have I set up ros2 control before. |
Then I'd suggest that first you should get familiar with the demos from ros2_control_demos. Have a look on example_2, which uses a simple simulation of the DiffBot within the hardware component. You could adapt this component to test the library of this PR. |
* fixed some time-sync related test failures Changed Times to be in RCL_ROS_TIME * needed blank line at the end of file * fully resolved time related test fails * fixed typo
* fixed some time-sync related test failures Changed Times to be in RCL_ROS_TIME * needed blank line at the end of file * fully resolved time related test fails * fixed typo * fixed not initialized test failure * removed trailing whitespace
Co-authored-by: Christoph Fröhlich <christophfroehlich@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Marking this mammoth to be auto-merged
@Mergifyio backport humble |
✅ Backports have been created
|
(cherry picked from commit 45d0083)
(cherry picked from commit 45d0083)
* Steering odometry library and controllers (#484) (cherry picked from commit 45d0083) * Revert Rolling mean accumulator (#637) * Move reference timeout management into `update_and_write_commands` to have access to the proper time variable. --------- Co-authored-by: Tomislav Petković <51706321+petkovich@users.noreply.github.com> Co-authored-by: Reza Kermani <kermani.areza@gmail.com> Co-authored-by: Denis Štogl <denis@stoglrobotics.de>
We have noticed that the current implementations of steering mobile robot controllers (tricycle and ackermann) share much of the functionality but implement it differently. This PR proposes using a base
SteeringController
class/file and an implementation class/file for each mobile robot configuration. TheSteeringOdometry
is used for calculating open and closed loop odometry, as well as commands that need to be sent to the hardware. The new odometry fully supports different velocities of traction wheels.This PR does not encapsulate some features that probably should be implemented in the future, for example: