-
Notifications
You must be signed in to change notification settings - Fork 13.5k
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
New features for the ackermann rover module #23310
Conversation
c6ef4bb
to
de6f342
Compare
@chfriedrich98 can you check the CI failure https://github.com/PX4/PX4-Autopilot/actions/runs/9611705793/job/26510835503?pr=23310 |
de6f342
to
473977d
Compare
src/modules/rover_ackermann/RoverAckermannGuidance/RoverAckermannGuidance.cpp
Outdated
Show resolved
Hide resolved
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there: https://discuss.px4.io/t/rover-ackermann-oscillates-on-a-straight-track/37797/12 |
f8f7084
to
eac2fe5
Compare
8eb9996
to
3dcd49e
Compare
rebased on main and squashed |
c82cda3
to
5aa314d
Compare
rebased on main and removed SITL airframe |
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.
good iteration!
src/modules/rover_ackermann/RoverAckermannGuidance/RoverAckermannGuidance.hpp
Outdated
Show resolved
Hide resolved
8303d08
to
d1f0b09
Compare
added return mode support, slew rates for actuators, new ackermann specific message, improved cornering slow down effect and fixed logging issue.
d1f0b09
to
e496e36
Compare
Solved Problem
This PR adds new features and a bugfix on a logging issue to the ackerman rover module from #23024:
Solution
The slew rate for the acceleration is not based on acceleration measurements but rather on an assumed linear relation between the throttle and maximum rover speed. Therefor the maximum rover speed
RA_MAX_SPEED
needs to be set for this to work.The slew rate for the steering rate is also based on a assumed linear relation between steering input and steering angle. Therefor the maximum steering angle
RA_MAX_STR_ANG
needs to be set for this to work.The new message is called
RoverAckermannStatus.msg
and includes the following:The setpoints can be used to tune the slew rates by comparing them to the actual actuator outputs.
Note:
actual_speed
was moved from the already existingRoverAckermannGuidanceStatus.msg
to this one s.t. it is logged both in mission and manual mode.Improved the cornering slow down effect during mission mode:
Now uses
math::trajectory::computeMaxSpeedFromDistance
to give speed setpoints s.t. the rover slows down to arrive at the waypoint with the cornering speed.This requires to set a new parameter called
RA_MAX_JERK
.Logging bugfix:
Fixed a bug in the module that could cause the logger to not work correctly, leading to empty log files.
Changelog Entry
For release notes:
Alternatives
Open to any suggestions.
Test coverage
Context
Related links, screenshot before/after, video