Back to blog

How we simulate a robot cell before you buy the robot

Many cobot purchases are decided from a datasheet and a sales demo. Whether the arm reaches the far corner of your pallet, or keeps up with your line, you find out after it arrives.

We answer those questions first, in simulation. This post shows how we do it, step by step, and where the method stops. If you want the results of one full run, four cobots on the same palletizing task, read Chinese vs European cobots: what a simulation shows before you buy.

1. You send us the task

What we need from you:

Within two business days we reply with what we would simulate, what else we need and a fixed price.

2. We load each robot's model into MuJoCo

We use MuJoCo, an open-source physics simulator (Apache 2.0 licence) maintained by Google DeepMind. It runs on an ordinary server, no GPU needed.

The robot model is the file that describes the arm's links, joints, joint limits and 3D shapes. Where the manufacturer publishes one, we use it. Dobot ships URDF files (a standard robot description format) for its CR arms in its official ROS 2 repository, and Fairino does the same in its own repository. We convert those to MuJoCo's format. For the UR5e and the UFactory xArm 7 we used the ready-made models from MuJoCo Menagerie, a model library curated by Google DeepMind, not files from the manufacturers. The report always says which source each robot came from.

Joint speed limits, payload and reach come from each maker's datasheet. Where a datasheet is unclear, the report says what we assumed.

3. We build your station

From your photos and dimensions we place the conveyor, table, pallet or machine, and the parts. Simple shapes at the right size and position are enough for reach and timing.

In our own demo the station was a conveyor feeding a 0.48 × 0.40 m pallet, with eight boxes of 180 × 140 × 120 mm and 3 kg each, picked by a suction tool of about 0.5 kg.

4. We program the task

We write the path the tool should take: approach, pick, lift, transfer, place. Then we solve the joint angles along it, many times per second. Every candidate robot gets the same path and speed profile.

We check each segment against the joint speed limits. If any joint would have to move faster than its datasheet allows, that segment is slowed down until it fits.

Speed is a setting you agree with us. In the demo we capped the tool at about 1 m/s, the "typical" tool speed in the Fairino and older UR datasheets (and the maximum for the xArm 7). That cap is our modelling choice, not a number from a standard: the allowed speed of a collaborative cell comes out of its risk assessment. As Universal Robots puts it, "a robot in itself is never safe".

Dobot CR5A, pick and place. Built from Dobot's official URDF model. Motion only: the gripper is a placeholder and the part simply follows the tool. The cycle in this demo was assumed, so watch it for the motion, not the throughput. Plays at 2× speed.

5. We measure cycle time, reach and payload

The simulation gives you three numbers per robot, on your layout.

Cycle time and parts per shift. In our demo all four arms (Fairino FR5, UFactory xArm 7, Dobot CR5A, UR5e) averaged 5.05 s per box, about 5,700 boxes in an 8-hour shift with no stops. They tie because at about 1 m/s no joint on any of them reaches its limit. The UR5e and the Dobot have higher top speeds on paper, but at the ~1 m/s cap we set for this demo that top speed is not used. A fenced or faster-rated cell was not modelled.

Reach and joint limits. The simulation finds the poses that fail. On the Fairino FR5, one arm configuration could not reach the pallet because the base joint hit its ±175° limit. Another configuration worked.

Payload. A 3 kg box plus a 0.5 kg tool is 3.5 kg. That leaves room on the 5 kg arms, but it is exactly the rated payload of the xArm 7, with no margin left. The report flags it.

6. Optional: physics and a camera

The standard study models motion and timing, not forces. When grip or load matters, we add physics. In our Dobot CR5A demo the arm is driven by joint torques, the suction cup is modelled as a 200 N holding force, and the parts are loose bodies with mass and friction. An overhead camera renders depth and a part mask, and the robot picks each part from what the camera sees, not from the simulator's hidden coordinates.

Physics and camera, Dobot CR5A. Four parts of 0.5–2 kg picked and placed, none dropped in one run. The camera image is ideal (no noise or reflections), so real vision will be less accurate. Joint torque limits are our assumption, because Dobot publishes payload only. Plays at 1.1× speed.

A 6 kg block, above the rated 5 kg, made the shoulder joint hit its torque limit. Treat that as an illustration: the limits are our estimate, and a real arm would more likely stop with an overload error.

7. You get video and a short report

For each robot: a video of your task, cycle time, parts per shift, reach and payload check, and a payback estimate. Assumptions sit next to the numbers, plus a list of what to check on the real machine.

The payback estimate is simple arithmetic. In our example, cell cost = arm price + €25,000 for gripper, guarding and integration; savings = one operator on each of two shifts at €2,000 a month, assuming the robot fully replaces that operator. With indicative dealer prices that gives 7.9 months for the Fairino FR5 up to 13.8 months for the UR5e. It leaves out service, energy and changeovers, and your inputs will differ.

What a simulation can't tell you

Free maker tools such as Universal Robots' UR Studio calculate cycle time, but for that maker's arms only. We put Chinese and European arms on the same task, and we are paid by you, not by any robot maker.

Timeline and price

One task with two or three candidate robots costs from €2,900, fixed fee, and takes one to two weeks. Bigger cells, more robots or the physics model are quoted as a fixed fee before we start. When you decide to buy, we can also handle the China side through our Chinese robotics consulting. Full details are on the robot simulation service page.

Simulate your task before you buy

Tell us the task and the robots you are considering. We reply within two business days with the scope, the data we need and a fixed price.

Request a simulation