GithubHelp home page GithubHelp logo

mpcc_ros's People

Contributors

swl017 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

mpcc_ros's Issues

Bang-bang behavior

2020-12-19 진행 상황 기록

State를 boundary 안에 잘 넣고 시작하면 MPC exitflag가 0으로 잘 동작함(예. 적당한 초기 속도 1 m/s 부여 등). 그러나 제어에 사용하기에는 아직 불안정한 모습을 보임.

1. 세팅

  • 실험 조건:
변수 단위
dt 0.05 s
dt(fine) 0.001 s
모델 simple bycicle -
  • 토픽과 입력값 관계표:
ackermann.drive u 설명
.acceleration .dD throttle 시간 변화율
.steering_angle .dDelta steering 시간 변화율
.speed .dVs 속력 시간 변화율(desired acceleration) (안씀)

2. 문제점

MPC 솔루션이 일관적이지 않고 bang-bang스러운 모습을 보임.
영상 링크: link

Screenshot from 2020-12-19 00-25-32

Nested class as a member in a class

선언과 초기화 분리하는 방법

예시)

class Customer {
public:
    Customer(void);
    Customer(string,char,int);
};
  1. 선언
#include "Customer.h"

class Node {
  public:

     Node(void); //default constructor
     Node(string,char,int); //Node constructor with customer details

     Node* left;
     Node* right;
     Node* parent;
     Customer customer;
};
  1. 초기화
Node::Node() : left(nullptr),
              right(nullptr),
              parent(nullptr),
              customer() {}

Node::Node(string x, char y, int z) : left(nullptr),
                                     right(nullptr),
                                     parent(nullptr),
                                     customer(x, y, z) {}

출처: https://stackoverflow.com/questions/42987199/using-a-class-object-in-another-class

Model by Spec

related pull request: #4

1. 스펙으로 모델 도출

IAC 모델 스펙: google 문서

  1. 횡방향 Pacejka 모델
    Vehicle Lateral Parameter Plotter
    
    Data: param.mat/param_feasible
    eq = tan(pi/(2*C))-k*C == 0
    solve(eq,C)
    for k = 1.9 ~ 3.0(?)
    then, D = C_alpha*alpha_max/k, B = k/(alpha_max*C)
    
    Brief: convert linear tire model to Pacejka Magic formula
    
    Fy = C_{alpha}*alpha
    into
    Fy = D*sin(C*atan(B*alpha))
    using
    C_{alpha} = D*C*B and C*atan(B*alpha_{max}) = pi/2
    and C_{alpha}*alpha_{max} = k*D
    Thus, plot depending on k = 1.6~2.0
    

Screenshot_20210116-012725_OneNote

Fy vs slip
plot_lat_params_Fy_vs_slip

  1. 종방향 모델
    Vehicle Longitudinal Parameter Plotter
    
    Fx = (Cm1 - Cm2 * vx) * D - Cr0 - Cr2 * vx^2
    
    Data: param.mat/lonp
    

Fx vs D(throttle)
plot_lon_params_Fx_vs_D

vx vs t(simulate assuming full throttle)
plot_lon_params_vx_vs_t

matlab code: swl017/MATLAB.git

2. 튜닝

  1. scaled -> fullscale의 변화만큼 cost 튜닝
    Liniger MPCC fullscale branch: https://github.com/alexliniger/MPCC/blob/fullsize/C%2B%2B/Params/cost.json

  2. n_sqp 2 -> 100("잘생각해봐")
    src/mpcc_controller/mpcc_controller/Params/config.json

  "n_sqp": 100,

3. 결과

느리지만 안정적
mpcc_model_by_spce_nsqp_100.mp4 (30 MB)

4. TODO

  1. n_sqp < 10 에서도 잘 동작하게 튜닝

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.