Inverse Kinematics Math For A 2D Robotic Arm

Inverse Kinematics Math For A 2D Robotic Arm

An N-Jointed Arm is a robotic arm that is made up of N number of joints and N number of lengths, with each joint followed by a length.

Inverse Kinematics is the process of finding the needed rotation of each joint in a robotic arm given the lengths of each arm segment and the desired position of the arm’s end effector.

This post describes the math behind finding an inverse kinematics solution for a robotic arm with any number of joints. The context of this post is in a two-dimensional space.

A gif of the robot picking up boxes.

Remembering FRC: The 2015 Season

“The FIRST Robotics Competition (FRC) is an international high school robotics competition. Each year, teams of high school students, coaches, and mentors work during a six-week period to build robots capable of competing in that year’s game that weigh up to 125 pounds (57 kg). Robots complete tasks such as scoring balls into goals, placing inner tubes onto racks, hanging on bars, and balancing robots on balance beams. The game, along with the required set of tasks, changes annually” (“FIRST Robotics Competition.” Wikipedia, Wikimedia Foundation, 14 May. 2020. https://en.wikipedia.org/wiki/FIRST_Robotics_Competition).

A gif of the robot game.

Developing An Arcade Game About Robots

During college I was initially focusing on an emphasis in web-based game development alongside programming. For that purpose, I created several games in JavaScript.

This game simulates the 2018 FIRST Robotics Competition game. The goal of this game is to pickup yellow cubes and place or throw them on the blue side of one of several seesaws. While there are more cubes on your side of the seesaws, you get +1 points per second. There is an opponent that will attempt to place cubes on their side of the goals. You have 60 seconds to score more points than your opponent.

It can be played in any modern browser here: https://pycee.github.io/Firebears-Power_Up

A gif of the slime game demo.

Retrospective On My Turn-Based Combat Game Demo

During college, I was initially focusing on an emphasis on web-based game development alongside programming. For that purpose, I created several games in JavaScript.

With this small demo, I wanted to create a turn-based combat system where the player could enter combat with several differing groups of enemies. I call it Slime, named after a common enemy type in many fantasy-themed games. In the game, the player acts as a slime-monster and must fight several enemies in an arena.

It can be played in any modern PC browser here: https://pycee.github.io/Web_Slime/

An image of a guitar-shaped game controller

Mapping Out a Guitar Controller

The Rock Band guitar-controller is a form of Human Interface Device (HID). Many USB game controllers follow an HID-compliant standard. This standard allows us to read digital and analog inputs easily from any program.

My past work with this guitar-shaped controller was back in 2014 when I drove a robot around using the buttons on this controller.

A gif of a robot throwing a ball.

Remembering FRC: The 2014 Season

“The FIRST Robotics Competition (FRC) is an international high school robotics competition. Each year, teams of high school students, coaches, and mentors work during a six-week period to build robots capable of competing in that year’s game that weigh up to 125 pounds (57 kg). Robots complete tasks such as scoring balls into goals, placing inner tubes onto racks, hanging on bars, and balancing robots on balance beams. The game, along with the required set of tasks, changes annually” (“FIRST Robotics Competition.” Wikipedia, Wikimedia Foundation, 14 May. 2020. https://en.wikipedia.org/wiki/FIRST_Robotics_Competition).