-
Notifications
You must be signed in to change notification settings - Fork 6
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
Vehicle dynamics #162
Vehicle dynamics #162
Conversation
2c61118
to
2e0239b
Compare
@michalpelka please review logic (algorithms, correctness) only for now. Primary focus is the SimpleDriveModel |
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.
More or less high level ideas and questions:
- we probably need to add ramp generator for control values
- why we need to apply torque everywhere e (consider applying velocity)
- There is some issue with rotation speed computation.
Code/Source/VehicleDynamics/DriveModels/SimplifiedDriveModel.cpp
Outdated
Show resolved
Hide resolved
Code/Source/VehicleDynamics/DriveModels/SimplifiedDriveModel.cpp
Outdated
Show resolved
Hide resolved
Code/Source/VehicleDynamics/DriveModels/SimplifiedDriveModel.cpp
Outdated
Show resolved
Hide resolved
8f8a897
to
1cbae83
Compare
45a75a3
to
d966fdc
Compare
98cb4d6
to
796d8b0
Compare
Quite an important PR - I have added multiple reviewers but please do not feel obliged. |
Code/Source/RobotControl/Controllers/AckermannController/AckermannControlComponent.cpp
Show resolved
Hide resolved
Code/Source/RobotControl/Controllers/RigidBodyController/RigidBodyTwistControlComponent.cpp
Show resolved
Hide resolved
Code/Source/VehicleDynamics/DriveModels/SimplifiedDriveModel.cpp
Outdated
Show resolved
Hide resolved
Code/Source/VehicleDynamics/DriveModels/SimplifiedDriveModel.cpp
Outdated
Show resolved
Hide resolved
* Wheel dynamics improvements: - removed turning input negative (instead, set axis and input properly) - wheel radius is now configurable (per axle), defaults to 0.35 meters - drive wheels and steering elements are now computed on activation, instead of each frame - some names have been changed to match the naming convention Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
- Added some documentation for interfaces - Added checks for empty driving and steering elements with warnings - removed hardcoded limits for speed and steering Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
* Created documentation related to Robot Control and Vehicle Model - Updated User Guide: added sections for RC and VM - Updated component lists and links - Updated class diagrams for the Gem and Vehicle Model design.
Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
bfa39f8
to
6380efb
Compare
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.
Did not find a good place to report this: in the class diagram we have "ChassisConfiguration" and in the code I think it is named "VehicleConfiguration".
Left some minor comments and questions. Overall, as far as my understanding reaches, looks great. It is pretty hard to review such a large PR correctly, sorry if I left something behind.
Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
- Improved documentation and diagrams - Removed Buses implementations which were not doing anything Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai>
I addressed all the comments. I also added some Editor flair (min/max for user inputs on things like steering angle limit etc.) and removed one unnecessary field. |
@j-rivero everything should be addressed, you are welcome to take a look and comment / approve. We would like to merge it today. |
I just read about each of the comments, thanks for taking care Adam. Fixes were just fine. Nice PR. |
* Vehicle dynamics: - Reworked robot control configurations and buses - Added additional components for handling Twist and AckermannDrive - Replaced in-class behavior with a simple RigidBody controller - Introduced VehicleDynamics classes similar to proposed design - Some utilities are already implemented Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * formatting Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * added reflections, headers Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * vehicle dynamics. Compiles. Added ackermann_msgs dependency Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * vehicle dynamics fixes Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * fixes + manual control Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * merge fixes Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Drive models based on control_toolbox PID implementations Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Speed manual inputs are fixed, added debugs Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Some small tweaks tested against physic scene Signed-off-by: Michał Pełka <michalpelka@gmail.com> Co-authored-by: Pawel Budziszewski <pawel.budziszewski@robotec.ai> * pid configuration and reflection (RobotecAI#189) Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * fix formating after rebase * Added axis of steering and drive to wheel controller component It allows to apply torque for steering and drive in correct direction * Better handling of vehicle input limits and zeroing (RobotecAI#206) * Better handling of vehicle input limits and zeroing * reflect the limits Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Wheel dynamics improvements: (RobotecAI#213) * Wheel dynamics improvements: - removed turning input negative (instead, set axis and input properly) - wheel radius is now configurable (per axle), defaults to 0.35 meters - drive wheels and steering elements are now computed on activation, instead of each frame - some names have been changed to match the naming convention Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Improvements to vehicle dynamics - Added some documentation for interfaces - Added checks for empty driving and steering elements with warnings - removed hardcoded limits for speed and steering Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * fixes of fraction input Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * removed extra empty line: clang formatting Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Error messages, clamp, comments Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * review comments Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Created documentation related to Robot Control and Vehicle Model (RobotecAI#222) * Created documentation related to Robot Control and Vehicle Model - Updated User Guide: added sections for RC and VM - Updated component lists and links - Updated class diagrams for the Gem and Vehicle Model design. * More checks in utilities Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * categories for vd components Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Resolving wheel and steering entities. Fixes RobotecAI#227 (RobotecAI#229) Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * applied review comments Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * typo Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Input limits, remove unnecessary visual entity Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * diagrams updated Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Applied review comments - Improved documentation and diagrams - Removed Buses implementations which were not doing anything Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> Signed-off-by: Michał Pełka <michalpelka@gmail.com> Co-authored-by: Michał Pełka <michalpelka@gmail.com> Co-authored-by: Pawel Budziszewski <pawel.budziszewski@robotec.ai>
* Vehicle dynamics: - Reworked robot control configurations and buses - Added additional components for handling Twist and AckermannDrive - Replaced in-class behavior with a simple RigidBody controller - Introduced VehicleDynamics classes similar to proposed design - Some utilities are already implemented Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * formatting Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * added reflections, headers Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * vehicle dynamics. Compiles. Added ackermann_msgs dependency Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * vehicle dynamics fixes Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * fixes + manual control Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * merge fixes Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Drive models based on control_toolbox PID implementations Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Speed manual inputs are fixed, added debugs Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Some small tweaks tested against physic scene Signed-off-by: Michał Pełka <michalpelka@gmail.com> Co-authored-by: Pawel Budziszewski <pawel.budziszewski@robotec.ai> * pid configuration and reflection (RobotecAI#189) Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * fix formating after rebase * Added axis of steering and drive to wheel controller component It allows to apply torque for steering and drive in correct direction * Better handling of vehicle input limits and zeroing (RobotecAI#206) * Better handling of vehicle input limits and zeroing * reflect the limits Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Wheel dynamics improvements: (RobotecAI#213) * Wheel dynamics improvements: - removed turning input negative (instead, set axis and input properly) - wheel radius is now configurable (per axle), defaults to 0.35 meters - drive wheels and steering elements are now computed on activation, instead of each frame - some names have been changed to match the naming convention Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Improvements to vehicle dynamics - Added some documentation for interfaces - Added checks for empty driving and steering elements with warnings - removed hardcoded limits for speed and steering Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * fixes of fraction input Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * removed extra empty line: clang formatting Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Error messages, clamp, comments Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * review comments Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Created documentation related to Robot Control and Vehicle Model (RobotecAI#222) * Created documentation related to Robot Control and Vehicle Model - Updated User Guide: added sections for RC and VM - Updated component lists and links - Updated class diagrams for the Gem and Vehicle Model design. * More checks in utilities Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * categories for vd components Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Resolving wheel and steering entities. Fixes RobotecAI#227 (RobotecAI#229) Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * applied review comments Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * typo Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Input limits, remove unnecessary visual entity Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * diagrams updated Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> * Applied review comments - Improved documentation and diagrams - Removed Buses implementations which were not doing anything Signed-off-by: Adam Dabrowski <adam.dabrowski@robotec.ai> Signed-off-by: Michał Pełka <michalpelka@gmail.com> Co-authored-by: Michał Pełka <michalpelka@gmail.com> Co-authored-by: Pawel Budziszewski <pawel.budziszewski@robotec.ai>
Vehicle Dynamics, following the design document.
Tested and ready.