|
1 | 1 | # LinkForge Documentation |
2 | 2 |
|
3 | | -Welcome to LinkForge's documentation! |
| 3 | +Welcome to the official LinkForge documentation. LinkForge is a professional Blender extension designed to bridge the gap between 3D modeling and robotics simulation. |
4 | 4 |
|
5 | | -**LinkForge** is a professional Blender extension for roboticists. |
| 5 | +Following the **Diátaxis framework**, our documentation is organized into four sections to help you find exactly what you need. |
6 | 6 |
|
7 | | -**In robotics, creativity starts in your head — but getting that idea into a simulator usually means hours of writing XML, fixing joint limits, and fighting coordinate systems.** |
| 7 | +--- |
8 | 8 |
|
9 | | -LinkForge removes that friction. Model your robot in Blender as naturally as sculpting a 3D scene, then let LinkForge handle the engineering. |
| 9 | +::::{grid} 2 |
| 10 | +:gutter: 3 |
10 | 11 |
|
11 | | -**From idea → robot → ready for simulation.** All inside Blender. |
| 12 | +:::{grid-item-card} 🚀 Tutorials |
| 13 | +:link: tutorials/index |
| 14 | +:link-type: doc |
12 | 15 |
|
13 | | -```{toctree} |
14 | | -:maxdepth: 2 |
15 | | -:caption: Contents: |
16 | | -
|
17 | | -getting_started |
18 | | -ARCHITECTURE |
19 | | -api/index |
20 | | -CONTRIBUTING |
21 | | -CHANGELOG |
22 | | -README |
23 | | -LICENSE |
24 | | -``` |
25 | | - |
26 | | -## Quick Links |
| 16 | +**Learning-oriented.** Start here if you are new to LinkForge. Step-by-step lessons to build your first robot. |
| 17 | +^^^ |
| 18 | +- [Building a Diff-Drive Robot](tutorials/building_diff_drive) |
| 19 | +::: |
27 | 20 |
|
28 | | -- [GitHub Repository](https://github.com/arounamounchili/linkforge) |
29 | | -- [Issue Tracker](https://github.com/arounamounchili/linkforge/issues) |
30 | | -- [Discussions](https://github.com/arounamounchili/linkforge/discussions) |
| 21 | +:::{grid-item-card} 🛠️ How-to Guides |
| 22 | +:link: how_to/index |
| 23 | +:link-type: doc |
31 | 24 |
|
32 | | -## Features |
| 25 | +**Task-oriented.** Practical guides to help you achieve specific goals or solve problems. |
| 26 | +^^^ |
| 27 | +- [Adding Sensors](how_to/add_sensors) |
| 28 | +- [Defining Joints](how_to/index) |
| 29 | +::: |
33 | 30 |
|
34 | | -- **Bidirectional Workflow**: Seamlessly import existing URDF/XACRO files for editing or build complex robot models from scratch using Blender's native tools. |
35 | | -- **Production-Ready Export**: Generates strictly compliant URDF/XACRO files optimized for ROS, ROS 2, and Gazebo. Output is clean, validated, and requires no manual post-processing. |
36 | | -- **Smart Validation**: Built-in integrity checker inspects robot topology, physics data, and joint limits to prevent common simulation crashes before they happen. |
37 | | -- **ROS2 Control Support**: Automatically generates hardware interface configurations for `ros2_control`, compatible with Gazebo, Webots, Isaac Sim, and physical hardware. |
38 | | -- **Complete Sensor Suite**: Integrated support for Camera, Depth Camera, LiDAR, IMU, GPS, and Force/Torque sensors with configurable noise models. |
39 | | -- **Automatic Physics**: Scientifically accurate calculation of mass properties and inertia tensors for both primitive shapes and complex arbitrary meshes. |
40 | | -- **Advanced XACRO Support**: Intelligent extraction of repeated geometry into macros and shared materials, producing maintainable and modular code. |
41 | | -- **Round-Trip Fidelity**: Import → Edit → Export cycle preserves all data absolute precision, including sensor origins, transmission interfaces, and custom user properties. |
42 | | -- **Interactive Kinematic Visualization**: Real-time rendering of joint coordinate frames (`RGB=XYZ`) in the viewport, enabling instant visual verification of kinematic chain orientations. |
| 31 | +:::{grid-item-card} 💡 Explanation |
| 32 | +:link: explanation/index |
| 33 | +:link-type: doc |
43 | 34 |
|
| 35 | +**Understanding-oriented.** Deep dives into the architecture, theory, and design of LinkForge. |
| 36 | +^^^ |
| 37 | +- [Architecture Guide](explanation/ARCHITECTURE) |
| 38 | +- [Data Model](explanation/data_model) |
| 39 | +::: |
44 | 40 |
|
45 | | -## 🛠️ Workflow |
| 41 | +:::{grid-item-card} 📚 Reference |
| 42 | +:link: reference/index |
| 43 | +:link-type: doc |
46 | 44 |
|
47 | | -LinkForge follows a structured **Forge → Perceive → Control → Export** workflow: |
| 45 | +**Information-oriented.** Technical descriptions, API documentation, and specifications. |
| 46 | +^^^ |
| 47 | +- [Python API Reference](reference/api/index) |
| 48 | +- [URDF Specification](reference/index) |
| 49 | +::: |
48 | 50 |
|
49 | | -### 1. Forge Links |
50 | | -- Convert meshes to robot links with automatic naming |
51 | | -- Generate optimized collision geometry |
52 | | -- Calculate physics properties (mass, inertia) |
53 | | -- Reversible actions (safely remove links) |
| 51 | +:::: |
54 | 52 |
|
55 | | -### 2. Forge Joints |
56 | | -- Connect links with precise joint configuration |
57 | | -- Visual feedback for joint axes in viewport |
58 | | -- Full CRUD operations (Create, Read, Update, Delete) |
59 | | -- Support for all URDF joint types |
| 53 | +--- |
60 | 54 |
|
61 | | -### 3. Perceive (Sensors) |
62 | | -- Attach sensors to links |
63 | | -- Configure update rates, resolutions, noise models |
64 | | -- Gazebo plugin integration |
| 55 | +```{toctree} |
| 56 | +:maxdepth: 2 |
| 57 | +:hidden: |
| 58 | +:caption: Tutorials |
65 | 59 |
|
66 | | -### 4. Control (Transmissions) |
67 | | -- Configure hardware interfaces (Position, Velocity, Effort) |
68 | | -- Set up mechanical reductions and joint limits |
69 | | -- Auto-generate `ros2_control` tags |
| 60 | +tutorials/building_diff_drive |
| 61 | +``` |
70 | 62 |
|
71 | | -### 5. Validate & Export |
72 | | -- Built-in validator catches common errors |
73 | | -- Export to URDF or XACRO with mesh handling |
| 63 | +```{toctree} |
| 64 | +:maxdepth: 2 |
| 65 | +:hidden: |
| 66 | +:caption: How-to Guides |
74 | 67 |
|
75 | | -## Installation |
| 68 | +how_to/add_sensors |
| 69 | +``` |
76 | 70 |
|
77 | | -### Requirements |
78 | | -- Blender 4.2 or later |
79 | | -- Python 3.11+ |
| 71 | +```{toctree} |
| 72 | +:maxdepth: 2 |
| 73 | +:hidden: |
| 74 | +:caption: Explanation |
80 | 75 |
|
81 | | -### Installation |
| 76 | +explanation/ARCHITECTURE |
| 77 | +explanation/data_model |
| 78 | +``` |
82 | 79 |
|
83 | | -1. **Download**: Get `linkforge-1.0.0.zip` from [Releases](https://github.com/arounamounchili/linkforge/releases). |
84 | | -2. **Open Blender**: Go to **Edit > Preferences > Get Extensions**. |
85 | | -3. **Install**: Click the dropdown (⌄) in top-right → **Install from Disk**. |
86 | | -4. **Select**: Choose the downloaded `.zip` file. |
| 80 | +```{toctree} |
| 81 | +:maxdepth: 2 |
| 82 | +:hidden: |
| 83 | +:caption: Reference |
87 | 84 |
|
| 85 | +reference/api/index |
| 86 | +CHANGELOG |
| 87 | +CONTRIBUTING |
| 88 | +LICENSE |
| 89 | +``` |
88 | 90 |
|
89 | | -## Indices and tables |
| 91 | +## Quick Links |
90 | 92 |
|
91 | | -- {ref}`genindex` |
92 | | -- {ref}`modindex` |
93 | | -- {ref}`search` |
| 93 | +- [GitHub Repository](https://github.com/arounamounchili/linkforge) |
| 94 | +- [Issue Tracker](https://github.com/arounamounchili/linkforge/issues) |
| 95 | +- [Discussions](https://github.com/arounamounchili/linkforge/discussions) |
0 commit comments