gazebo_world_manager/scene/grasp_box/launch.sh

77 lines
2.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
PID_FILE=$1
# 检查 Python3 是否安装
if ! command -v python3 &> /dev/null; then
echo -e "\033[31m错误未找到 Python3请确保已安装 Python3\033[0m"
exit 1
fi
# 检查 ROS 是否安装
if ! command -v roslaunch &> /dev/null; then
echo -e "\033[31m错误未找到 roslaunch请确保已安装 ROS\033[0m"
exit 1
fi
# 清理旧的 PID 文件(如果存在)
if [ -f "$PID_FILE" ]; then
rm "$PID_FILE"
echo -e "\033[33m已删除旧的 PID 文件: $PID_FILE\033[0m"
fi
# 捕获 Ctrl+C 信号,清理后台进程
trap 'echo -e "\033[31m接收到 Ctrl+C清理后台进程...\033[0m"; \
if [ -f "$PID_FILE" ]; then \
while read -r pid; do \
kill $pid 2>/dev/null && echo -e "\033[32m已终止进程 PID: $pid\033[0m"; \
done < "$PID_FILE"; \
fi; \
exit 0' SIGINT
# 执行 kuavo_tf2_web_republisher
echo -e "\033[32m启动 kuavo_tf2_web_republisher...\033[0m"
cd ~/kuavo_ros_application && source devel/setup.bash && roslaunch kuavo_tf2_web_republisher start_websocket_server.launch &
WEB_PID=$!
if [ $? -eq 0 ]; then
echo -e "\033[32mkuavo_tf2_web_republisher 启动成功 (PID: $WEB_PID)\033[0m"
echo "$WEB_PID" >> "$PID_FILE"
else
echo -e "\033[31mkuavo_tf2_web_republisher 启动失败\033[0m"
exit 1
fi
DELAY=5
sleep $DELAY
# 执行 load_kuavo_gazebo_manipulate
echo -e "\033[32m启动 load_kuavo_gazebo_manipulate...\033[0m"
cd ~/kuavo-ros-opensource && source devel/setup.bash && roslaunch humanoid_controllers load_kuavo_gazebo_manipulate.launch joystick_type:=bt2pro &
GAZEBO_PID=$!
if [ $? -eq 0 ]; then
echo -e "\033[32mload_kuavo_gazebo_manipulate 启动成功 (PID: $GAZEBO_PID)\033[0m"
echo "$GAZEBO_PID" >> "$PID_FILE"
else
echo -e "\033[31mload_kuavo_gazebo_manipulate 启动失败\033[0m"
kill $WEB_PID 2>/dev/null
rm "$PID_FILE" 2>/dev/null
exit 1
fi
DELAY=10
sleep $DELAY
# 执行 robot_strategies
echo -e "\033[32m启动 robot_strategies...\033[0m"
cd ~/kuavo-ros-opensource && source devel/setup.bash && roslaunch ar_control robot_strategies.launch &
STRATEGIES_PID=$!
if [ $? -eq 0 ]; then
echo -e "\033[32mrobot_strategies 启动成功 (PID: $STRATEGIES_PID)\033[0m"
echo "$STRATEGIES_PID" >> "$PID_FILE"
else
echo -e "\033[31mrobot_strategies 启动失败\033[0m"
kill $WEB_PID $GAZEBO_PID 2>/dev/null
rm "$PID_FILE" 2>/dev/null
exit 1
fi
# 在这里阻塞
wait