mirror of
https://github.com/dptech-corp/Uni-Lab-OS.git
synced 2026-02-06 15:05:13 +00:00
145 lines
3.4 KiB
Bash
Executable File
145 lines
3.4 KiB
Bash
Executable File
#!/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
|