ubuntu22.04安装anygrasp服务,完整全流程非常详细
在安装MinkowskiEngine时遇到CUDA13.0与GCC版本不兼容问题。服务器环境为CUDA13.0+PyTorch2.9.1,当前GCC版本13.0导致安装失败。解决方案是降级GCC至12.3.0版本,与CUDA13.0匹配。参考了相关GitHub issue和博客教程,通过调整GCC版本解决了安装错误问题。该问题主要源于CUDA与编译器版本间的兼容性要求。
目录
最近在利用Genmanip框架生成仿真数据,但需要安装anygrasp,官方给了教程
相关配置:ubuntu22.04+cuda13.0+pytorch2.9.1+gcc12.3.0
1.安装MinkowskiEngine问题:
但是在安装MinkowskiEngine遇到了一些问题,当前服务器中配置是cuda13.0+pytorch2.9.1,然后在github issue中有人给出了解决方案,可以点此查看,然后按照此方案,最后执行安装时
python setup.py install --blas=openblas
遇到错误:error: command '/usr/local/cuda-13.0/bin/nvcc' failed with exit code 1
在这个博客中给出了解决方案:
ubuntu20.04安装MinkowskiEngine教程及避坑指南
报错的主要原因是因为cuda13.0和gcc版本不匹配,当前gcc版本是13.0,需要重新安装12.3.0版本

在官方页面:https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
可以查看cuda对应的gcc版本。
然后安装gcc12.3版本
# 1. 建议从清华大学的镜像源找到指定版本的包
https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/
https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-12.3.0/gcc-12.3.0.tar.gz
然后解压:tar -xf gcc-12.3.0.tar.gz
进入解压文件: cd gcc-12.3.0
安装一些工具包:
sudo apt install build-essential
为了帮助 GCC 源编译,请安装 libgmp3-dev、libmpfr-dev 和 libmpc-dev 包:
sudo apt install libmpfr-dev libgmp3-dev libmpc-dev -y
# 2. 配置(使用您提供的参数)
./configure -v \
--build=x86_64-linux-gnu \
--host=x86_64-linux-gnu \
--target=x86_64-linux-gnu \
--prefix=/usr/local/gcc-12.3.0 \
--enable-checking=release \
--enable-languages=c,c++ \
--disable-multilib \
--program-suffix=-12.3.0
# 3. 编译(使用多核加速,可能需要几小时)
make -j$(nproc)
# 4. 安装
sudo make install
# 5. 添加到系统PATH
echo 'export PATH=/usr/local/gcc-12.3.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/gcc-12.3.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
# 6. 验证安装
在当前的python环境优先使用gcc12.3版本:
export CC=/usr/local/gcc-12.3.0/bin/gcc-12.3.0
gcc --version 就会输出12.3版本了
安装gcc12.3之后,再次执行安装:
python setup.py install --blas=openblas
等待安装完成,中间需要等待比较长的时间,没有错误,执行完成后,最后在python里import看看是否成功
$ python
>>> import MinkowskiEngine as ME
>>> ME.__version__
'0.5.4'
安装成功!
2. 安装 anygrasp_sdk
之后安装 anygrasp_sdk:
git clone https://github.com/graspnet/anygrasp_sdk.git
cd anygrasp_sdk
pip install -r requirements.txt
之后安装 pointnet2:
cd pointnet2
python setup.py install
3. 获取License
AnyGrasp 目前只以闭源 SDK 的形式提供,需要申请 license 才能用
下载https://github.com/graspnet/anygrasp_sdk 项目,其中提到由于IP问题,目前只能以授权方式发布AnyGrasp的SDK库文件,需要填写申请才能获取相应文件,需要谷歌账号登录,然后邮箱需要使用教育邮箱,同时填写机器码。
# 1.下载anygrasp_sdk项目,进入license_registration 目录:
cd path/to/anygrasp_sdk/license_registration
# 2.to solve ifconfig issue
sudo apt install net-tools
# 3. 获取机器码
./license_checker -f
大概过一两天,邮箱就能收到相应的 license文件,包括以下三个文件:
checkpoint_detection.tar
checkpoint_tracking.tar
license/
|-- licenseCfg.json
|-- [your_name].public_key
|-- [your_name].signature
|-- [your_name].lic
把license压缩包解压,改名为license,在grasp_detection、grasp_tracking、license_registration文件夹各放置一份,进入到license_registration,执行以下命令:
# You can check license states via
./license_checker -c license/licenseCfg.json
显示如下:
[2025-12-11 16:30:54.104] [info] [FlexivLic] to verify license...
[2025-12-11 16:30:54.110] [info] [FlexivLic] public key xxx.public_key & signature xxx.signature are matched
[2025-12-11 16:30:54.110] [info] [FlexivLic] license license/xxx.lic check passed
然后在grasp_detection的gsnet_versions和license_registration的lib_cxx_versions,找到符合自己python版本的文件,然后进行改名放到grasp_detection目录下
# 文件改名
gsnet.cpython-310-x86_64-linux-gnu.so-->gsnet.so
lib_cxx.cpython-310-x86_64-linux-gnu.so --->lib_cxx.so
然后在grasp_detection执行测试命令: sh demo.sh,有下面输出则成功
[-0.3800217 -0.15607868 0.229 ] [0.3406217 0.2425703 0.61 ]
[0.47655499 0.46615526 0.36957011 0.31306624 0.25849855 0.25698301
0.23997951 0.23209305 0.20437662 0.20322342 0.14972813 0.13736394
0.13477902 0.13426076 0.13037908 0.12712221 0.11432476 0.11229827
0.09463322 0.07871214]
grasp score: 0.4765549898147583
其中还存在numpy版本不对的问题,最后采用的numpy版本是1.23.5,安装时会出现和其他不兼容的错误,但是只要显示成功安装了即可。
4. 部署anygrasp服务
在GenManip的官方教程中,给出了server.py代码
from gsnet import AnyGrasp
from graspnetAPI import GraspGroup
其中需要用这两个,graspnetAPI直接pip安装即可,
sh demo.sh安装成功之后,就可以成功导入gsnet.
命令行输入:python -c "from gsnet import AnyGrasp"
输出如下,代表成功了
checking license on /home/zoomlion/Project/anygrasp_sdk/grasp_detection/gsnet.so
[2025-12-11 16:41:00.182] [info] [FlexivLic] public key xxx.public_key & signature xxx.signature are matched
[2025-12-11 16:41:00.182] [info] [FlexivLic] license /home/zoomlion/Project/anygrasp_sdk/grasp_detection/license/xxx.lic check passed .
license passed: True, state: FvrLicenseState.PASSED
/home/zoomlion/miniforge3/envs/anygrasp/lib/python3.10/site-packages/MinkowskiEngine/__init__.py:36: UserWarning: The environment variable `OMP_NUM_THREADS` not set. MinkowskiEngine will automatically set `OMP_NUM_THREADS=16`. If you want to set `OMP_NUM_THREADS` manually, plea se export it on the command line before running a python script. e.g. `export OMP_NUM_THREADS=12; python your_program.py`. It is recommende d to set it below 24.
warnings.warn(
WARNING:root:Failed to import geometry msgs in rigid_transformations.py.
WARNING:root:Failed to import ros dependencies in rigid_transforms.py
WARNING:root:autolab_core not installed as catkin package, RigidTransform ros methods will be unavailable
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)