启动VLA Server并启动客户端,执行抓取与放置任务(Pick & Place Anything v2)。当用户提到"启动vla server"、"启动客户端"、"抓取放置"、"pick and place"、"运行抓取任务"时触发。
本技能主要负责启动抓取前向推理服务端 (VLA Server) 及执行端客户端 (Client)。 注意:执行前须确认已经利用 0-init-robot 进行过初始化操作。
本技能只做两件事及一个测试指令:
在 vla_server tmux 会话中启动服务端:
tmux new-session -d -s vla_server 'source ~/miniconda3/etc/profile.d/conda.sh; conda activate openpi_copy; cd /home/user/yifan.li/giga_brain_0_v0.1.1; export PYTHONPATH=/home/user/yifan.li/giga_brain_0_v0.1.1/src/:/home/user/yifan.li/giga_brain_0_v0.1.1/packages/openpi-client/src/; python scripts/serve_policy.py --env ALOHA policy:checkpoint --policy.config pi05_wm_pick_place_anything_v2 --policy.dir /home/user/yifan.li/checkpoint/pi05_wm_pick_place_anything_v2/50000'
验证: 看到 server listening on 0.0.0.0:8000 即就绪。可以使用 tmux attach -t vla_server 观察。
只需要启动一次,在后续的多轮采集中都可以复用这个服务端。
在 vla_client tmux 会话中启动客户端:
tmux new-session -d -s vla_client 'cd /home/user/users/fenglv/pick_up_anything_client; bash run.sh'
可以通过 tmux attach -t vla_client 或者 tail -f /home/user/users/fenglv/pick_up_anything_client/client.log 观察日志。
当服务端和客户端就绪后,可通过如下指令发送控制任务,注意只支持一次pick and place一个物体,所以指令格式必须符合'把A放到B里'的格式,如果有多个物体需要操作,则应当多次发送指令。
curl --noproxy '*' -sk -X POST https://101.126.29.229:11080/api/send_command \
-H 'Content-Type: application/json' \
-d '{"text": "把香蕉放到篮子里"}'
这个技能有bug,当他抓起东西并放下后,有一定几率认为还没完成任务,client终端会一直在重试,表现为不断的DONE_CHECK日志输出。这时可以使用understand-three-view-images技能,查看是否已经完成,如果完成了,直接重启client(先tmux detach,再tmux kill-session -t vla_client,最后重新tmux new-session启动);如果没完成,夹爪上还夹着物体,则等待后再看一次图像,如果夹爪上没物体了,也没完成,说明夹取失败,同样重启client重试。
如果需要查看客户端日志,可以执行 tail -f /home/user/users/fenglv/pick_up_anything_client/client.log