top of page
Screenshot 2024-09-23 at 11.26.50 PM.png

The EvoSpider

The EvoSpider is quadruped robot with 3 degrees of motion in the x, y, and z axis. This robot was a project that I contributed to at the company Evodyne Robotics. The goal of this project was to take optimally design the EvoSpider as well as make it function using the arduino nano as a microcontroller. This project touches on three crucial aspects of robotics design, electronics & hardware, and software.

Screenshot 2024-09-23 at 11.26.50 PM.png
frame v7.png
OneLegNew v33.png

01

The Design

The design of this quadruped robot revolves around these 4 factors:

  • Stability: The symmetrical design and even weight distribution contribute to overall stability, making the EvoSpider well-suited for navigating uneven terrain.

  • Maneuverability: The compact frame and articulated joints allow for agile movements and tight turns, making the robot versatile in different environments.

  • Modularity: The modular leg design simplifies maintenance and potential upgrades, making the EvoSpider adaptable to future requirements. Additionally the center body is an empty compartment that conveniently stores the electronics of the robot while also allowing for crucial components to be accessible.

  • Efficiency: A well-designed quadruped should be energy-efficient, and the EvoSpider is designed to minimize unnecessary complexity and weight, improving efficiency of the robot.

02

Inverse Kinematics

To achieve precise and calculated motion, I used inverse kinematics to determine the necessary joint angles for each leg. By inputting the desired x, y, and z coordinates for the leg's end effector (the foot), the inverse kinematics algorithm calculated the corresponding angles for the rotator, hip, and knee joints. This process ensured that the leg moved smoothly and accurately to the target position, enabling the EvoSpider to execute complex movements and maintain stability.

Screenshot 2024-09-23 at 11.41.59 PM.png
Screenshot 2024-09-23 at 11.39.16 PM.png
Screenshot 2024-09-23 at 11.38.51 PM.png
Screenshot 2024-09-23 at 11.44.15 PM.png

03

Implementation

This is my implementation of the mathematical calculations for kinematics and inverse kinematics in C++. Since C++ trigonometric functions only accept radian values, it was essential to incorporate a conversion from degrees to radians into my calculations. I then used these calculations to write animations for the EvoSpider.

04

Phases and Animations

To streamline the process under time constraints, I decided to implement a two-legged walking pattern for the EvoSpider. To create the walking animation, I divided the motion into distinct phases. By utilizing the previously calculated inverse kinematics, I could easily input the desired leg positions for each phase. I then integrated the animation into the command line interface, enabling me to communicate with the EvoSpider and initiate the animation. The command line also provided the flexibility to set the robot's orientation to 90 degrees and turn it on or off as needed, streamlining the testing process.

Screenshot 2024-09-23 at 11.47.45 PM.png
Screenshot 2024-09-23 at 11.47.53 PM.png

05 EvoSpider Live Demo

Further Steps: In the future I aim to create more animations such as sitting, crouching, turning, and moving backwards. I would also like to implement a one leg at a time walk and adjust the body to the current position in order to maintain balance. 

Challenges + Learning: The most challenging aspect of this project was the consistent iterations in the actual design of the robot which would then call for a different calculation of inverse kinematics. In order to counteract this issue, I created universal calculations with easily modifiable variables.

bottom of page