https://github.com/mithi/hexapod-robot-simulator
A hexapod robot simulator built from first principles
https://github.com/mithi/hexapod-robot-simulator
dash hacktoberfest hexapod inverse-kinematics kinematics plotly plotly-dash plotly-example plotly-python robot robotics simulator
Last synced: 28 days ago
JSON representation
A hexapod robot simulator built from first principles
- Host: GitHub
- URL: https://github.com/mithi/hexapod-robot-simulator
- Owner: mithi
- License: mit
- Created: 2020-02-14T10:37:49.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-05-01T21:37:40.000Z (about 2 years ago)
- Last Synced: 2025-04-13T00:44:58.338Z (28 days ago)
- Topics: dash, hacktoberfest, hexapod, inverse-kinematics, kinematics, plotly, plotly-dash, plotly-example, plotly-python, robot, robotics, simulator
- Language: Python
- Homepage:
- Size: 2.27 MB
- Stars: 805
- Watchers: 21
- Forks: 114
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://ko-fi.com/minimithi)
[](https://travis-ci.com/github/mithi/hexapod-robot-simulator)
[](https://codecov.io/gh/mithi/hexapod-robot-simulator)
[](https://codeclimate.com/github/mithi/hexapod-robot-simulator)
[](https://codeclimate.com/github/mithi/hexapod-robot-simulator/trends/technical_debt)
[](https://hits.dwyl.com/mithi/hexapod-robot-simulator)
[](./LICENSE)
[](https://github.com/psf/black)
[](https://github.com/mithi/hexapod-robot-simulator/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
[](https://www.firsttimersonly.com/)# Mithi's Hexapod Robot Simulator
- 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](https://ko-fi.com/minimithi). 💕| | | | |
|---------|---------|---------|---------|
|||
||
# Announcement
You might be interested in checking out my [rewrite in Javascript](http://github.com/mithi/hexapod), 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](https://github.com/mithi/hexapod-kinematics-library). There is also [a "fork" modified where you can use the app to control a physical hexapod robot](https://github.com/mithi/hexapod-irl) as you can see in the gif below.
![]()
# Features
| 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
|||
|----|----|
|  |  |## Requirements
- [x] Python 3.8.1
- [x] Plotly Dash 1.18.1
- [x] Plotly Dash Daq 0.5.0
- [x] Numpy 1.19.5
- [x] See also [./requirements.txt](./requirements.txt)## Run
```bash
$ python index.py
Running on http://127.0.0.1:8050/
```- Modify default settings with [./settings.py](./settings.py)
- Dark Mode is the default - modify page styles with [./style_settings.py](./style_settings.py)## Screenshots
| |
|---|
| |## More Information
Check the [Wiki](https://github.com/mithi/hexapod-robot-simulator/wiki/Notes) for more additional information## 🤗 Contributors
- [@mithi](https://github.com/mithi/)
- [@philippeitis](https://github.com/philippeitis/)
- [@mikong](https://github.com/mikong/)
- [@guilyx](https://github.com/guilyx)
- [@markkulube](https://github.com/markkulube)








