Delete G0_Images
Browse files
G0_Images/g0_ros2_v3_client/data/docker_g0_hs_start_v3_1-lite.sh
DELETED
|
@@ -1,115 +0,0 @@
|
|
| 1 |
-
#!/usr/bin/env bash
|
| 2 |
-
set -euo pipefail
|
| 3 |
-
|
| 4 |
-
SESSION_NAME="g0_three_tasks"
|
| 5 |
-
CURL_RETRIES=5
|
| 6 |
-
CURL_SLEEP=2
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
# 函数:显示用法
|
| 10 |
-
usage() {
|
| 11 |
-
echo "用法: $0 <0或1>"
|
| 12 |
-
echo " 0 - 表示VLM使用默认Gemini"
|
| 13 |
-
echo " 1 - 表示VLM使用Qwen"
|
| 14 |
-
}
|
| 15 |
-
|
| 16 |
-
# 检查参数
|
| 17 |
-
if [ $# -ne 1 ]; then
|
| 18 |
-
echo "错误: 需要一个参数0或1,用于选择VLM使用模型"
|
| 19 |
-
usage
|
| 20 |
-
exit 1
|
| 21 |
-
fi
|
| 22 |
-
|
| 23 |
-
VLM_USE_QWEN=$1
|
| 24 |
-
|
| 25 |
-
if tmux has-session -t "${SESSION_NAME}" 2>/dev/null; then
|
| 26 |
-
echo "已存在tmux session: ${SESSION_NAME},正在清除进程..."
|
| 27 |
-
tmux kill-session -t "${SESSION_NAME}"
|
| 28 |
-
echo "原tmux session: ${SESSION_NAME}已killed!"
|
| 29 |
-
fi
|
| 30 |
-
|
| 31 |
-
ensure_tmux_installed() {
|
| 32 |
-
if ! command -v tmux >/dev/null 2>&1; then
|
| 33 |
-
echo "未检测到 tmux,正在安装..."
|
| 34 |
-
if command -v apt-get >/dev/null 2>&1; then
|
| 35 |
-
sudo apt-get update && sudo apt-get install -y tmux
|
| 36 |
-
elif command -v dnf >/dev/null 2>&1; then
|
| 37 |
-
sudo dnf install -y tmux
|
| 38 |
-
elif command -v yum >/dev/null 2>&1; then
|
| 39 |
-
sudo yum install -y tmux
|
| 40 |
-
elif command -v pacman >/dev/null 2>&1; then
|
| 41 |
-
sudo pacman -Sy --noconfirm tmux
|
| 42 |
-
else
|
| 43 |
-
echo "未找到已知包管理器,请手动安装 tmux 后重试。"
|
| 44 |
-
exit 1
|
| 45 |
-
fi
|
| 46 |
-
fi
|
| 47 |
-
}
|
| 48 |
-
|
| 49 |
-
create_tmux_windows_and_run() {
|
| 50 |
-
tmux new-session -d -s "${SESSION_NAME}" -n g0_VLA_node
|
| 51 |
-
|
| 52 |
-
# ---------------- Window 0 ----------------
|
| 53 |
-
CMD1="cd /home/ros/g0_ros2/galaxea_0 && \
|
| 54 |
-
python experiments/robot/galaxea_real/run.py --run_dir runs/pick_and_place_ckpt/ --ckpt-id 100000 --use-vlm --interface-config.with_torso --interface-config.with_chassis --enable_debug"
|
| 55 |
-
tmux send-keys -t "${SESSION_NAME}:0" "bash -lc '${CMD1}; exec \$SHELL'" C-m
|
| 56 |
-
|
| 57 |
-
# ---------------- Window 1 (简化版 Code2) ----------------
|
| 58 |
-
tmux new-window -t "${SESSION_NAME}" -n g0_VLM_node
|
| 59 |
-
|
| 60 |
-
# 使用未加单引号的 heredoc,这样 ${VLM_USE_QWEN} 会在此处被展开为实际值
|
| 61 |
-
CMD2=$(cat <<EOF
|
| 62 |
-
# 读取并规范化环境变量(在 tmux 窗口内运行)
|
| 63 |
-
# (这里会在构造 CMD2 时由父 shell 展开 ${VLM_USE_QWEN})
|
| 64 |
-
|
| 65 |
-
if [[ "${VLM_USE_QWEN}" == "1" ]]; then
|
| 66 |
-
echo "[Code2] VLM_USE_QWEN=1,直接使用 Qwen 模式启动(跳过代理与网络检测)..."
|
| 67 |
-
cd /home/ros/g0_ros2/Hierarchical_System || { echo "[Code2] 无法进入工作目录"; exec \$SHELL; }
|
| 68 |
-
ros2 run g0_vlm_node vlm_main -- --use-qwen
|
| 69 |
-
echo "[Code2] ros2 run 已退出,保留 shell 供查看。"
|
| 70 |
-
exec \$SHELL
|
| 71 |
-
fi
|
| 72 |
-
|
| 73 |
-
export https_proxy=http://127.0.0.1:7897
|
| 74 |
-
export http_proxy=http://127.0.0.1:7897
|
| 75 |
-
export all_proxy=http://127.0.0.1:7897
|
| 76 |
-
|
| 77 |
-
cd /home/ros/g0_ros2/Hierarchical_System || { echo "[Code2] 无法进入工作目录"; exec \$SHELL; }
|
| 78 |
-
|
| 79 |
-
echo "[Code2] VLM_USE_QWEN!=1,已设置代理,开始检查网络连通性(最多 5 次)..."
|
| 80 |
-
for i in {1..5}; do
|
| 81 |
-
RESP=\$(curl -sI --max-time 8 www.google.com | head -n 1)
|
| 82 |
-
echo "[尝试 #\$i] \$RESP"
|
| 83 |
-
if echo "\$RESP" | grep -q "200 OK"; then
|
| 84 |
-
echo "[Code2] 检测到 200 OK,启动 ROS2 节点(默认模式)..."
|
| 85 |
-
ros2 run g0_vlm_node vlm_main -- --no-use-qwen
|
| 86 |
-
echo "[Code2] ros2 run 已退出,保留 shell 供查看。"
|
| 87 |
-
exec \$SHELL
|
| 88 |
-
fi
|
| 89 |
-
sleep 2
|
| 90 |
-
done
|
| 91 |
-
|
| 92 |
-
echo "[Code2][错误] 多次尝试后仍无法获得 200 OK,停止执行 ros2 run。请检查代理或网络设置。"
|
| 93 |
-
exec \$SHELL
|
| 94 |
-
EOF
|
| 95 |
-
)
|
| 96 |
-
|
| 97 |
-
tmux send-keys -t "${SESSION_NAME}:1" "bash -lc '${CMD2}'" C-m
|
| 98 |
-
|
| 99 |
-
# ---------------- Window 2 ----------------
|
| 100 |
-
tmux new-window -t "${SESSION_NAME}" -n rosbridge_for_EHI
|
| 101 |
-
CMD3="ros2 launch rosbridge_server rosbridge_websocket_launch.xml"
|
| 102 |
-
tmux send-keys -t "${SESSION_NAME}:2" "bash -lc '${CMD3}; exec \$SHELL'" C-m
|
| 103 |
-
|
| 104 |
-
tmux select-window -t "${SESSION_NAME}:0"
|
| 105 |
-
|
| 106 |
-
echo "tmux 会话 ${SESSION_NAME} 已创建。"
|
| 107 |
-
echo "使用命令查看: tmux attach -t ${SESSION_NAME}"
|
| 108 |
-
}
|
| 109 |
-
|
| 110 |
-
main() {
|
| 111 |
-
ensure_tmux_installed
|
| 112 |
-
create_tmux_windows_and_run
|
| 113 |
-
}
|
| 114 |
-
|
| 115 |
-
main
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
G0_Images/g0_ros2_v3_client/g0_hs_start_v3_1-lite-client.sh
DELETED
|
@@ -1,141 +0,0 @@
|
|
| 1 |
-
#!/usr/bin/env bash
|
| 2 |
-
set -euo pipefail
|
| 3 |
-
|
| 4 |
-
# ------------------ 循环输入:EXEC_MODE ------------------
|
| 5 |
-
while true; do
|
| 6 |
-
echo "请输入执行模式(0 或 1,按 q 退出):"
|
| 7 |
-
echo "0: 初次执行(docker run,并拷贝权重文件)"
|
| 8 |
-
echo "1: 二次执行(docker start,仅一键拉起双系统Docker容器)"
|
| 9 |
-
read -r EXEC_MODE
|
| 10 |
-
|
| 11 |
-
if [[ "$EXEC_MODE" == "q" ]]; then
|
| 12 |
-
echo "已退出。"
|
| 13 |
-
exit 0
|
| 14 |
-
fi
|
| 15 |
-
|
| 16 |
-
if [[ "$EXEC_MODE" == "0" || "$EXEC_MODE" == "1" ]]; then
|
| 17 |
-
break
|
| 18 |
-
else
|
| 19 |
-
echo "输入无效,请重新输入。"
|
| 20 |
-
fi
|
| 21 |
-
done
|
| 22 |
-
|
| 23 |
-
# ------------------ 循环输入:USE_QWEN_FLAG ------------------
|
| 24 |
-
while true; do
|
| 25 |
-
echo "是否启用 VLM 的 Qwen 模型?(0 或 1,按 q 退出)"
|
| 26 |
-
echo "0: 不启用(使用默认 Gemini,注意宿主机需正确配置代理)"
|
| 27 |
-
echo "1: 启用(宿主机无需代理)"
|
| 28 |
-
read -r USE_QWEN_FLAG
|
| 29 |
-
|
| 30 |
-
if [[ "$USE_QWEN_FLAG" == "q" ]]; then
|
| 31 |
-
echo "已退出。"
|
| 32 |
-
exit 0
|
| 33 |
-
fi
|
| 34 |
-
|
| 35 |
-
if [[ "$USE_QWEN_FLAG" == "0" || "$USE_QWEN_FLAG" == "1" ]]; then
|
| 36 |
-
break
|
| 37 |
-
else
|
| 38 |
-
echo "输入无效,请重新输入。"
|
| 39 |
-
fi
|
| 40 |
-
done
|
| 41 |
-
|
| 42 |
-
# ------------------ 变量定义 ------------------
|
| 43 |
-
ckpt_dir_name="G0_Plus_P&P"
|
| 44 |
-
ckpt_id="282276"
|
| 45 |
-
|
| 46 |
-
if [[ "$USE_QWEN_FLAG" == "0" ]]; then
|
| 47 |
-
vlm_use_qwen="0"
|
| 48 |
-
else
|
| 49 |
-
vlm_use_qwen="1"
|
| 50 |
-
fi
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
echo "------------------当前配置------------------"
|
| 54 |
-
echo "Checkpoint 目录:${ckpt_dir_name}"
|
| 55 |
-
echo "Checkpoint ID:${ckpt_id}"
|
| 56 |
-
echo "VLM 使用 Qwen 模型:${vlm_use_qwen}"
|
| 57 |
-
echo "------------------------------------------"
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
DEFAULT_RLROBOT_PORT="180"
|
| 61 |
-
echo "请输入要使用的机器人端口ID 10.42.0.<PORT>(回车使用默认:${DEFAULT_RLROBOT_PORT}):"
|
| 62 |
-
read -r USER_RLROBOT_PORT
|
| 63 |
-
|
| 64 |
-
if [[ -z "$USER_RLROBOT_PORT" ]]; then
|
| 65 |
-
rlrobot_port="$DEFAULT_RLROBOT_PORT"
|
| 66 |
-
else
|
| 67 |
-
rlrobot_port="$USER_RLROBOT_PORT"
|
| 68 |
-
fi
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
DEFAULT_CONTAINER="g0_ros2_v3_1-lite"
|
| 73 |
-
|
| 74 |
-
echo "【最后一项】请输入要使用的 Docker 容器名称(回车使用默认:${DEFAULT_CONTAINER}):"
|
| 75 |
-
read -r USER_CONTAINER_INPUT
|
| 76 |
-
|
| 77 |
-
if [[ -z "$USER_CONTAINER_INPUT" ]]; then
|
| 78 |
-
CONTAINER="$DEFAULT_CONTAINER"
|
| 79 |
-
else
|
| 80 |
-
CONTAINER="$USER_CONTAINER_INPUT"
|
| 81 |
-
fi
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
# ------------------ 根据 EXEC_MODE 执行不同命令 ------------------
|
| 86 |
-
|
| 87 |
-
if [[ "$EXEC_MODE" == "0" ]]; then
|
| 88 |
-
echo "执行模式 0:初次执行,启动容器..."
|
| 89 |
-
docker run -itd --name "$CONTAINER" \
|
| 90 |
-
--network host --gpus all --shm-size 256G -e DISPLAY="$DISPLAY" \
|
| 91 |
-
-v /tmp/.X11-unix:/tmp/.X11-unix:rw \
|
| 92 |
-
-v "$HOME/g0_ros2_v3/data":/data \
|
| 93 |
-
-v /usr/local/cuda-12.4:/usr/local/cuda-12.4:ro \
|
| 94 |
-
-e CUDA_HOME=/usr/local/cuda-12.4 \
|
| 95 |
-
-e LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64:${LD_LIBRARY_PATH:-} \
|
| 96 |
-
-u ros g0:ros2-v3.1-lite-client /bin/bash
|
| 97 |
-
|
| 98 |
-
echo "拷贝权重文件...拷贝配置文件..."
|
| 99 |
-
|
| 100 |
-
docker exec -it "$CONTAINER" bash -lc "\
|
| 101 |
-
cp -f /data/docker_g0_hs_start_v3_1-lite.sh /home/ros/docker_g0_hs_start_v3_1-lite.sh && \
|
| 102 |
-
mkdir -p /home/ros/g0_ros2/galaxea_0/google && \
|
| 103 |
-
rm -rf /home/ros/g0_ros2/galaxea_0/google && \
|
| 104 |
-
cp -a /data/google /home/ros/g0_ros2/galaxea_0/google && \
|
| 105 |
-
mkdir -p /home/ros/g0_ros2/galaxea_0/runs/pick_and_place_ckpt && \
|
| 106 |
-
rm -rf /home/ros/g0_ros2/galaxea_0/runs/pick_and_place_ckpt && \
|
| 107 |
-
cp -a /data/${ckpt_dir_name} /home/ros/g0_ros2/galaxea_0/runs/pick_and_place_ckpt && \
|
| 108 |
-
mv -f /home/ros/g0_ros2/galaxea_0/runs/pick_and_place_ckpt/model_${ckpt_id}.pt \
|
| 109 |
-
/home/ros/g0_ros2/galaxea_0/runs/pick_and_place_ckpt/model_100000.pt || true && \
|
| 110 |
-
echo \"export FASTRTPS_DEFAULT_PROFILES_FILE=/home/ros/super_client_configuration_file.xml\" >> /home/ros/.bashrc && \
|
| 111 |
-
sed \"s/RLROBOT_PORT/${rlrobot_port}/g\" \
|
| 112 |
-
/home/ros/super_client_configuration_file.xml.tpl \
|
| 113 |
-
> /home/ros/super_client_configuration_file.xml && \
|
| 114 |
-
cd /home/ros && \
|
| 115 |
-
chmod +x docker_g0_hs_start_v3_1-lite.sh && \
|
| 116 |
-
./docker_g0_hs_start_v3_1-lite.sh ${vlm_use_qwen}"
|
| 117 |
-
|
| 118 |
-
else
|
| 119 |
-
echo "执行模式 1:将一键拉起双系统Docker容器,不进行拷贝。"
|
| 120 |
-
if ! docker inspect "$CONTAINER" >/dev/null 2>&1; then
|
| 121 |
-
echo "错误:容器 '$CONTAINER' 不存在。" >&2
|
| 122 |
-
exit 1
|
| 123 |
-
fi
|
| 124 |
-
|
| 125 |
-
is_running=$(docker inspect -f '{{.State.Running}}' "$CONTAINER")
|
| 126 |
-
|
| 127 |
-
if [ "$is_running" = "true" ]; then
|
| 128 |
-
echo "容器 '$CONTAINER' 已在运行,跳过 docker start。"
|
| 129 |
-
else
|
| 130 |
-
echo "容器 '$CONTAINER' 未运行,正在启动..."
|
| 131 |
-
docker start "$CONTAINER" || { echo "启动失败"; exit 1; }
|
| 132 |
-
fi
|
| 133 |
-
docker exec -it "$CONTAINER" bash -lc "\
|
| 134 |
-
cp -f /data/docker_g0_hs_start_v3_1-lite.sh /home/ros/docker_g0_hs_start_v3_1-lite.sh && \
|
| 135 |
-
cd /home/ros && \
|
| 136 |
-
chmod +x docker_g0_hs_start_v3_1-lite.sh && \
|
| 137 |
-
./docker_g0_hs_start_v3_1-lite.sh ${vlm_use_qwen}"
|
| 138 |
-
fi
|
| 139 |
-
|
| 140 |
-
echo "执行完成!进入容器并附着 tmux 会话..."
|
| 141 |
-
docker exec -it "$CONTAINER" bash -lc "tmux a"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
G0_Images/g0_ros2_v3_client/g0_ros2-v3.1-lite-client.tar
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:7eacf674d4403e31e43e2d5e3ff23978b86bf1eddc2d1d6899e70fa05efe113c
|
| 3 |
-
size 19851821056
|
|
|
|
|
|
|
|
|
|
|
|