#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