Comments (13)
MPCC is special in the sense that it is a path following controller, it does not require a trajectory from a higher level controller, or can deal with a very simple type of trajectory. A tracking MPC on the other hand follows the trajectory of the higher level planner and thus the trajectory given to the tracking MPC needs to be high quality to successful work.
Thus, depending on what you want to achieve a tracking MPC (which is simpler) is enough or using a path following style MPC (like MPCC) has advantages. For single car racing, path following controller make a lot of sense since the higher level path planner can be avoided or a simple path planner is enough for obstacle avoidance. For autonomous driving, it is possible to set up a similar pipeline, however I can not give you an example. Nutonomy/Aptiv/Motional had some quite MPC heavy approaches, maybe looking for papers from them would be an idea. But this is also not the topic most AV companies are publishing.
Regarding the second question, given the new changes and the addition of ADCodeGen it should be quite straight forward to implement this. And you not even need a full state trajectory but a simple path you would like to follow is enough.
from mpcc.
Thanks for your comment. I will look into this.
from mpcc.
Hi , in 4WD do we have to track the yaw explicitly as well .if yes , Any suggestions on how can I include the yaw error in mpcc formulation ?
from mpcc.
i once implemented a cost on the relative yaw to the reference path, it is quite easy. If this is of interest i can try to find the code and add it to the code base.
from mpcc.
Hi , yeah that would be great . Could you add it in the code base please ?
from mpcc.
As it stands, mpcc doesn't involve much in the actual execution of the lower level drivers, compared to ros' movebase framework. So at the level of the algorithmic framework alone, would the introduction of 4Wheel Drive make a big difference?
from mpcc.
you are right , not much of a big difference. But in this ig it be better to track desired yaw as well , Otherwise car can orient itself in weird way , which might not be a desirable behaviour.
from mpcc.
It seems to me that implementing heading angle tracking should not be complicated from a programming point of view, and that the bigger problem may be how to deal with the trade-offs between lag error, deviation error, and heading angle deviation in the cost function at a later stage.
Meanwhile, the introduction of pre-sighting point updating for error computation by MPCC may exacerbate the problem to some extent.
from mpcc.
As said from a code perspective it is straight forward, it is basically a quadratic loss between the yaw of the car and the correctly wrapped heading of the track which is just the atan2 of the gradients of the track spline.
The cost also adds some damping into the system, if the car is away from the reference path it only approaches it slowly. Finally, I think it also makes a lot of sense as a terminal cost. We used it in some of the follow up papers that are based on the curvilinear/frenet coordinate system, where the angle cost arrives very naturally.
I will try to find the code or reimplement it if I find time, which is currently the biggest issue.
from mpcc.
Ok the heading cost is actually already implemented, I just forgot that I added it.
qMu is the weight for it
from mpcc.
Hi ,
What branch has this cost implemented ?
from mpcc.
In all the C++ implementations
from mpcc.
I am closing the issue, you can re-open it if you have further questions
from mpcc.
Related Issues (20)
- About the State Parameters HOT 1
- Passing in state of 0s into solveMPC() HOT 1
- How to add new soft constraints for velocity HOT 4
- some questions about tractive force at the rear force HOT 6
- C++ build error HOT 3
- cost function HOT 1
- Using Hpipm in Matlab HOT 1
- getContouringCost() detailed description HOT 7
- New Features
- Build instructions for new CppAD-codegen HOT 5
- Possible indexation problem HOT 2
- Question about Track HOT 5
- How can I run the code in MATLAB HOT 5
- What is ZHO? HOT 1
- Is there a guideline to easily and reliably configure the various weights of the evaluation function?
- Regarding the addition of dVs to the control input HOT 2
- Optimal Cost at Each time step . HOT 1
- Lyapunov Based Stability HOT 4
- Inquire if GP based MPC code will be open-source HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mpcc.