Skip to content

踩坑Robotics Stack Exchange2016-06-01

MATLAB避障算法用atan导致角度象限错误 ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:Mobile robot algorithm implementation error(Robotics Stack Exchange #9770)

状态:已解决

问题 ​

在MATLAB中复现移动机器人避障论文并计划上真机,算法涉及圆形障碍物、锥形视野和滑模控制具体报错。回答指出可能因atan计算角度丢失象限信息,导致角度错误。

环境 ​

Linux / ROS 机器人软件与控制通用开发环境

解决办法 ​

  1. 检查代码中未解释变量和硬编码值,如tk、kt,避免把应由程序选择的值固定为2。
  2. 在ApplyRule10函数的辅助角计算处,将atan(vr_t(2)/vr_t(1))、atan(aux_1(2)/aux_1(1))、atan(aux_2(2)/aux_2(1))改为对应的atan2(y,x)形式。
  3. 原因是atan(y/x)会把(-y)/x和y/(-x)都算成同一符号,丢失象限信息;atan2可正确处理y和x的符号。

原问题作者:Wobbler28;采纳答案作者:Chuck。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。

来源

本页事实对应的公开页面,以原文为准。

  1. Robotics Stack Exchange #9770:Mobile robot algorithm implementation error访问 2026-10-22