Files
Uni-Lab-OS/dummy2_debug/start_dummy2_unilab.sh
2025-08-14 17:58:23 +08:00

145 lines
3.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Dummy2 Unilab环境启动脚本
# 专为unilab conda环境设计不依赖系统ROS2
set -e
# 配置
DUMMY2_WS="/home/hh/dummy2/ros2/dummy2_ws"
# 初始化mamba
eval "$(mamba shell hook --shell bash)"
# 函数:激活环境并检查
setup_environment() {
echo "激活unilab环境..."
mamba activate unilab
if ! command -v ros2 &> /dev/null; then
echo "错误: ROS2在unilab环境中不可用"
exit 1
fi
echo "✓ ROS2环境准备就绪"
}
# 函数:构建工作空间
build_workspace() {
echo "==================================="
echo "构建Dummy2工作空间"
echo "==================================="
setup_environment
cd "$DUMMY2_WS"
echo "清理旧构建文件..."
rm -rf build/ install/ log/
echo "开始构建..."
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
echo "✓ 构建完成"
}
# 函数:启动硬件接口
start_hardware() {
echo "==================================="
echo "启动Dummy2硬件接口"
echo "==================================="
setup_environment
cd "$DUMMY2_WS"
source install/setup.bash
echo "启动硬件接口节点..."
echo "按Ctrl+C停止"
ros2 launch dummy2_hw dummy2_hw.launch.py
}
# 函数启动MoveIt服务
start_moveit() {
echo "==================================="
echo "启动Dummy2 MoveIt服务"
echo "==================================="
setup_environment
cd "$DUMMY2_WS"
source install/setup.bash
echo "启动MoveIt2规划服务..."
echo "按Ctrl+C停止"
ros2 launch dummy2_moveit_config demo.launch.py
}
# 函数:检查状态
check_status() {
echo "==================================="
echo "检查ROS2服务状态"
echo "==================================="
setup_environment
echo "当前节点:"
ros2 node list || echo "无节点运行"
echo ""
echo "可用话题:"
ros2 topic list | head -10 || echo "无话题"
echo ""
echo "可用动作:"
ros2 action list || echo "无动作服务"
}
# 函数:运行测试
run_test() {
echo "==================================="
echo "运行Dummy2控制测试"
echo "==================================="
setup_environment
source "$DUMMY2_WS/install/setup.bash"
cd /home/hh/Uni-Lab-OS
echo "运行直接控制测试..."
python dummy2_debug/dummy2_direct_move.py
}
# 主程序
case "${1:-help}" in
"build")
build_workspace
;;
"hw"|"hardware")
start_hardware
;;
"moveit")
start_moveit
;;
"check"|"status")
check_status
;;
"test")
run_test
;;
"help"|*)
echo "Dummy2 Unilab环境启动脚本"
echo ""
echo "用法: $0 [命令]"
echo ""
echo "命令:"
echo " build - 构建工作空间"
echo " hw - 启动硬件接口"
echo " moveit - 启动MoveIt服务"
echo " check - 检查服务状态"
echo " test - 运行控制测试"
echo " help - 显示此帮助信息"
echo ""
echo "启动顺序:"
echo "1. $0 build (首次或更新后)"
echo "2. $0 hw (终端1)"
echo "3. $0 moveit (终端2)"
echo "4. $0 test (终端3)"
;;
esac