☰
YOLO_World-SAM-GraspNet记录
2026/9/28 4:01:51 网站建设 项目流程

windows环境部署只看1-6+10,远程SSH无桌面服务器部署时看1-10

1.创建环境

conda create -n mujoco_graspnet python=3.10 conda activate mujoco_graspnet

2.安装requirements.txt

cd graspnet-baseline pip install -r requirements.txt

锁定版本防止后续操作自动升级

conda config --add pinned_packages numpy=1.23.4

报错

ERROR: Could not find a version that satisfies the requirement tensorboard (from versions: none)
ERROR: No matching distribution found for tensorboard

//直接用Conda安装tensorboard conda install tensorboard -y

3.安装torch

# CUDA 12.1 conda install pytorch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 pytorch-cuda=12.1 -c pytorch -c nvidia pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://pypi.tuna.tsinghua.edu.cn/simple
安装相关包
//配置清华源 pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple //安装包 pip install spatialmath-python==1.1.14 pip install roboticstoolbox-python==1.1.1 pip install modern-robotics==1.1.1 pip install mujoco==3.3.1

4.编译并安装PointNet++自定义算子

cd pointnet2 python setup.py install cd ../

RuntimeError: Error compiling objects for extension

安装2019版本的vs

VS2019 Community 社区版下载链接_vs2019社区版下载-CSDN博客

5.编译并安装k-最近邻(k-NN)算子

cd knn python setup.py install cd ../

error LNK2001: 无法解析的外部符号 "public: long * __cdecl at::TensorBase::data_ptr<long>(void)const " (??$data_ptr@J@TensorBase@at@@QEBAPEAJXZ)

删除build、dist、knn_pytorch.egg-info残留缓存文件夹

将knn文件下所有的long改为int64_t,并在每个文件中添加头文件:#include <cstdint>

6.安装graspnetAPI工具包

修改setup.py,将sklearn替换为scikit-learn

cd graspnetAPI pip install . cd ../
下载GraspNet-baseline的预训练权重

manipulator_grasp/logs/log_rs/checkpoint-rs.tar

检查依赖冲突
pip check
运行demo
python demo.py --checkpoint_path "<checkpoint-rs.tar的绝对路径>"

成功

7.使用ssh 的 X11转发功能配置图形化界面(远程SSH无桌面服务器)

(1)Windows端配置
下载VcXsrv

启动配置:

Display number:保持默认设置为-1(多窗口模式)。

Start no client:勾选,不需要它启动任何本地客户端。

Disable access control:勾选。

启动后,系统托盘显示“X”图标。

验证本地监听

打开Windows命令提示符

netstat -an | findstr :6000

输出为

TCP 0.0.0.0:6000 0.0.0.0:0 LISTENING TCP [::]:6000 [::]:0 LISTENING

即可

更改 ssh 配置文件
Host test Hostname test.com User test IdentityFile ~/.ssh/id_rsa ForwardX11 yes ForwardX11Trusted yes

通过VSCode连接到远程服务器

打开终端检查X11转发是否激活:

echo $SSH_CLIENT

显示本地IP和端口

运行SSH检查命令:

echo $DISPLAY

输出localhost:10.0

SSH配置正确

(2)服务器端的配置

打开vs连接远程服务器

启用SSH X11转发

# 编辑SSH配置文件 sudo nano /etc/ssh/sshd_config # 修改以下内容 X11Forwarding yes X11UseLocalhost no X11DisplayOffset 10 AllowTcpForwarding yes PermitTunnel yes # 重启SSH服务 sudo systemctl restart sshd # 安装xauth sudo apt install xauth # Debian/Ubuntu sudo yum install xauth # CentOS/RHEL
安装X11客户端库
sudo apt update sudo apt install -y x11-apps xauth

完整性检查

which xclock which xauth
诊断环境变量与权限
env | grep -E '(DISPLAY|XAUTHORITY)'

输出类似于

DISPLAY=localhost:10.0 XAUTHORITY=/tmp/ssh-XXXXXXxxxxx/.Xauthority

即可

测试图形转发
xeyes

在Windows上出现一双眼睛

无法运行,使用strace追踪系统调用

strace -f -e trace=connect,write,read xclock 2>&1 | grep -i display

注意:如果始终不成功有可能是网络问题,可以选择换网络测试(需要重启vs)

8.使用OSMesa软件渲染(远程SSH无桌面服务器)

安装缺失的Mesa驱动和OpenGL运行库
sudo apt update sudo apt install --reinstall libgl1-mesa-glx libgl1-mesa-dri mesa-utils

校验核心驱动文件是否存在

ls /usr/lib/x86_64-linux-gnu/dri/iris_dri.so ls /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so

两个文件正常输出路径就说明系统层面的软件渲染依赖已经就绪。

设置环境变量
export LIBGL_ALWAYS_SOFTWARE=1 export MUJOCO_GL=osmesa python main.py

提示:ERROR: could not initialize GLFW

conda install -c conda-forge libffi

强制使用 CPU 软件渲染

安装Python侧OpenGL关联依赖
pip install PyOpenGL
安装OpenGL 相关包
conda install -c conda-forge mesa-libgl conda install -c conda-forge glfw
安装mesa-utils
sudo apt update && sudo apt install mesa-utils -y

检查OpenGL 版本和驱动信息

glxinfo | grep OpenGL

9.切换GPU渲染图形界面

查看当前OpenGL使用的显卡

glxinfo | grep -i "OpenGL renderer"

查看当前显卡模式

prime-select query

on-demand —— 按需模式,默认使用 Intel,需要手动用prime-run或DRI_PRIME=1指定使用 NVIDI

安装nvidia-prime
sudo apt update sudo apt install nvidia-prime

创建prime-run命令

sudo nano /usr/local/bin/prime-run

粘贴脚本内容

#!/bin/bash __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only "$@"

执行权限

sudo chmod +x /usr/local/bin/prime-run

确认创建成功

which prime-run

测试是否能调用独显运行程序

prime-run glxinfo | grep "OpenGL renderer"

显示NVIDIA显卡,成功

添加cuda目录
nano ~/.bashrc

添加环境变量

export CUDA_HOME=/usr/local/cuda-12.1 export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64:$LD_LIBRARY_PATH

10.运行YOLO_World-SAM-GraspNet项目

安装环境

pip install ultralytics==8.3.98 pip install git+https://github.com/openai/CLIP.git

运行main_yoloWorld_sam.py

在命令终端输入待抓取物体,第一次运行命令会下载模型

随后会生成目标检测结果、SAM掩码图以及预测抓取姿态

注意:目标检测结果、SAM掩码图在当前工作目录下生成

参考文章

【Mujoco】:YOLO_World-SAM-GraspNet机械臂抓取仿真_mujoco机械臂抓取-CSDN博客

VSCode『SSH』连接服务器『GUI界面』传输 - 知乎

从Windows远程显示Linux图形程序:SSH X11转发完整指南 - 知乎

VSCode连接Ubuntu服务器显示GUI界面常见报错排查

Graspnet(一)——Windos11复现_graspnet复现-CSDN博客

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询