2 views (last 30 days)

Show older comments

d

Ankit
on 2 Oct 2020

function input = C_REG(q)

% global k_1 k_2

x=q(1);

y=q(2);

theta=q(3);

e_p=[-x -y];

sag=[cos(theta);sin(theta)];

gamma=atan2(y,x)-theta+pi;

% driving velocity

v=k_1*e_p.*sag;

% steering velocity

omega=k_2*gamma;

input = [v;omega];

you have to careful with matrix/vector multiplication. your e_p [1 x2 ] and sag [2x1] --> multiplication of e_p and sag gives a matrix of [2x2] and multiply with k1 [1] results in a vector of [1x2] --> driving velocity

and similarly omega is a scalar.

Could you please explain what is your expected output ? steering velocity vector or scalar.

and similary driving velocity?

Ankit
on 2 Oct 2020

try this. as you mentioned your v and omega are scalar following will work. let me know if it is clear now?

function input = C_REG(q)

global k_1 k_2

x=q(1);

y=q(2);

theta=q(3);

e_p=[-x -y];

sag=[cos(theta);sin(theta)];

gamma=atan2(y,x)-theta+pi;

% driving velocity

v=k_1*e_p*sag; % now it is scalar

% steering velocity

omega=k_2*gamma; % scalar

input = [v;omega]; % it is allowed

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!