I implemented a heap data structure (priority queue) and A* Search Algorithm, using Euclidean distance to the goal as an admissible heuristic.
I implemented numerical integrators for Euler’s Method and Velocity Verlet to show the physical simulation for a simple 1 degree-of-freedom robot system. This system models a 1 DOF robot arm as a frictionless simple pendulum with a rigid massless rod and idealized motor.
I rendered the forward kinematics of an arbitrary robot, given an arbitrary kinematic specification by computing matrix coordinate frame transforms for each link and joint of the robot based on the parameters of its hierarchy of joint configurations. I also implemented Axis-Aligned Bounding Box (AABB) collision detection, using AABB/Sphere tests. The red wireframe that is highlighted on the robot shows the part of the robot that is colliding with a part of the environment or obstacle (collision detection).
I implemented inverse kinematics through gradient descent optimization with both the Jacobian Transpose and Jacobian Pseudoinverse methods, so that the robot has position control of its end effector.
I implemented the RRT-Connect Search Algorithm to be used for a collision-free motion planner to enable the robot to navigate from a random configuration in the world to its home configuration (or “zero configuration”). The motion planner renders yellow “breadcrumb” indicators of base positions explored, and once a viable motion plan is found, the path is highlighted by turning red.