added setup script
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
#!/bin/bash
|
||||
# ============================================
|
||||
# Dragon Q6A 环境自动配置脚本
|
||||
# 适用:Python 3.12 + PyQt5 + Open3D + PyOpenGL + GPU 硬件加速
|
||||
# ============================================
|
||||
|
||||
set -e # 遇到错误立即退出
|
||||
|
||||
echo "============================================"
|
||||
echo " Dragon Q6A 环境配置开始"
|
||||
echo "============================================"
|
||||
|
||||
# ============================================
|
||||
# 1. 系统更新
|
||||
# ============================================
|
||||
echo ""
|
||||
echo "[1/7] 更新系统..."
|
||||
sudo rsetup
|
||||
|
||||
# ============================================
|
||||
# 2. 安装系统依赖
|
||||
# ============================================
|
||||
echo ""
|
||||
echo "[2/7] 安装系统依赖..."
|
||||
sudo apt install -y \
|
||||
build-essential git wget curl \
|
||||
python3-pyqt5 pyqt5-dev-tools \
|
||||
python3-pyqt5.qtsvg python3-pyqt5.qtwebengine \
|
||||
mesa-utils mesa-vulkan-drivers \
|
||||
libgl1-mesa-dri libglx-mesa0 \
|
||||
libegl1-mesa-dev libgles2-mesa-dev \
|
||||
libgbm-dev libdrm-dev libvulkan-dev \
|
||||
vulkan-tools libglu1-mesa-dev libx11-xcb-dev \
|
||||
python3-venv python3-pip \
|
||||
v4l-utils ffmpeg
|
||||
|
||||
# ============================================
|
||||
# 3. 验证 GPU
|
||||
# ============================================
|
||||
echo ""
|
||||
echo "[3/7] 验证 GPU 驱动..."
|
||||
echo "OpenGL 渲染器信息:"
|
||||
glxinfo | grep "OpenGL renderer" | head -1
|
||||
echo ""
|
||||
echo "Vulkan 驱动信息:"
|
||||
vulkaninfo | grep -E "driverName|deviceName" | head -4 || echo "⚠️ 请检查 Vulkan 驱动"
|
||||
|
||||
# ============================================
|
||||
# 4. 设置虚拟环境
|
||||
# ============================================
|
||||
echo ""
|
||||
echo "[4/7] 设置 Python 虚拟环境..."
|
||||
|
||||
# 定义项目目录
|
||||
PROJECT_DIR1="$HOME/orisys_gripper/ctag2f-90d-sdk"
|
||||
PROJECT_DIR2="$HOME/orisys_gripper/orisys-sdk"
|
||||
|
||||
configure_project() {
|
||||
local PROJECT_DIR="$1"
|
||||
if [ -d "$PROJECT_DIR" ]; then
|
||||
echo " 配置项目: $PROJECT_DIR"
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
# 删除旧的虚拟环境(如果存在)
|
||||
if [ -d ".venv" ]; then
|
||||
echo " 移除旧的虚拟环境..."
|
||||
rm -rf .venv
|
||||
fi
|
||||
|
||||
# 创建新虚拟环境
|
||||
echo " 创建虚拟环境..."
|
||||
python3 -m venv .venv --system-site-packages
|
||||
|
||||
# 激活并安装依赖(使用 . 代替 source)
|
||||
echo " 安装 Python 依赖..."
|
||||
. .venv/bin/activate
|
||||
|
||||
# 升级 pip
|
||||
pip install --upgrade pip
|
||||
|
||||
# 安装 requirements.txt(如果存在)
|
||||
if [ -f "requirements.txt" ]; then
|
||||
pip install -r requirements.txt
|
||||
fi
|
||||
#pip install pyqtgraph
|
||||
|
||||
# 安装基础包
|
||||
#pip install PyOpenGL
|
||||
#pip install open3d-unofficial-arm
|
||||
#pip install numpy scipy matplotlib pyyaml
|
||||
|
||||
# 验证安装
|
||||
echo " 验证安装..."
|
||||
python -c "import PyQt5.QtCore; print(' PyQt5 OK')"
|
||||
python -c "from OpenGL.GL import *; print(' OpenGL OK')"
|
||||
python -c "import open3d as o3d; print(' Open3D OK: v' + o3d.__version__)"
|
||||
|
||||
# 退出虚拟环境
|
||||
deactivate
|
||||
|
||||
cd - > /dev/null
|
||||
echo " ✅ $PROJECT_DIR 配置完成"
|
||||
return 0
|
||||
else
|
||||
echo " ⚠️ 目录不存在: $PROJECT_DIR (跳过)"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 配置项目
|
||||
configure_project "$PROJECT_DIR1"
|
||||
configure_project "$PROJECT_DIR2"
|
||||
|
||||
# ============================================
|
||||
# 6. 创建启动脚本
|
||||
# ============================================
|
||||
echo ""
|
||||
echo "[6/7] 创建启动脚本..."
|
||||
|
||||
cat > ~/run_visualizer.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
# Dragon Q6A 可视化程序启动脚本
|
||||
|
||||
# 查找项目目录
|
||||
if [ -d "$HOME/orisys_gripper/ctag2f-90d-sdk" ]; then
|
||||
PROJECT_DIR="$HOME/orisys_gripper/ctag2f-90d-sdk"
|
||||
elif [ -d "$HOME/orisys_gripper/orisys-sdk" ]; then
|
||||
PROJECT_DIR="$HOME/orisys_gripper/orisys-sdk"
|
||||
else
|
||||
echo "错误: 找不到项目目录"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "进入项目目录: $PROJECT_DIR"
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
# 激活虚拟环境
|
||||
if [ -f ".venv/bin/activate" ]; then
|
||||
. .venv/bin/activate
|
||||
else
|
||||
echo "错误: 找不到虚拟环境"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 运行程序
|
||||
python -m gripper.visualizer "$@"
|
||||
EOF
|
||||
|
||||
chmod +x ~/run_visualizer.sh
|
||||
echo "✅ 启动脚本已创建: ~/run_visualizer.sh"
|
||||
|
||||
# ============================================
|
||||
# 7. 最终验证
|
||||
# ============================================
|
||||
echo ""
|
||||
echo "[7/7] 最终验证..."
|
||||
|
||||
# 查找存在的项目目录
|
||||
if [ -d "$PROJECT_DIR1" ]; then
|
||||
cd "$PROJECT_DIR1"
|
||||
elif [ -d "$PROJECT_DIR2" ]; then
|
||||
cd "$PROJECT_DIR2"
|
||||
else
|
||||
echo "⚠️ 未找到项目目录,跳过验证"
|
||||
cd "$HOME"
|
||||
fi
|
||||
|
||||
if [ -f ".venv/bin/activate" ]; then
|
||||
. .venv/bin/activate
|
||||
echo "✅ 虚拟环境激活成功"
|
||||
|
||||
echo "验证 Python 包:"
|
||||
python -c "import PyQt5.QtCore; print(' ✅ PyQt5: OK')" 2>/dev/null || echo " ❌ PyQt5: 失败"
|
||||
python -c "from OpenGL.GL import *; print(' ✅ PyOpenGL: OK')" 2>/dev/null || echo " ❌ PyOpenGL: 失败"
|
||||
python -c "import open3d as o3d; print(' ✅ Open3D: v' + o3d.__version__)" 2>/dev/null || echo " ❌ Open3D: 失败"
|
||||
|
||||
deactivate
|
||||
fi
|
||||
|
||||
# ============================================
|
||||
echo ""
|
||||
echo "============================================"
|
||||
echo " Dragon Q6A 环境配置完成!"
|
||||
echo "============================================"
|
||||
echo ""
|
||||
echo "GPU 状态: 硬件加速已启用 (FD643/Turnip)"
|
||||
echo ""
|
||||
echo "下一步:"
|
||||
echo " 1. 重启终端或执行: source ~/.bashrc"
|
||||
echo " 2. 运行程序: ~/run_visualizer.sh"
|
||||
echo ""
|
||||
echo "如果遇到图形问题,可以设置软件渲染模式:"
|
||||
echo " export LIBGL_ALWAYS_SOFTWARE=1"
|
||||
echo "============================================"
|
||||
Reference in New Issue
Block a user