-
Notifications
You must be signed in to change notification settings - Fork 100
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
Rework PID class API #246
Rework PID class API #246
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## ros2-master #246 +/- ##
===============================================
- Coverage 75.02% 72.47% -2.55%
===============================================
Files 24 24
Lines 1133 1239 +106
Branches 89 89
===============================================
+ Hits 850 898 +48
- Misses 236 294 +58
Partials 47 47
Flags with carried forward coverage won't be shown. Click here to find out more.
|
This pull request is in conflict. Could you fix it @christophfroehlich? |
0f5d6ed
to
d883ab3
Compare
double dt_s
argumentThere 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.
Great work! All variable and function names have been appropriately replaced in every instance where they appear.
This pull request is in conflict. Could you fix it @christophfroehlich? |
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.
LGTM
This reverts commit 15c94a4.
While fixing the clang errors I realized that lots of implicit casts to
computeCommand
were used, and the typical usage was to pass something likeperiod.nanoseconds()
and convert it internally to seconds. Because introducing an overload withdouble dt
as argument is ambiguous and might silently break user code, I decided to convert the class methods from camelCase to snake_case (the ros2_control standard), remove theuint64_t
version but introduce the following new overloads which converts dt to seconds in a consistent waydouble dt
rcl_duration_value_t dt_ns
rclcpp::Duration dt
std::chrono::nanoseconds dt_ns
I converted the method names of PidROS accordingly as well, but left the only
rclcpp::Duration
version there.The old methods remain deprecated, this should not break anything in downstream packages.
AFAIK adding non-virtual methods should not be a problem regarding ABI break?