My first internship, at NextUp Robotics (2024). The arm was supplied; my job was to make it move on command — bring it up in ROS 2, plan motion through MoveIt, and get the same trajectories running in simulation and on the real hardware.
The arm running a MoveIt-planned sequence on real hardware — the same interfaces that drove it in simulation, pointed at the physical robot.
Getting here honestly is most of the work: a wrong sign in a transform or a joint limit off by a few degrees is harmless in sim and swings a real arm the wrong way. You check everything twice before you power the motors.
The same arm in a physics simulator — its real URDF and link meshes loaded into PyBullet, running the reach through the joint chain before any of it touches real hardware. Checking motion in sim first is how you catch a bad sign or a joint limit while it's still harmless.
This was the groundwork. The teleoperation and dexterous-hand work I did later at Nferent AI is the same idea taken further — a human driving the arm live through a controller instead of planned trajectories from a keyboard. This is where I learned the pipeline that the rest of it is built on.
Reserved for the failure log: what fought back on this build and how it got fixed. Write-up in progress.