#!/bin/bash # 机械臂客户端启动脚本 # 包含虚拟环境激活和客户端启动 # 设置脚本目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 打印彩色消息 print_info() { echo -e "${BLUE}[INFO]${NC} $1" } print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } print_error() { echo -e "${RED}[ERROR]${NC} $1" } # 显示标题 echo "================================================" echo " 🦾 机械臂客户端启动器" echo "================================================" echo "" # 检查虚拟环境是否存在 if [ ! -d "venv" ]; then print_error "虚拟环境不存在,请先运行 ./start_service.sh 创建虚拟环境" exit 1 fi # 激活虚拟环境 print_info "正在激活虚拟环境..." source venv/bin/activate if [ $? -eq 0 ]; then print_success "虚拟环境已激活" else print_error "虚拟环境激活失败" exit 1 fi # 检查必要文件是否存在 print_info "检查必要文件..." if [ ! -f "src/robot_client.py" ]; then print_error "缺少必要文件: src/robot_client.py" exit 1 fi print_success "所有必要文件存在" # 解析命令行参数 SERVER="http://localhost:5000" MOCK="" while [[ $# -gt 0 ]]; do case $1 in --server) SERVER="$2" shift 2 ;; --real) MOCK="" shift ;; --mock) MOCK="--mock" shift ;; -h|--help) echo "用法: $0 [选项]" echo "" echo "选项:" echo " --server SERVER 服务器地址 (默认: http://localhost:5000)" echo " --mock 使用模拟控制器 (默认)" echo " --real 使用真实机械臂控制器" echo " -h, --help 显示帮助信息" echo "" echo "示例:" echo " $0 # 基本启动(模拟模式)" echo " $0 --server http://192.168.1.100:5000 # 连接远程服务器" echo " $0 --real # 真实机械臂模式" exit 0 ;; *) print_error "未知参数: $1" echo "使用 $0 --help 查看帮助" exit 1 ;; esac done # 显示启动信息 echo "" print_info "启动配置:" echo " - 服务器地址: $SERVER" if [ ! -z "$MOCK" ]; then echo " - 控制模式: 模拟模式" print_warning "当前使用模拟控制器,不会控制真实机械臂" else echo " - 控制模式: 真实机械臂" print_warning "当前使用真实机械臂控制器" fi echo "" print_info "按 Ctrl+C 停止客户端" echo "================================================" echo "" # 切换到src目录 cd src # 启动客户端 print_info "正在启动机械臂客户端..." python3 robot_client.py --server "$SERVER" $MOCK