Zima · 2025-12-07 · 10 hours
Goal: Complete second iteration of zima arm kinematic solver
What I did:
- wrote a kd tree and gradient descent based ik solver for zima's arm
What worked:
- Gained a much better understanding of forward kinematics and homogenous transformation matrices
- Evaluated inverse kinematic solving performance of kd tree approach (visualized below)
- 
- algorithm performance improves logarithimically with the amount of points sampled for the kd_tree
- Even without coordinate descent, the algorithm is able to find good solutions (see below). I evaluated this by generating random joint states, then calculating their end effector pose, and passing that into the ik algorithm
- Random arm pose (arm 1) vs ik solution (arm 2)
- 
- Tested finding ik solutions for various realistic end effector poses
- 
- Implemented Jacobian based solver, improving smoothness of solution space and reducing requirement for large pre generated estimates
- 
What failed:
- Accidentally only generated angles from 0-pi causing weird solutions once i started testing solving arbitrary xyzrpy coordinates
- fixed by generating within correct angle constraints
Key learning:
- Became much more familiar with kinematic chains
- potential future experiment: how well does this simple ik method hold up in under-constrained spaces (eg. 7dof arm)
- Cyclical Coordinate Descent is an alternative to gradient descent
- Jacobian based solver is not as complicated as i expected
Next session:
- Concrete next step
- Specific thing to try
Time spent: 10 hours