First time running HFM? Don't rush into long-horizon tasks
Community Discussion · Humanoid Robots

First time running HFM? Don't rush into long-horizon tasks

YanshiYanshiOct 272026/10/27 131 views

I compared HFM with the behavior cloning setup I'd built myself before, and actually ran it in simulation. Let me put the conclusion here first: what HFM saves you is the "accumulate data from scratch" part, but the body alignment work up front — not a single bit of that is saved.

What HFM is, in one sentence: it's a large model already trained on a huge amount of robot behavior data. You give it a task instruction, and it's responsible for generating the actions — you don't have to teach each joint how to move from scratch. The official line is it covers locomotion, manipulation, perception, reasoning, and long-horizon task planning, and supports swapping different robot bodies. Sounds comprehensive, but there are boundaries in practice.

I've been running embodied tasks in simulation for two months now, so this post follows my actual operating order.

First, preparation. This step is about aligning the body with the simulation environment first — beginners skip steps here most easily. Install the simulation environment, pick a body you already have — don't start with a compound body like dual arms plus a mobile base; start with a single arm on a fixed base, short chain, easy to localize errors. Then confirm the body's joint order matches the input order HFM expects. This step is tedious, but it's the source of all later problems. From my testing, if the joint order is off by one position, the model won't error out — it'll just give you an action that looks like it's moving but is actually going the opposite direction. Then set the workspace boundary, i.e. tell the system not to reach past the edge of the table.

I wrote a post before about doing zero-position calibration before powering up joint modules. Same logic in the HFM workflow — if the body isn't aligned, everything you tune afterward is wasted.

This preparation section took me about forty minutes.

When getting started, don't try a long-horizon task like "tidy up the room" right away. For the first instruction, pick "put the block on the table into the box on the left" — the reason is simple: single goal, clear spatial relationship, success or failure is obvious at a glance. Type this sentence into the instruction input box, hit enter, and a task decomposition view appears in the interface — HFM breaks the sentence into approach, grasp, move, place steps. This is the biggest difference from traditional behavior cloning: it decomposes on its own, no need to hand-write reward functions. Click run and watch the robot's actions in simulation. When it finishes, the interface gives a judgment of the completion state. My first run: the grasp step succeeded, the place was a bit off. Getting this loop to run through once counts as getting started.

Pitfalls — I hit three, ordered by frequency. If the instruction has vague words like "tidy it up" or "clean it up a bit," the decomposition view gives a plan that looks reasonable but isn't what you want. Anything quantifiable in the instruction, quantify it — position, quantity, order. After swapping the body, I reused the previous instruction directly without redoing joint alignment, and the actions were all scrambled — cross-body generalization is real, but it doesn't mean configuration-free. Give a long-horizon task five or more steps at once, and if some middle step fails, the rest collapses in a chain — get single steps working first, then stack up.

The third pit I still haven't fully gotten around. HFM does have long-horizon planning capability, but its tolerance for intermediate states isn't yet at the level where you can just let it be. Or maybe my body calibration isn't detailed enough — not necessarily right.

In one sentence: HFM lowers the barrier to "teaching the robot how to move," but it doesn't remove "letting the robot know where it is." Action advice: if you only have one simulated body on hand, today just run the shortest loop — "grasp and place" — following the flow above, expose the problems in the preparation and pitfalls sections first, then consider long-horizon tasks. Get it running, then talk about the rest.

2 replies

?
Ctrl + Enter to reply
Dexterous Hand Controller

Off-by-one in the joint order doesn't throw an error, it just gives you the opposite motion — that one's too real. I've been burned by the same thing when tuning teleoperation; you really can't skip the alignment step.

Embodied Deep
Reply to Dexterous Hand Controller

Right, the OP said being off by one bit doesn't throw an error, it just gives the reverse action. Let me add: swapping the body while reusing old commands will definitely cause chaos, and cross-body generalization also needs realignment.