@Pigmon
2017-10-29T09:44:26.000000Z
字数 1038
阅读 1642
作业
calculateWheelSpeeds.m 的 TODO 部分代码:
% ex_2_1% In exercise2-assignment.pdf% v is vu here% w is omega here% r is wheelRadius here% l is halfWheelbase here% /Phi(l) and /Phi(r) are LeftWheelVelocity and RightWheelVelocity hereLeftWheelVelocity = (vu - halfWheelbase * omega) / wheelRadius;RightWheelVelocity = (vu + halfWheelbase * omega) / wheelRadius;
calculateControlOutput.m 的 后半部分
% exercise2-assignment.pdf 中的 betabeta = - (lambda + thetag);beta = normalizeAngle(beta);% ...% 这里是原来程序自带的一堆注释% ...% ex_2_2% exercise2-assignment.pdf 中的公式 (3) (4)vu = parameters.Krho * rho;% [m/s]omega = parameters.Kalpha * alpha + parameters.Kbeta * beta;% [rad/s]% ex_2_3ex_2_3 = parameters.backwardAllowed && parameters.useConstantSpeed;direction = 1; % 代表方向,1 正向,-1 反向if ex_2_3% 如果是反向if abs(alpha) > pi() / 2% 重新计算 alpha, betaalpha = alpha - pi();beta = beta - pi();% 反向,速度数值取负vu = -vu;% 标记,后面 constantSpeed 用direction = -1;% 重新计算 omega (pdf 中的 w)omega = parameters.Kalpha * alpha + parameters.Kbeta * beta;% [rad/s]end% 当速度不是 0 的时候if abs(vu) > 0.000001% 根据 vu 的缩放调整 omegaomega = omega * (parameters.constantSpeed / abs(vu));% 常数速度 (有方向)vu = direction * parameters.constantSpeed;endend
