Giter VIP home page Giter VIP logo

Comments (6)

MIDHUNTA30 avatar MIDHUNTA30 commented on August 14, 2024

from mpc-matlab.

MehdiIshac avatar MehdiIshac commented on August 14, 2024

Thank you Midhun for your fast answer,
I have considered trying a point stabilization for the unicycle robot using your NMPC example,
it works pretty well, I have also found an interesting article where their modified cost function (formula 14) is quite the same as yours except that QN is way more important than Q in the cost function penalties. For the tracking I will consider various path planning algorithms as you mentioned, thanks.

Here is the article for point stabilization
ICMA.2005.1626717.pdf

And my python code, if you want to make me some feedback, is in my MPC repository, I have credited you.

Best regards

Ishac

from mpc-matlab.

MIDHUNTA30 avatar MIDHUNTA30 commented on August 14, 2024

from mpc-matlab.

MIDHUNTA30 avatar MIDHUNTA30 commented on August 14, 2024

I had gone through your Python code and it works fine for stabilization problems. I also went through the reference paper which discusses stabilization problems for mobile robots using NMPC. Regarding tracking, I found an article by the same authors for which the link is given below:
http://www.ece.ufrgs.br/~fetter/sbai05_10022.pdf
I think if we know the state and control reference sequences over the prediction horizon: ( xr_k, xr_k+1,...,xr_k+N) and (ur_k,ur_k+1,...,ur_k+N-1) for the mobile robot, we can use the NMPC scheme from this paper.

Regards,
Midhun

from mpc-matlab.

MehdiIshac avatar MehdiIshac commented on August 14, 2024

Hi Midhun
Thanks for you answer,
I have managed to try the NMPC tracking problem for the unicycle model and succeeded.
You are wright, we have to know the control reference over the prediction of horizon which means we have to compute {vr_k , vr_k+1 ,..., vr_k+N-1} and {wr_k , wr_k+1 ,..., wr_k+N-1} each time step.

This can be done for the unicycle with the following formula,

$$v_r(k) = arctan(\frac{\dot{y(k)}}{ \dot{x(k)}})\\$$ $$w_r(t) = \frac{ \ddot{y(k)}\dot{x(k)} - \dot{y(k)}\ddot{x(k)} }{ \dot{x(k)}^{2} + \dot{y(k)}^2 }$$

I uploaded an example in my MPC repo, dealing with an 8 track shaped trajectory

For those who wants to go further, i recommend the use of Casadi (which is available in python, matlab or c++) for NMPC
purposes and giving a lower computational time than Scipy .

Best regards

from mpc-matlab.

MIDHUNTA30 avatar MIDHUNTA30 commented on August 14, 2024

from mpc-matlab.

Related Issues (3)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.