#AEAI04007. 离散候选逆解匹配

离散候选逆解匹配

题目描述

抓取规划器会给出若干离散逆解候选。请根据二连杆正运动学计算每个候选的末端误差,并判断是否存在可直接执行的候选。

若候选的位置误差不超过 eps_pos 且朝向误差不超过 eps_ang,它是可执行候选。在可执行候选中,按位置误差、关节改变量 |q1-cur1|+|q2-cur2|、朝向误差、编号升序选择。若没有可执行候选,则仍按同样的排序从所有候选中选一个作为拒绝结果。

输入格式

第一行输入 L1 L2 tool

第二行输入目标位姿 tx ty tphi

第三行输入误差阈值 eps_pos eps_ang

第四行输入当前关节角 cur1 cur2

第五行输入候选数量 M

接下来 M 行,每行输入 id q1 q2

输出格式

输出一行:

id pos_error change EXECUTE/REJECT

其中 pos_error 为位置误差,change 为关节改变量,均保留 6 位小数。若选中的候选满足阈值,状态为 EXECUTE,否则为 REJECT

判定规则

使用标准输出比较。角度误差按归一化到 (-180, 180] 后的绝对差计算。排序关键字固定为位置误差、关节改变量、朝向误差、编号。

数据范围与测试提示

  • 正式测试会覆盖样例没有出现的边界输入,请不要依赖样例规模或样例顺序写特判。
  • 输出只包含题目要求的字段,不要输出调试信息;浮点结果按题面要求保留 6 位小数。
  • 离散逆解可能有多个候选同时满足误差要求,也可能一个都没有;编号和并列规则会在隐藏数据中出现。
  • 关节角差值可能跨过角度周期边界,请按题面定义计算,不要直接用普通差值替代。
  • 没有满足阈值的候选时也要选最佳候选并输出 REJECT;排序为位置误差、关节变化、朝向误差、编号。

样例

输入样例 1

2 1 0
3 0 0
0.01 1
0 0
2
1 0 0
2 90 -90

输出样例 1

1 0.000000 0.000000 EXECUTE

输入样例 2

2 1 0
0 3 90
0.1 1
0 0
2
1 0 0
2 90 0

输出样例 2

2 0.000000 90.000000 EXECUTE