🌐 环境配置
我们使用的开发环境如下: • 系统: Ubuntu 22.04 • 编程语言: Python 3.9 • 工具链: Anaconda • CUDA: 12.1 • Cudnn: 配套版本 • PyTorch: 2.1.1 + cu121 • Minkowski Engine: 12.1
配置关键步骤
1. 设置 CUDA 环境变量:
export CUDA_HOME=/usr/local/cuda-12.1 export TORCH_CUDA_ARCH_LIST="8.9"
2. 下载并安装依赖:
sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.22_amd64.deb
3. 激活 AnyGrasp SDK 授权:
./license_checker -f 7449293101554303648
4. 修复兼容性问题: • 将 numpy 降级。 • 修改 float 为 float32 类型。
🛠️ 系统实现
核心模块:manipulator.py
此模块实现了从图像预处理到抓取姿态生成的主要流程。以下是核心功能: 1. 初始化: 设置相机参数和边界限制,加载抓取模型。 2. 图像处理: • 深度图像转 3D 点云 (get_3d_points)。 • 根据深度阈值裁剪图像和点云 (crop_img)。 3. 抓取姿态预测: 使用 AnyGrasp 模型生成候选抓取姿态,并通过非极大值抑制和排序优化结果。 4. 过滤抓取姿态: 支持通过边界框筛选抓取点,并转换为左手抓取姿态。 5. 可视化调试: 基于 Open3D 渲染抓取姿态和点云结果。
输入和输出
• 输入: 1. 深度图像 (depth_img) 2. 彩色图像 (color_img) 3. 可选物体边界框 (bbox) 4. 旋转限制 (lim_rot) • 输出: • 抓取姿态列表,包含平移向量和旋转信息。 • 可视化抓取结果(debug 模式下)。
📷 相机模块
我们基于 RealSense 摄像头开发了图像采集模块,主要实现以下功能: 1. RGB 图像采集: • 获取未失真的 RGB 图像。 2. RGB-D 图像采集: • 同步采集彩色图像和深度图像,并应用滤波处理。
配置与参数
• 相机内参:
fx: 909.709, fy: 909.857, ppx: 639.634, ppy: 386.391 分辨率: 1280x720 最大深度值: 2000.0 mm
🚀 运行进展
我们实现了多线程运行 camera.py 和 test.py,可以完成以下功能: 1. 实时拍摄并画框: 在图像上绘制抓取区域框。 2. 末端姿态发送: 将抓取末端位姿实时输出。
|