Run your checkpoint

The controller does not change. 4 still starts UMISkill with conf/skills/pick.yaml. The only edit is which file the policy server loads.

In conf/deployment/localhost.yaml:

policy_checkpoint: models/pick_example/checkpoints/latest.ckpt

That path is relative to the project root, which is where you launch the server. Restart the server so it reads the new value. A server left up from Tutorial 4 is still holding the old checkpoint.

solarian run-service pick

Restart the robot and the controller if they are not already up. Simulation is the right place to look at a smoke-test checkpoint: press 1 for the reach pose, confirm the cube is in the wrist image, press 4.

What you should see depends on the run. A one-epoch smoke test may only twitch. A full run on the example dataset should move toward the object the dataset contains. If the dataset's object is not a red cube, swap the scene's geom for something shaped like the demonstrations, or accept that the policy is hunting for an object you did not put in frame.

Press 0 to take the arm back. That is still MoveSkill. The policy skill stops because both command right_arm.

When the server will not start

The checkpoint path is wrong, or you started the server from a directory that is not the project. models/pick_example/... is relative. From anywhere else it does not exist, and the message says so.

The skill YAML does not contain the path. It contains ${deployment.policy_checkpoint}. Editing pick.yaml to a hardcoded path works once and then breaks on the Pi, which is why the deployment file is the place.

On the real robot, set policy_checkpoint in lab.yaml to a path the Pi can read. Copy the models/pick_example directory there, or train on the Pi if you enjoy waiting. Then the same 4, with sim=false, from On the real arm.

Next: build a recorder so the next dataset is yours. Lumi.

Was this page helpful?