Robotics
ONNX
English
Chinese
real-world
dual-arm
whole body control
manipulation
zjt2656404169 commited on
Commit
b9a43c6
·
verified ·
1 Parent(s): 6d34989

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