Before writing this week’s reflection, I would like to express how blessed I feel to be born in such a great era. Thanks to the community, thanks to the open source repositories, and the universities that open sourced their lectures, learning has never been more accessible…
Data
Inspired by Stanford CS336 | Language Modeling from Scratch, I didn’t jump right into training large models. Instead, I started with a small model. This quick feedback loop provides 2 major benefits:
- I can find a good mixture for my data (according to lecture 9).
- I can test if my data is actually in good shape.
This week, I was blocked by the 2nd point. I accidentally let codex introduce an ambiguous state into my observation space. The observation.state.target in my LeRobot datasets was supposed to refer to the robot’s target pose, but the agent misunderstood it as the target pose of the object on the table.
Experiments
As my experiments accumulated, my HF_HOME directory became jammed with noisy, badly named experiment folders and logs. I decided it was time to organize everything. I recalled what I learned from the Xiaojun’s podcast, where she interviewed Saining Xie. Saining shared a habit he learned from Kaiming He.
Keep a spreadsheet (or detailed log) to record each experiment, ensuring every experiments clearly tells you what specific signal or lesson was learned. I tried to replicate this approach. Here are my newly organized experiment logs:
├── DATA-PressBlueButton_v1_3real.md
├── DATA-PressBlueButton_v2_contains_backup.md
├── DATA-PressBlueButton_v3_no_back_up.md
├── DATA-ReachBlueButton_v1_sim_110.md
├── DATA-ReachBlueButton_v2_sim_1k.md
├── DATA-ReachBlueButton_v3_sim_110_gripper0_notarget.md
├── DATA-ReachPressBlueButton_v1_sim110_real_8.md
├── DATA-ReachPressBlueButton_v2_sim110_real_8.md
├── DATA-ReachPressBlueButton_v3_sim110_real_8.md
├── EVAL-Zeroshot_GR00T1p7_DROID_v1.md
├── TRAIN+EVAL-PressBlueButton_v1.md
├── TRAIN+EVAL-ReachBlueButton_v1_sim1000.md
└── TRAIN+EVAL-ReachBlueButton_v3_sim_110_gripper0_notarget_deploy.md
Robot Safety
While the models were training, I spent some time integrating Daniel Morton and Marco Pavone’s work on 📄Safe, Task-Consistent Manipulation with Operational Space Control Barrier Functions.
This is something I have wanted to do for a while, and I finally got some time to play with it. Although there is still a slight issue with the orientation of the end-effector, hey, at least the end-effector stops moving when it should, even if I keep pressing the move command! The Control Barrier Function successfully prevents the Franka Research 3 from crashing into its joint limits!