#AEAI04010. 多候选抓取点评分
多候选抓取点评分
题目描述
视觉模块会给出多个抓取点。具身智能部希望先过滤掉不可执行或不安全的点,再根据置信度、安全距离和移动距离计算综合得分,选择最值得尝试的抓取点。
候选必须同时满足:reachable = 1,到基座的半径在 [rmin, rmax] 内,夹爪开度 width + 2 * margin 在 [gmin, gmax] 内,抓取角与物体主轴法向的角度差不超过 max_ang,并且到所有圆形障碍的安全余量大于 d_safe。
通过过滤后,得分为:
score = w_conf * conf + w_safe * min(safe, 1000) - w_path * path
其中 safe 是到最近圆形障碍表面的距离,path 是从当前位置到抓取点的平面距离。选择得分最高的候选;若得分相同,依次选择安全余量更大、路径更短、编号更小的候选。
输入格式
第一行输入候选数 N 和圆形障碍数 B。
第二行输入 gmin gmax margin max_ang d_safe。
第三行输入 rmin rmax。
第四行输入当前位置 curx cury。
接下来 B 行,每行输入圆形障碍 cx cy r。
下一行输入权重 w_conf w_safe w_path。
接下来 N 行,每行输入:
id x y angle conf width axis reachable
输出格式
若存在可选抓取点,输出:
id score opening path
其中三个数值均保留 6 位小数。
若没有候选通过过滤,输出 NO_GRASP。
判定规则
使用标准输出比较。安全余量必须严格大于 d_safe;其他范围和角度阈值包含边界。排序关键字为得分降序、安全余量降序、路径升序、编号升序。
数据范围与测试提示
- 正式测试会覆盖样例没有出现的边界输入,请不要依赖样例规模或样例顺序写特判。
- 输出只包含题目要求的字段,不要输出调试信息;浮点结果按题面要求保留 6 位小数。
- 安全余量必须严格大于
d_safe,刚好等于时不可选;其他开度、距离和角度阈值按题面包含边界。 - 候选评分可能并列,排序关键字为得分降序、安全余量降序、路径升序、编号升序。
- 安全余量等于
d_safe不合格;得分并列时继续比较安全余量、路径长度和编号。
样例
输入样例 1
3 1
1 5 0.5 15 0.2
0 10
0 0
5 0 1
10 0.1 -0.01
1 3 0 90 0.9 2 0 1
2 4 0 90 0.8 2 0 1
3 5 0 0 1.0 2 0 1
输出样例 1
1 9.130000 3.000000 3.000000
输入样例 2
2 0
1 2 0.5 10 0
0 10
0 0
1 0 0
1 3 0 90 0.5 3 0 1
2 3 0 0 0.5 1 0 1
输出样例 2
NO_GRASP