checkhandpi/start_robot_client.sh
2025-08-11 13:15:21 +08:00

128 lines
3.1 KiB
Bash
Executable File

#!/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://192.168.114.26: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