news 2026/8/8 7:40:58

Isaac Sim知识小解(9):anygrasp生成抓取位姿

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Isaac Sim知识小解(9):anygrasp生成抓取位姿

1. Anygrasp介绍

AnyGrasp上海交大 + 非夕 Flexiv 联合实验室(GraspNet 团队)推出的通用 7DoF 视觉抓取算法 & 工程 SDK(2022 论文),面向无序未知物体静态 + 动态抓取,是目前工业落地最主流的 6/7 自由度抓取开源方案,常和 cuRobo 运动规划搭配使用(视觉出抓取位姿→cuRobo 做机械臂避障轨迹)。

无需提前物体建模、物体 CAD、离线标定训练,输入单目 RGB-D 点云,直接输出夹爪可用7 自由度抓取位姿(6D 位姿 + 夹爪开合宽度)

与其他主流方法比较:

使用流程建议(典型 pipeline)

  • 获取 RGB-D 图像 → 生成点云

  • 运行 AnyGrasp → 得到多个候选抓取7DoF 位姿(在相机系下)

  • 手眼标定 → 将抓取位姿转到机器人基坐标系

  • 对抓取位姿进行后处理 → 选择最优抓取位姿

  • 位姿送入 cuRobo 运动规划 → 规划无碰撞路径

  • 执行抓取动作(接近 → 闭合夹爪 → 提起)

使用 [AnyGrasp],它输入一帧 RGBD 数据以及相机内参,输出一组相机坐标系下带分数的候选抓取位姿。AnyGrasp 的 SDK 需要申请 license。

最直接的用法是离线跑一帧数据,核心就是从深度图反投影出点云,喂给模型:

from gsnet import AnyGrasp from graspnetAPI import GraspGroup anygrasp = AnyGrasp(cfgs) anygrasp.load_net() # 从深度图反投影出点云 xmap, ymap = np.meshgrid(np.arange(W), np.arange(H)) points_z = depths / scale points_x = (xmap - cx) / fx * points_z points_y = (ymap - cy) / fy * points_z points = np.stack([points_x, points_y, points_z], axis=-1) mask = (points_z > 0) & (points_z < 1) points = points[mask].astype(np.float32) colors = colors[mask].astype(np.float32) # 检测抓取,返回一个 GraspGroup gg, cloud = anygrasp.get_grasp( points, colors, apply_object_mask=True, collision_detection=True ) gg = gg.nms().sort_by_score() # 非极大值抑制 + 按分数排序 best_grasp = gg[0] # 分数最高的抓取

用服务的方式调用

在实际的数据采集流水线里,AnyGrasp 模型加载一次要占不少显存,而且我们往往需要并行跑很多个 Isaac Sim 实例,每个实例都自己加载一份模型既慢又浪费。所以更实用的做法是把AnyGrasp 包成一个 HTTP 服务,模型常驻显存,Isaac 这边作为客户端按需请求

from flask import Flask, request, jsonify app = Flask(__name__) anygrasp = AnyGrasp(cfgs) anygrasp.load_net() # 模型常驻 @app.route("/process", methods=["POST"]) def process_data(): data = request.get_json() colors = np.array(data["colors"], dtype=np.uint8) depths = np.array(data["depths"], dtype=np.uint16) # ... 反投影 + get_grasp ... gg = gg.nms().sort_by_score() grasp_list = [{ "translation": g.translation.tolist(), "rotation_matrix": g.rotation_matrix.tolist(), "depth": g.depth, "score": g.score, } for g in gg] return jsonify({"grasp_groups": grasp_list}), 200 app.run(host="0.0.0.0", port=5001)

从相机系到世界系

AnyGrasp 给出的抓取位姿是在相机坐标系下的,而我们前面规划用的是世界坐标系,所以又得做一次坐标变换。这里需要特别小心的是,AnyGrasp / GraspNet 的相机坐标系约定和 Isaac Sim 的相机坐标系约定是不一样的,中间需要插一个修正矩阵

def get_world_grasp_from_camera_coords( camera_position, camera_quaternion, point_3d, matrix_grasp ): rotation_cam_to_world = R.from_quat(camera_quaternion[[1, 2, 3, 0]]) # 这两个矩阵用来对齐 GraspNet 和 Isaac 的相机坐标系约定 transform_custom_pose = np.array([[0, 0, 1], [0, -1, 0], [1, 0, 0]]) correction_matrix = np.array([[1, 0, 0], [0, 0, -1], [0, 1, 0]]) point_in_world = ( rotation_cam_to_world.as_matrix() @ correction_matrix @ transform_custom_pose @ point_3d + camera_position ) rotation_world = ( rotation_cam_to_world * R.from_matrix(correction_matrix @ transform_custom_pose) * R.from_matrix(matrix_grasp) * R.from_matrix(np.linalg.inv(transform_custom_pose)) ).as_quat()[[3, 0, 1, 2]] return point_in_world, rotation_world
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/8 7:38:01

开发者如何应对技术迭代恐惧与焦虑

1. 技术迭代恐惧的本质与表现技术迭代恐惧是开发者群体中普遍存在的心理现象&#xff0c;主要表现为面对新技术时的焦虑、自我怀疑和职业危机感。根据Stack Overflow 2022开发者调查报告&#xff0c;67%的开发者承认曾因技术更新速度过快而产生压力。这种恐惧通常呈现三种典型症…

作者头像 李华
网站建设 2026/8/8 7:37:50

Python上下文管理器:原理、实现与工程实践

1. Python上下文管理器的本质解析第一次接触with语句时&#xff0c;我误以为它只是个语法糖。直到在项目中处理数据库连接泄漏问题时&#xff0c;才真正理解上下文管理器的设计哲学。本质上&#xff0c;它是Python对资源生命周期管理的标准化解决方案。上下文管理器协议由__ent…

作者头像 李华
网站建设 2026/8/8 7:36:56

Blender到Godot资产导出全流程:从glTF格式到引擎集成的实战指南

1. 项目概述&#xff1a;为什么Blender到Godot的资产导出值得你花时间如果你和我一样&#xff0c;从Blender建模到Godot引擎开发这条路上走过&#xff0c;那你肯定遇到过这样的场景&#xff1a;在Blender里精心雕琢的模型&#xff0c;导出后放进Godot&#xff0c;要么方向错了&…

作者头像 李华
网站建设 2026/8/8 7:36:46

AI Agent视频理解插件:原理、部署与实战优化指南

1. 项目概述&#xff1a;当AI Agent遇上视频理解难题最近在折腾AI Agent开发的朋友&#xff0c;估计都遇到过同一个头疼的问题&#xff1a;你精心调教的Agent&#xff0c;无论是基于Claude、GPT还是其他大模型&#xff0c;在处理文本、代码甚至图片时都显得游刃有余&#xff0c…

作者头像 李华
网站建设 2026/8/8 7:34:16

企业微信机器人群发功能配置与优化实践

1. 企业微信机器人群发功能概述企业微信机器人作为企业级通讯工具的重要组件&#xff0c;其群发功能已经成为现代企业运营中不可或缺的效率工具。不同于个人微信的群发助手&#xff0c;企业微信机器人提供了更专业的API接口和更精细化的权限控制&#xff0c;特别适合需要批量触…

作者头像 李华