#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