├── .github
└── workflows
│ └── sphinx-docs.yml
├── .gitignore
├── LICENSE
├── README.md
├── docs
├── Makefile
├── _static
│ ├── firmware
│ │ ├── clock_tree.jpg
│ │ └── pin_allocation.jpg
│ ├── hardware
│ │ ├── 1_import_project.jpg
│ │ ├── 2_project_setting.jpg
│ │ ├── 3_import_setting.jpg
│ │ ├── 4_project_preview.jpg
│ │ ├── ProPrj_DOGlove_MainBoard.epro
│ │ ├── SCH_DOGlove_MainCircuit.pdf
│ │ └── onshape_model.jpg
│ ├── logo.png
│ └── quick_start
│ │ └── pcba
│ │ ├── BOM_DOGlove_MainBoard_DOGlove_MainBoard.xlsx
│ │ ├── Gerber_DOGlove_MainBoard.zip
│ │ └── PickAndPlace_DOGlove_MainBoard.xlsx
├── chapters
│ ├── getting_started.md
│ ├── the_firmware.md
│ ├── the_hardware.md
│ └── the_software.md
├── conf.py
├── hardware
│ ├── 01_circuit.rst
│ └── 02_mechanical.md
├── index.md
├── make.bat
└── quick_start
│ ├── 01_pcba.md
│ ├── 02_3d_print.md
│ ├── 03_flash_firmware.md
│ ├── 04_assemble_glove.md
│ └── 05_make_it_move.md
└── teaser.jpg
/.github/workflows/sphinx-docs.yml:
--------------------------------------------------------------------------------
1 | name: Build and Deploy Sphinx Docs
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 |
8 | permissions:
9 | contents: write
10 |
11 | jobs:
12 | docs:
13 | runs-on: ubuntu-latest
14 | steps:
15 | - name: Checkout
16 | uses: actions/checkout@v4
17 |
18 | - name: Set up Python
19 | uses: actions/setup-python@v5
20 | with:
21 | python-version: "3.11"
22 |
23 | - name: Install dependencies
24 | run: |
25 | pip install sphinx furo myst-parser
26 |
27 | - name: Build HTML
28 | run: |
29 | sphinx-build -b html docs/ docs/_build/html
30 |
31 | - name: Deploy to GitHub Pages
32 | uses: peaceiris/actions-gh-pages@v4
33 | with:
34 | github_token: ${{ secrets.GITHUB_TOKEN }}
35 | publish_dir: docs/_build/html
36 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | share/python-wheels/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 | MANIFEST
28 |
29 | # PyInstaller
30 | # Usually these files are written by a python script from a template
31 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
32 | *.manifest
33 | *.spec
34 |
35 | # Installer logs
36 | pip-log.txt
37 | pip-delete-this-directory.txt
38 |
39 | # Unit test / coverage reports
40 | htmlcov/
41 | .tox/
42 | .nox/
43 | .coverage
44 | .coverage.*
45 | .cache
46 | nosetests.xml
47 | coverage.xml
48 | *.cover
49 | *.py,cover
50 | .hypothesis/
51 | .pytest_cache/
52 | cover/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | .pybuilder/
76 | target/
77 |
78 | # Jupyter Notebook
79 | .ipynb_checkpoints
80 |
81 | # IPython
82 | profile_default/
83 | ipython_config.py
84 |
85 | # pyenv
86 | # For a library or package, you might want to ignore these files since the code is
87 | # intended to run in multiple environments; otherwise, check them in:
88 | # .python-version
89 |
90 | # pipenv
91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
94 | # install all needed dependencies.
95 | #Pipfile.lock
96 |
97 | # UV
98 | # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99 | # This is especially recommended for binary packages to ensure reproducibility, and is more
100 | # commonly ignored for libraries.
101 | #uv.lock
102 |
103 | # poetry
104 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105 | # This is especially recommended for binary packages to ensure reproducibility, and is more
106 | # commonly ignored for libraries.
107 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108 | #poetry.lock
109 |
110 | # pdm
111 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
112 | #pdm.lock
113 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
114 | # in version control.
115 | # https://pdm.fming.dev/latest/usage/project/#working-with-version-control
116 | .pdm.toml
117 | .pdm-python
118 | .pdm-build/
119 |
120 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
121 | __pypackages__/
122 |
123 | # Celery stuff
124 | celerybeat-schedule
125 | celerybeat.pid
126 |
127 | # SageMath parsed files
128 | *.sage.py
129 |
130 | # Environments
131 | .env
132 | .venv
133 | env/
134 | venv/
135 | ENV/
136 | env.bak/
137 | venv.bak/
138 |
139 | # Spyder project settings
140 | .spyderproject
141 | .spyproject
142 |
143 | # Rope project settings
144 | .ropeproject
145 |
146 | # mkdocs documentation
147 | /site
148 |
149 | # mypy
150 | .mypy_cache/
151 | .dmypy.json
152 | dmypy.json
153 |
154 | # Pyre type checker
155 | .pyre/
156 |
157 | # pytype static type analyzer
158 | .pytype/
159 |
160 | # Cython debug symbols
161 | cython_debug/
162 |
163 | # PyCharm
164 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
165 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
166 | # and can be added to the global gitignore or merged into this file. For a more nuclear
167 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
168 | #.idea/
169 |
170 | # Ruff stuff:
171 | .ruff_cache/
172 |
173 | # PyPI configuration file
174 | .pypirc
175 |
176 | # Ignore all .DS_Store files
177 | **/.DS_Store
178 |
179 | # Ignore the build directory for Sphinx documentation
180 | docs/_build/
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2025 Tsinghua Embodied AI Lab (TEA Lab)
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # DOGlove: Dexterous Manipulation with a Low-Cost Open-Source Haptic Force Feedback Glove
2 |
3 | **Robotics: Science and Systems (RSS) 2025**
4 |
5 | Project Page |
6 | Paper |
7 | Documentation |
8 | 30min工作讲解
9 |
10 |
11 | [Han Zhang](https://doublehan07.github.io/)1,2,
12 | [Songbo Hu](https://hsb0508.github.io/)1,
13 | [Zhecheng Yuan](https://gemcollector.github.io/)1,2,3
14 | [Huazhe Xu](http://hxu.rocks/)1,2,3
15 |
16 | 1Tsinghua University,
17 | 2Shanghai Qi Zhi Institute,
18 | 3Shanghai AI Lab
19 |
20 |
21 |

22 |
23 |
24 | ## 🐣 Updates
25 | * **2025/04/28** — Initial commit.
26 | * **2025/05/11** — Added embedded firmware repository.
27 | * **2025/06/01** — Added MakerWorld link, PCBA files, and Onshape model link.
28 |
29 |
30 | 🚀 Content coming soon. Thanks for your patience!
31 |
32 | ## 🏷️ License
33 | This repository is released under the MIT license. See [LICENSE](LICENSE) for more details.
34 |
35 | ## 👍 Acknowledgement
36 | - Our wrist tracking code is adapted from [HTC Vive Tracker Python API](https://github.com/tianshengs/SteamVR_Tracking).
37 | - Our Franka control code is adapted from [UMI](https://github.com/real-stanford/universal_manipulation_interface) and [Data Scaling Laws](https://github.com/Fanqi-Lin/Data-Scaling-Laws).
38 | - Our 3D diffusion policy implementation is adapted from [3D Diffusion Policy](https://github.com/YanjieZe/3D-Diffusion-Policy) and [DemoGen](https://github.com/TEA-Lab/DemoGen).
39 | - The teleoperation baseline (AnyTeleop) is implemented from [Dex Retargeting](https://github.com/dexsuite/dex-retargeting).
40 |
41 | Contact [Han Zhang](https://doublehan07.github.io/) if you have any questions or suggestions.
42 |
43 | ## 📝 Citation
44 | If you find our work useful, please consider citing:
45 | ```console
46 | @article{zhang2025doglove,
47 | title={DOGlove: Dexterous Manipulation with a Low-Cost Open-Source Haptic Force Feedback Glove},
48 | author={Zhang, Han and Hu, Songbo and Yuan, Zhecheng and Xu, Huazhe},
49 | journal={arXiv preprint arXiv:2502.07730},
50 | year={2025}
51 | }
52 | ```
--------------------------------------------------------------------------------
/docs/Makefile:
--------------------------------------------------------------------------------
1 | # Minimal makefile for Sphinx documentation
2 | #
3 |
4 | # You can set these variables from the command line, and also
5 | # from the environment for the first two.
6 | SPHINXOPTS ?=
7 | SPHINXBUILD ?= sphinx-build
8 | SOURCEDIR = .
9 | BUILDDIR = _build
10 |
11 | # Put it first so that "make" without argument is like "make help".
12 | help:
13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14 |
15 | .PHONY: help Makefile
16 |
17 | # Catch-all target: route all unknown targets to Sphinx using the new
18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19 | %: Makefile
20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
21 |
--------------------------------------------------------------------------------
/docs/_static/firmware/clock_tree.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/firmware/clock_tree.jpg
--------------------------------------------------------------------------------
/docs/_static/firmware/pin_allocation.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/firmware/pin_allocation.jpg
--------------------------------------------------------------------------------
/docs/_static/hardware/1_import_project.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/hardware/1_import_project.jpg
--------------------------------------------------------------------------------
/docs/_static/hardware/2_project_setting.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/hardware/2_project_setting.jpg
--------------------------------------------------------------------------------
/docs/_static/hardware/3_import_setting.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/hardware/3_import_setting.jpg
--------------------------------------------------------------------------------
/docs/_static/hardware/4_project_preview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/hardware/4_project_preview.jpg
--------------------------------------------------------------------------------
/docs/_static/hardware/ProPrj_DOGlove_MainBoard.epro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/hardware/ProPrj_DOGlove_MainBoard.epro
--------------------------------------------------------------------------------
/docs/_static/hardware/SCH_DOGlove_MainCircuit.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/hardware/SCH_DOGlove_MainCircuit.pdf
--------------------------------------------------------------------------------
/docs/_static/hardware/onshape_model.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/hardware/onshape_model.jpg
--------------------------------------------------------------------------------
/docs/_static/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/logo.png
--------------------------------------------------------------------------------
/docs/_static/quick_start/pcba/BOM_DOGlove_MainBoard_DOGlove_MainBoard.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/quick_start/pcba/BOM_DOGlove_MainBoard_DOGlove_MainBoard.xlsx
--------------------------------------------------------------------------------
/docs/_static/quick_start/pcba/Gerber_DOGlove_MainBoard.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/quick_start/pcba/Gerber_DOGlove_MainBoard.zip
--------------------------------------------------------------------------------
/docs/_static/quick_start/pcba/PickAndPlace_DOGlove_MainBoard.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/docs/_static/quick_start/pcba/PickAndPlace_DOGlove_MainBoard.xlsx
--------------------------------------------------------------------------------
/docs/chapters/getting_started.md:
--------------------------------------------------------------------------------
1 | # Getting Started
2 |
3 | 🚀 Content coming soon. Thanks for your patience!
4 |
5 | ```{toctree}
6 | :hidden:
7 | :maxdepth: 1
8 |
9 | ../quick_start/01_pcba.md
10 | ../quick_start/02_3d_print.md
11 | ../quick_start/03_flash_firmware.md
12 | ../quick_start/04_assemble_glove.md
13 | ../quick_start/05_make_it_move.md
14 | ```
15 |
--------------------------------------------------------------------------------
/docs/chapters/the_firmware.md:
--------------------------------------------------------------------------------
1 | # Firmware
2 |
3 | The source code of the firmware is listed [here](https://github.com/doublehan07/DOGlove_Firmware).
4 |
5 | ## Use the Firmware
6 |
7 | You can download the precompiled firmware from the following link and flash it to the STM32:
8 | [DOGlove.hex](https://github.com/doublehan07/DOGlove_Firmware/releases/download/v1.0/DOGlove.hex)
9 |
10 | ## Build from Source Code
11 |
12 | To build the firmware from source:
13 |
14 | ```bash
15 | git clone https://github.com/doublehan07/DOGlove_Firmware.git
16 | cd DOGlove_Firmware
17 | make
18 | ```
19 |
20 | > 💡 Note: You may need to install [arm-none-eabi-gcc](https://developer.arm.com/downloads/-/gnu-rm) to compile the firmware.
21 |
22 | ## Notes for Advanced Developers
23 |
24 | To modify the firmware or view pin configurations, open the [DOGlove.ioc](https://github.com/doublehan07/DOGlove_Firmware/blob/main/DOGlove.ioc) file using [STM32CubeMX](https://www.st.com/en/development-tools/stm32cubemx.html).
25 |
26 | ### Pin Allocation
27 |
28 | 
29 |
30 | ### Clock Tree Configuration
31 |
32 | 
33 |
34 | ### Source Code Structure
35 |
36 | * [/Core](https://github.com/doublehan07/DOGlove_Firmware/tree/main/Core): *(Auto-generated by STM32CubeMX, except for `main.c` and `stm32f0xx_it.c`)*
37 |
38 | * [main.c](https://github.com/doublehan07/DOGlove_Firmware/blob/main/Core/Src/main.c): System initialization, LRA control, and encoder data packaging.
39 | * [stm32f0xx\_it.c](https://github.com/doublehan07/DOGlove_Firmware/blob/main/Core/Src/stm32f0xx_it.c): SysTick handler used for system-level scheduling.
40 |
41 | * [/Drivers](https://github.com/doublehan07/DOGlove_Firmware/tree/main/Drivers): STM32 HAL drivers *(auto-generated)*
42 |
43 | * [/Users](https://github.com/doublehan07/DOGlove_Firmware/tree/main/Users): Custom drivers and application code.
44 |
45 | * [ads1256.c](https://github.com/doublehan07/DOGlove_Firmware/blob/main/Users/ads1256.c): ADC driver for the ADS1256 chip.
46 | * [drv2605l.c](https://github.com/doublehan07/DOGlove_Firmware/blob/main/Users/drv2605l.c): Haptic driver for the DRV2605L chip.
47 | * [tca9548a.c](https://github.com/doublehan07/DOGlove_Firmware/blob/main/Users/tca9548a.c): I2C multiplexer driver for the TCA9548A chip.
48 | * [fsr.c](https://github.com/doublehan07/DOGlove_Firmware/blob/main/Users/fsr.c): Reads power supply voltage via STM32's internal ADC.
49 | * [delay.c](https://github.com/doublehan07/DOGlove_Firmware/blob/main/Users/delay.c): Implements precise millisecond-level delay.
50 | * [lra\_control.c](https://github.com/doublehan07/DOGlove_Firmware/blob/main/Users/lra_control.c): LRA control logic and UART RX event callback.
51 |
--------------------------------------------------------------------------------
/docs/chapters/the_hardware.md:
--------------------------------------------------------------------------------
1 | # Hardware
2 |
3 | DOGlove’s hardware consists of two main components: the electronics for sensing and control, and the mechanical structure for physical interaction.
4 |
5 | ```{toctree}
6 | :hidden:
7 | :maxdepth: 1
8 |
9 | ../hardware/01_circuit.rst
10 | ../hardware/02_mechanical.md
11 | ```
12 |
13 | ## Circuit Design
14 |
15 | Learn how we designed the electronics for DOGlove, including the schematic, PCB layout, and how to import or preview the project:
16 |
17 | * [Circuit Design](../hardware/01_circuit.rst)
18 |
19 | ## Mechanical Design
20 |
21 | Explore the mechanical structure of DOGlove through a full Onshape model, which can be exported in various formats:
22 |
23 | * [Mechanical Design](../hardware/02_mechanical.md)
24 |
--------------------------------------------------------------------------------
/docs/chapters/the_software.md:
--------------------------------------------------------------------------------
1 | # Software
2 |
3 | 🚀 Content coming soon. Thanks for your patience!
--------------------------------------------------------------------------------
/docs/conf.py:
--------------------------------------------------------------------------------
1 | # Configuration file for the Sphinx documentation builder.
2 | #
3 | # For the full list of built-in configuration values, see the documentation:
4 | # https://www.sphinx-doc.org/en/master/usage/configuration.html
5 |
6 | # -- Project information -----------------------------------------------------
7 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
8 |
9 | project = 'DOGlove'
10 | copyright = '2025, DOGlove'
11 | author = 'Han Zhang, Songbo Hu, Zhecheng Yuan, Huazhe Xu'
12 |
13 | # -- General configuration ---------------------------------------------------
14 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
15 |
16 | extensions = [
17 | # Sphinx's own extensions
18 | "sphinx.ext.autodoc",
19 | "sphinx.ext.extlinks",
20 | "sphinx.ext.intersphinx",
21 | "sphinx.ext.mathjax",
22 | "sphinx.ext.todo",
23 | "sphinx.ext.viewcode",
24 | 'myst_parser',
25 | ]
26 |
27 | exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
28 |
29 |
30 |
31 | # -- Options for HTML output -------------------------------------------------
32 | # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
33 |
34 | html_theme = "furo"
35 | html_title = "DOGlove"
36 | html_logo = "_static/logo.png"
37 | language = "en"
38 |
39 | html_static_path = ['_static']
40 | html_css_files = ["pied-piper-admonition.css"]
41 |
42 | # -- Options for Autodoc --------------------------------------------------------------
43 |
44 | autodoc_member_order = "bysource"
45 | autodoc_preserve_defaults = True
46 |
47 | # Keep the type hints outside the function signature, moving them to the
48 | # descriptions of the relevant function/methods.
49 | autodoc_typehints = "description"
50 |
51 | # Allow both .rst and .md
52 | source_suffix = {
53 | '.rst': 'restructuredtext',
54 | '.md': 'markdown',
55 | }
56 |
--------------------------------------------------------------------------------
/docs/hardware/01_circuit.rst:
--------------------------------------------------------------------------------
1 | .. _circuit_design:
2 |
3 | Circuit Design
4 | ==============
5 |
6 | The Schematics
7 | --------------
8 |
9 | .. raw:: html
10 |
11 |
12 |
13 | Import the Project File
14 | ------------------------
15 |
16 | We use lceda (EasyEDA) to design the schematic and PCB layout. To preview the source project, you have two options:
17 |
18 | Option 1: Import the `.epro` File
19 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20 |
21 | - **For users in China**: Use the `lceda Pro Edition (立创eda专业版) `__ to import the `.epro` file.
22 | - **For users in other regions**: Use the `EasyEDA Pro Edition `__ to import the `.epro` file.
23 |
24 | Steps to Import:
25 |
26 | 1. Download the :download:`ProPrj_DOGlove_MainBoard.epro <../_static/hardware/ProPrj_DOGlove_MainBoard.epro>` file.
27 | 2. Open EasyEDA Pro and navigate to ``File → Import → EasyEDA (Professional)``.
28 |
29 | .. image:: ../_static/hardware/1_import_project.jpg
30 |
31 | 3. Upload the `.epro` file, adjust the settings as shown below, then click **Import**:
32 |
33 | .. image:: ../_static/hardware/2_project_setting.jpg
34 |
35 | 4. Confirm the import settings and click **Save**:
36 |
37 | .. image:: ../_static/hardware/3_import_setting.jpg
38 |
39 | 5. You should now see the full schematic and layout preview:
40 |
41 | .. image:: ../_static/hardware/4_project_preview.jpg
42 |
43 | Option 2: View on OSHWHub (Recommended for Users in China)
44 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
45 |
46 | You can directly view the `DOGlove project on OSHWHub (立创开源硬件平台) `__, which includes the schematics, PCB layout, and BOM. The platform also supports one-click PCB fabrication.
47 |
--------------------------------------------------------------------------------
/docs/hardware/02_mechanical.md:
--------------------------------------------------------------------------------
1 | # Mechanical Design
2 |
3 | You can view the 3D model of DOGlove on Onshape. The model can be exported to SolidWorks, STEP, IGES, STL, and other formats supported by Onshape.
4 |
5 | [🧩 Onshape: 3D Model](https://cad.onshape.com/documents/7fa03943c40f265f7147311f)
6 |
7 | 
8 |
9 |
10 |
--------------------------------------------------------------------------------
/docs/index.md:
--------------------------------------------------------------------------------
1 | # DOGlove
2 |
3 | DOGlove is a low-cost, open-source haptic+force feedback glove designed for dexterous manipulation and teleoperation.
4 |
5 | Check out some useful links below to learn more:
6 |
7 | [🌐 Website](https://do-glove.github.io/) |
8 | [📄 Paper](https://arxiv.org/pdf/2502.07730) |
9 | [🎥 Video](https://www.youtube.com/watch?v=2qO7dbH9zxc) |
10 | [𝕏 Tweet](https://x.com/DoubleHan07/status/1889815837810499688)
11 |
12 | [🧩 Onshape: 3D Model](https://cad.onshape.com/documents/7fa03943c40f265f7147311f)
13 |
14 | [🛠️ MakerWorld: Bambu 3mf Files](https://makerworld.com/en/models/1476400-doglove#profileId-1541008)
15 |
16 | [📟 Circuit Board: OSHWHub (lceda)](https://oshwhub.com/doublehan/doglove_mainboard)
17 |
18 | [⚙️ Firmware: STM32 Source Code](https://github.com/doublehan07/DOGlove_Firmware)
19 |
20 | ---
21 |
22 | ## Getting Started
23 |
24 | Ready to dive in? We've prepared a [detailed tutorial](chapters/getting_started) to help you build your own DOGlove!
25 |
26 | If you're new to DOGlove, the easiest way is to follow the step-by-step tutorial☝️.
27 | For experienced developers, we also highlight the key steps below👇:
28 |
29 | - **Build the hardware**: Follow the [hardware](quick_start/04_assemble_glove) tutorial to assemble your DOGlove.
30 | - **Flash the embedded firmware**: Check out the [firmware](quick_start/03_flash_firmware) script.
31 | - **Bring it to life**: Quick link to set up the [software](quick_start/05_make_it_move).
32 |
33 |
34 | ## Customizing
35 |
36 | Want to customize your DOGlove, explore the key design ideas, or contribute to the project?
37 | Check out the following sections for more details!
38 |
39 | * [Hardware](chapters/the_hardware): Circuit design details and 3D printable models.
40 | * [Firmware](chapters/the_firmware): Embedded firmware that runs on DOGlove.
41 | * [Software](chapters/the_software): Python API and interface to control DOGlove.
42 |
43 | ## Troubleshooting
44 |
45 |
46 | If you encounter any issues or have suggestions for improvements, feel free to open a GitHub issue.
47 | We'd love to hear from you.
48 |
49 | ```{toctree}
50 | :maxdepth: 1
51 | :hidden:
52 |
53 | chapters/getting_started
54 | chapters/the_hardware
55 | chapters/the_firmware
56 | chapters/the_software
--------------------------------------------------------------------------------
/docs/make.bat:
--------------------------------------------------------------------------------
1 | @ECHO OFF
2 |
3 | pushd %~dp0
4 |
5 | REM Command file for Sphinx documentation
6 |
7 | if "%SPHINXBUILD%" == "" (
8 | set SPHINXBUILD=sphinx-build
9 | )
10 | set SOURCEDIR=.
11 | set BUILDDIR=_build
12 |
13 | %SPHINXBUILD% >NUL 2>NUL
14 | if errorlevel 9009 (
15 | echo.
16 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17 | echo.installed, then set the SPHINXBUILD environment variable to point
18 | echo.to the full path of the 'sphinx-build' executable. Alternatively you
19 | echo.may add the Sphinx directory to PATH.
20 | echo.
21 | echo.If you don't have Sphinx installed, grab it from
22 | echo.https://www.sphinx-doc.org/
23 | exit /b 1
24 | )
25 |
26 | if "%1" == "" goto help
27 |
28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29 | goto end
30 |
31 | :help
32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33 |
34 | :end
35 | popd
36 |
--------------------------------------------------------------------------------
/docs/quick_start/01_pcba.md:
--------------------------------------------------------------------------------
1 | # PCB Assembly
2 | 🚀 Content coming soon. Thanks for your patience!
--------------------------------------------------------------------------------
/docs/quick_start/02_3d_print.md:
--------------------------------------------------------------------------------
1 | # 3D Print
2 | 🚀 Content coming soon. Thanks for your patience!
--------------------------------------------------------------------------------
/docs/quick_start/03_flash_firmware.md:
--------------------------------------------------------------------------------
1 | # Flash the Firmware
2 | 🚀 Content coming soon. Thanks for your patience!
--------------------------------------------------------------------------------
/docs/quick_start/04_assemble_glove.md:
--------------------------------------------------------------------------------
1 | # Glove Assembly
2 | 🚀 Content coming soon. Thanks for your patience!
--------------------------------------------------------------------------------
/docs/quick_start/05_make_it_move.md:
--------------------------------------------------------------------------------
1 | # Make it Move
2 | 🚀 Content coming soon. Thanks for your patience!
--------------------------------------------------------------------------------
/teaser.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TEA-Lab/DOGlove/6d3de4ef6f33075976214e1e26ba38859d161988/teaser.jpg
--------------------------------------------------------------------------------