Skip to content
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

Update gnd_pos_control and ground_att_control modules #11956

Closed
AmeliaEScott opened this issue May 3, 2019 · 4 comments · Fixed by #12239
Closed

Update gnd_pos_control and ground_att_control modules #11956

AmeliaEScott opened this issue May 3, 2019 · 4 comments · Fixed by #12239
Assignees
Labels
Rover 🚙 Rovers and other UGV

Comments

@AmeliaEScott
Copy link
Contributor

AmeliaEScott commented May 3, 2019

Describe problem solved by the proposed feature
The current rover position and attitude control modules are based on fixed-wing control. They work for simple waypoint navigation, but should be updated to account for different types of steering (Ackerman vs. Differential steering) and limitations of rovers. Additionally, rovers behave strangely around edge cases, such as when the navigator module would instruct a fixed-wing craft to loiter, and when instructing the rover to "take off" or "land".

Describe your preferred solution
Research existing control algorithms for Ackerman and Differential steering vehicles, and implement them in the gnd_pos_control and gnd_att_control modules.

Describe possible alternatives
The existing modules implement Ackerman control, so a new separate module could be created for differential steering.

@dagar dagar added the Rover 🚙 Rovers and other UGV label May 4, 2019
@AmeliaEScott AmeliaEScott self-assigned this May 16, 2019
@julianoes
Copy link
Contributor

julianoes commented May 16, 2019

From call:
@ItsTimmy: differential controller spins in circle when waypoint reached.
@dagar: differential steering rover controller could work like multicopter controller. We could have two controllers, one for Ackermann, one for differential steering.
@julianoes: we can't yaw while going forward as multicopters.

@SalimTerryLi
Copy link
Contributor

Can we add another parameter to determine whether the rover should do in-situ turning or directly move forward while do steering?
I' m looking forward to a solution which can dynamically switch between Ackermann & differential steering. Because I want my rover can have a fluent behavior in wide area but also can easily adapt into limited space. (with the help of RTK)
We can build a simple framework in gnd_position_control at first and then finish the codes for differential steering?
Or, any better ways?

@julianoes
Copy link
Contributor

@ItsTimmy can you make a pull request for this change?

@AmeliaEScott
Copy link
Contributor Author

I have created a WIP pull request: #12239 . However, this depends upon #11918 , so it must be merged first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Rover 🚙 Rovers and other UGV
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants