【学习】在WSL2上完美复现GraspNet并可视化
参考
整篇教程主要参考:
- 复现GraspNet
https://blog.csdn.net/2302_76921114/article/details/149504309?ops_request_misc=&request_id=&biz_id=102&utm_term=graspnet&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-149504309.142^v102^pc_search_result_base1&spm=1018.2226.3001.4187
该文章关于可视化部分和整合章节做的比较粗糙,已作针对性优化。
- 桌面安装
https://docs.qq.com/aio/DSXd3a1RmaFRTZXBP?p=glD9eD1y2nrLwQnYCahvK0
一、准备环境
默认大家已经有了wsl2环境,没有请参考:https://www.cnblogs.com/quantoublog/articles/17674475.html
- 更新
sudo apt update
sudo apt upgrade
sudo apt upgrade gcc g++
- 安装miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
- 虚拟环境
# open3d库不支持py12及以上
# 后续所有使用python的地方,都使用 robot_grasp 环境
conda create -n robot_grasp python=3.10
conda activate robot_grasp
- clone grashnet仓库,安装相关依赖
# 找一个目录,我这里是~/source
git clone https://github.com/graspnet/graspnet-baseline.git
# 修改requirements.txt,删除torch,后续手动安装
pip install -r requirements.txt
conda install numpy scipy pandas matplotlib tqdm ipython jupyter
pip install open3d trimesh transforms3d h5py
- 安装cuda、torch
# 查看 CUDA Version
nvidia-smi
# CUDA Version 标注能安装的cuda的最高版本
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.77.01 Driver Version: 566.36 CUDA Version: 12.7 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 4060 Ti On | 00000000:01:00.0 On | N/A |
| 0% 43C P5 11W / 160W | 2864MiB / 8188MiB | 35% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
# 我这里显示12.7,选择了toch2.5.1
pip install torch==2.5.1
- 测试torch
python
import torch
print("是否可用:", torch.cuda.is_available())
print("torch查看CUDA版本:", torch.version.cuda)

这里CUDA输出的12.4,我们去下载cuda 12.4,链接:https://developer.nvidia.com/cuda-12-4-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=WSL-Ubuntu&target_version=2.0&target_type=deb_local
按步骤走(来自上面的链接,视具体版本而定):
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-4-local_12.4.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-4
- 报错:libtinfo5 but it is not installable
# 基本是ubuntu24.04出现这个问题
sudo apt update
wget http://security.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo apt install ./libtinfo5_6.3-2ubuntu0.1_amd64.deb
- 添加cuda环境变量
# 找到cuda安装位置
find /usr/local/cuda* -name nvcc
# 如 /usr/local/cuda-12.4/bin/nvcc
vim ~/.bashrc
# 添加以下内容
# >>> NVIDIA CUDA Toolkit 环境配置 >>>
export PATH=/usr/local/cuda-12.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH
# <<< NVIDIA CUDA Toolkit 环境配置 <<<
- 测试
nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Feb_27_16:19:38_PST_2024
Cuda compilation tools, release 12.4, V12.4.99
Build cuda_12.4.r12.4/compiler.33961263_0
二、GraspNet项目
- 进入项目
cd graspnet-baseline
- 安装pointnet2
cd pointnet2
python setup.py install
- 安装knn
cd knn
python setup.py install
- 安装graspnetAPI
cd 此项目之外
git clone https://github.com/graspnet/graspnetAPI.git
cd graspnetAPI
pip install .
- 报错:The 'sklearn' PyPI package is deprecated, use 'scikit-learn'
# 修改 setup.py 将sklearn替换为scikit-learn
vim setup.py
-
下载graspnet数据集
- checkpoint-rs.tar
- checkpoint-kn.tar
-
移动数据集
# 依照自己graspnet-baseline项目实际路径进行mkdir和cp
mkdir -p ~/source/graspnet-baseline/logs/log_rs/
mkdir -p ~/source/graspnet-baseline/logs/log_kn/
cp ~/download/checkpoint-rs.tar ~/source/graspnet-baseline/logs/log_rs/checkpoint.tar
cp ~/download/checkpoint-kn.tar ~/source/graspnet-baseline/logs/log_kn/checkpoint.tar
- 执行demo
# 到graspnet-baseline项目下
chmod +x command_demo.sh
./command_demo.sh
- 报错: version `GLIBCXX_3.4.32' not found
sudo apt update
sudo apt upgrade gcc g++
# 检查是否支持GLIBCXX_3.4.32
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
# 重新安装knn
cd knn
python setup.py install
- 报错:No module named 'torch._six'
# 修改导包
vim dataset/graspnet_dataset.py
# 将下面这行注释
# from torch._six import container_abcs
# 增加这一行
from collections.abc import Mapping, Sequence
- 执行成功,报错:
[Open3D WARNING] GLFW Error: Wayland: The platform does not support setting the window position
[Open3D WARNING] Failed to initialize GLEW.
[Open3D WARNING] [DrawGeometries] Failed creating OpenGL window.
这是因为没有桌面。
桌面安装教程:https://docs.qq.com/aio/DSXd3a1RmaFRTZXBP?p=glD9eD1y2nrLwQnYCahvK0
三、mujoco
安装非常简单,使用pip能一键安装
pip install mujoco
四、整合
- 拷贝 graspnetAPI 和 graspnet-baseline 至 manipulator_grasp
cp -r ~/source/graspnet-baseline ~/source/manipulator_grasp
cp -r ~/source/manipulator_grasp/graspnetAPI ~/source/manipulator_grasp
cp -r ~/source/graspnet-baseline/logs ~/source/manipulator_grasp
- 安装依赖
pip install spatialmath-python
pip3 install roboticstoolbox-python
pip install modern_robotics
- 执行
cd ~/source/manipulator_grasp
python main.py
五、效果




浙公网安备 33010602011771号