hexapod-robot-simulator

by mithi

A hexapod robot simulator built from first principles

543 Stars 69 Forks Last release: Not found MIT License 460 Commits 5 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Build Status codecov Code Climate HitCount License: MIT Code style: black PRs welcome! first-timers-only

Mithi's Hexapod Robot Simulator

Announcement

  • Check out my rewrite in Javascript
  • Now live at: https://hexapod.netlify.app/
  • It's like 10000000x faster!

Features

| | | | | |---------|---------|---------|---------| |Twisting turning and tilting|||Adjusting camera view|

| STATUS | FEATURE | DESCRIPTION | |---|-----------|--------------| | πŸŽ‰ | Forward Kinematics | Given the angles of each joint, what does the robot look like?| | πŸŽ‰ | Inverse Kinematics | What are the angles of each joint to make the robot look the way I want? Is it even possible? Why or why not? | | πŸŽ‰ | Uniform Movements | If all of the legs behaved the same way, how will the hexapod robot as a whole behave? | | πŸŽ‰ | Customizability | Set the dimensions and shape of the robot's body and legs. (6 parameters) | | πŸŽ‰ | Usability | Control the camera view, pan, tilt, zoom, whatever. | | πŸŽ‰ | Simplicity | Minimal dependencies. Depends solely on Numpy for calculations. Uses only Plotly Dash for plotting, Dash can be safely replaced if a better 3d plotting library is available. | | ❗ | Stability Check (WIP) | If we pose the robot in a particular way, will it fall over? | | ❗ | Fast | Okay, it's not as fast as I wanted, but when run locally, it's okay | | ❗ | Bug-free | Fine, right now there's still room for improvement | | ❗ | Well-tested | Yeah, I need to compile test cases first |

Preview

|image|image| |----|----| | image | image |

Requirements

  • [x] Python 3.8.1
  • [x] Plotly Dash 1.10.0
  • [x] Plotly Dash Daq 0.4.0
  • [x] Numpy 1.18.1
  • [x] See also ./requirements.txt

Run

$ python index.py
Running on http://127.0.0.1:8050/

⚠️ Known Issues

Screenshots

| Kinematics| |---| | IK|

Conventions and Algorithms

Notes

  • Now live on https://hexapod-robot-simulator.herokuapp.com ! BUT (and a big one) I highly suggest that you run it locally. When run locally, it's pretty speedy! On the other hand, the link above is barely usable.

  • This implementation uses matrices, NOT quaternions. I'm aware that quaternions is far superior in every single way. In the (un)forseeable future, maybe?

  • Honestly, my Inverse Kinematics algorithm and orientation algorithm is just something I came up with based on what I remember back in college plus browsing through the Mathematics Stack Exchange. It's just the most intuitive that I can think of. If you want something closer to the state-of-the-art, maybe checkout Unity's Fast IK or ROS IKFast.

  • Don't be mean! Contributor Covenant

πŸ€— Contributors

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.