- A bare minimum browser-based hexapod robot simulator built from first principles π·οΈ
- If you like this project, consider buying me a few β cups of coffee. π
You might be interested in checking out my rewrite in Javascript, live at: https://hexapod.netlify.app/ , which is like 10000000x faster. If you'd like to build you're own user interface with Node, you can download the algorithm alone as a package in the npm registry: Hexapod Kinematics Library. There is also a "fork" modified where you can use the app to control a physical hexapod robot as you can see in the gif below.
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 |
- Python 3.8.1
- Plotly Dash 1.18.1
- Plotly Dash Daq 0.5.0
- Numpy 1.19.5
- See also ./requirements.txt
$ python index.py
Running on http://127.0.0.1:8050/
- Modify default settings with ./settings.py
- Dark Mode is the default - modify page styles with ./style_settings.py
Check the Wiki for more additional information