Inverse kinematics and trajectory planning for a lab tube-handling arm
Write forward and inverse kinematics for a four-axis arm, plan smooth trajectories that respect joint limits, and simulate a rack-to-rack transfer within 1 mm and 4 seconds.
Industry project · for Corvid Lab Automation, a start-up building a benchtop four-axis arm that moves sample tubes between racks in diagnostic labs
Corvid's arm moves blood and swab sample tubes from an input rack to a centrifuge rack and back. Labs run hundreds of tubes a shift, and a dropped or splashed tube means a patient has to give another sample. The mechanical prototype exists. The software lead needs a clean kinematics and motion-planning library that the rest of the team can build on.
The arm has four joints: - J1, base rotation, ±170°; - J2, shoulder, −10° to 120°; - J3, elbow, −135° to 135°; - J4, wrist pitch, which keeps the gripper pointing straight down.
The base is 0.12 m tall, the upper arm 0.25 m, the forearm 0.22 m, and the wrist-to-fingertip offset 0.08 m. Joint speed limits are 120°/s for J1 to J3 and 180°/s for J4, and acceleration is limited to 400°/s².
A tube transfer goes like this: move above the source tube, descend 60 mm vertically, close the gripper, rise 60 mm vertically, move above the target slot, descend, open, rise. The vertical moves must be straight lines within 0.5 mm so tubes do not scrape the rack. The whole transfer should take 4 s or less, and the tip must not jerk, so that liquid does not splash.
You will: - set up the kinematic model with Denavit–Hartenberg parameters; - write forward kinematics with tests; - derive and code analytical inverse kinematics with both elbow solutions and limit checks; - plan joint-space and straight-line Cartesian trajectories with smooth profiles; - simulate the arm in PyBullet, CoppeliaSim or Webots and measure accuracy and cycle time.
You need no robot. Everything runs in Python and a free simulator.
Done looks like a tested Python library, a simulated transfer that meets 1 mm positioning, 0.5 mm straightness and 4 s cycle time, and a short report for the software lead.
Kinematics spec + tested FK and IK modules + trajectory planner + simulation script with logs + accuracy and cycle-time report
Stack: Python, NumPy, pytest, PyBullet, CoppeliaSim or Webots, Matplotlib
- Correct kinematics30
FK and IK match each other on at least 1,000 random reachable poses within 0.01 mm, both elbow solutions are returned, and limits are enforced.
- Smooth, limited trajectories25
Joint and Cartesian trajectories respect speed and acceleration limits with continuous velocity and acceleration.
- Simulated performance25
The simulated transfer meets 1 mm positioning, 0.5 mm vertical straightness and 4 s cycle time, with logged evidence.
- Library quality10
Code is organised in modules with tests, docstrings and one command to run the demo.
- Report10
A short report gives results, known singularities and limits, and next steps for the hardware.
Pass 60% · Merit 75% · Distinction 90%
Engineering Students
Diploma, B.Tech, B.E., BCA, MCA, or M.Tech students seeking practical experience.
Aspiring Developers
Developers who want to build proof-of-work capstone projects for tech resumes.
Job Seekers
Graduates looking for AI-evaluated code review & verified industry credentials.