[关闭]
@Pigmon 2017-10-29T09:44:26.000000Z 字数 1038 阅读 110

机器人作业2

作业


练习 2_1

calculateWheelSpeeds.m 的 TODO 部分代码:

  1. % ex_2_1
  2. % In exercise2-assignment.pdf
  3. % v is vu here
  4. % w is omega here
  5. % r is wheelRadius here
  6. % l is halfWheelbase here
  7. % /Phi(l) and /Phi(r) are LeftWheelVelocity and RightWheelVelocity here
  8. LeftWheelVelocity = (vu - halfWheelbase * omega) / wheelRadius;
  9. RightWheelVelocity = (vu + halfWheelbase * omega) / wheelRadius;

练习 2_2 和 2_3

calculateControlOutput.m 的 后半部分

  1. % exercise2-assignment.pdf 中的 beta
  2. beta = - (lambda + thetag);
  3. beta = normalizeAngle(beta);
  4. % ...
  5. % 这里是原来程序自带的一堆注释
  6. % ...
  7. % ex_2_2
  8. % exercise2-assignment.pdf 中的公式 (3) (4)
  9. vu = parameters.Krho * rho;% [m/s]
  10. omega = parameters.Kalpha * alpha + parameters.Kbeta * beta;% [rad/s]
  11. % ex_2_3
  12. ex_2_3 = parameters.backwardAllowed && parameters.useConstantSpeed;
  13. direction = 1; % 代表方向,1 正向,-1 反向
  14. if ex_2_3
  15. % 如果是反向
  16. if abs(alpha) > pi() / 2
  17. % 重新计算 alpha, beta
  18. alpha = alpha - pi();
  19. beta = beta - pi();
  20. % 反向,速度数值取负
  21. vu = -vu;
  22. % 标记,后面 constantSpeed
  23. direction = -1;
  24. % 重新计算 omega (pdf 中的 w)
  25. omega = parameters.Kalpha * alpha + parameters.Kbeta * beta;% [rad/s]
  26. end
  27. % 当速度不是 0 的时候
  28. if abs(vu) > 0.000001
  29. % 根据 vu 的缩放调整 omega
  30. omega = omega * (parameters.constantSpeed / abs(vu));
  31. % 常数速度 (有方向)
  32. vu = direction * parameters.constantSpeed;
  33. end
  34. end
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注