|
1 |
| -# JAX Soft Robot Modelling |
| 1 | +# 🤖 JAX Soft Robot Modelling |
2 | 2 |
|
3 |
| -Welcome to the documentation for JAX Soft Robot Modelling (JSRM)! |
| 3 | +<div class="doc-summary"> |
| 4 | + <strong>Welcome to JAX Soft Robot Modelling (JSRM)!</strong> A cutting-edge library for fast, parallelizable, and differentiable simulations of soft robots using JAX and symbolic mathematics. |
| 5 | +</div> |
4 | 6 |
|
5 |
| -## Overview |
| 7 | +--- |
| 8 | + |
| 9 | +## 🎯 Overview |
| 10 | + |
| 11 | +This repository contains symbolic derivations of the kinematics and dynamics of various soft robots using **SymPy**. |
| 12 | +The symbolic expressions are then implemented in **JAX** and can be used for fast, parallelizable, and differentiable simulations. |
6 | 13 |
|
7 |
| -This repository contains symbolic derivations of the kinematics and dynamics of various soft robots using Sympy. |
8 |
| -The symbolic expressions are then implemented in JAX and can be used for fast, parallelizable, and differentiable simulations. |
| 14 | +<div class="feature-grid"> |
| 15 | + <div class="feature-card"> |
| 16 | + <h3><span class="icon">⚡</span> JAX-Powered</h3> |
| 17 | + <p>Leverage JAX for lightning-fast computations with automatic differentiation and JIT compilation</p> |
| 18 | + </div> |
| 19 | + |
| 20 | + <div class="feature-card"> |
| 21 | + <h3><span class="icon">🧮</span> Symbolic Foundation</h3> |
| 22 | + <p>Mathematically rigorous models derived from first principles using symbolic computation</p> |
| 23 | + </div> |
| 24 | + |
| 25 | + <div class="feature-card"> |
| 26 | + <h3><span class="icon">🔧</span> Modular Design</h3> |
| 27 | + <p>Extensible architecture that makes it easy to add new robot types and configurations</p> |
| 28 | + </div> |
| 29 | + |
| 30 | + <div class="feature-card"> |
| 31 | + <h3><span class="icon">📊</span> Differentiable</h3> |
| 32 | + <p>Full gradient support for optimization, control, and machine learning applications</p> |
| 33 | + </div> |
| 34 | + |
| 35 | + <div class="feature-card"> |
| 36 | + <h3><span class="icon">🚀</span> High Performance</h3> |
| 37 | + <p>Parallelizable computations that scale efficiently across multiple devices</p> |
| 38 | + </div> |
| 39 | + |
| 40 | + <div class="feature-card"> |
| 41 | + <h3><span class="icon">🔬</span> Research-Ready</h3> |
| 42 | + <p>Validated implementations used in peer-reviewed robotics research</p> |
| 43 | + </div> |
| 44 | +</div> |
| 45 | + |
| 46 | +--- |
| 47 | + |
| 48 | +## 🤖 Supported Robot Types |
| 49 | + |
| 50 | +We focus on planar settings and have implemented the following soft robot architectures: |
| 51 | + |
| 52 | +!!! note "🦾 **N-link Pendulum**" |
| 53 | + Classical articulated robot perfect for benchmarking and comparison studies |
| 54 | + |
| 55 | +!!! tip "🌊 **Planar Piecewise Constant Strain (PCS)**" |
| 56 | + Advanced continuum soft robot with constant strain segments for precise modeling |
| 57 | + |
| 58 | +!!! info "🔗 **Planar Handed Shearing Auxetics (HSA)**" |
| 59 | + Novel soft robot with auxetic properties for unique deformation characteristics |
| 60 | + |
| 61 | +--- |
| 62 | + |
| 63 | +## ✨ Key Features |
| 64 | + |
| 65 | +=== "🚀 Performance" |
| 66 | + |
| 67 | + - **JAX Backend**: Ultra-fast computations with automatic vectorization |
| 68 | + - **JIT Compilation**: Optimized machine code generation for maximum speed |
| 69 | + - **GPU/TPU Support**: Seamless acceleration on modern hardware |
| 70 | + - **Parallel Processing**: Scale across multiple devices effortlessly |
| 71 | + |
| 72 | +=== "🧠 Intelligence" |
| 73 | + |
| 74 | + - **Automatic Differentiation**: Full gradient support for all operations |
| 75 | + - **Symbolic Derivation**: Mathematically rigorous kinematic and dynamic models |
| 76 | + - **Optimization Ready**: Perfect for control and learning applications |
| 77 | + - **Numerical Stability**: Robust implementations that handle edge cases |
| 78 | + |
| 79 | +=== "🔧 Usability" |
| 80 | + |
| 81 | + - **Clean API**: Intuitive interfaces that are easy to learn and use |
| 82 | + - **Comprehensive Documentation**: Detailed guides, examples, and API reference |
| 83 | + - **Extensible Design**: Add new robot types and configurations with ease |
| 84 | + - **Research Proven**: Validated in real-world robotics applications |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +## 🚀 Quick Start |
| 89 | + |
| 90 | +Get up and running in minutes: |
| 91 | + |
| 92 | +=== "Installation" |
| 93 | + |
| 94 | + ```bash |
| 95 | + pip install jsrm |
| 96 | + ``` |
| 97 | + |
| 98 | +=== "Basic Usage" |
| 99 | + |
| 100 | + ```python |
| 101 | + import jax.numpy as jnp |
| 102 | + from jsrm.systems import PlanarPCS |
| 103 | + |
| 104 | + # Create a planar PCS robot |
| 105 | + robot = PlanarPCS(num_segments=3, params=params) |
| 106 | + |
| 107 | + # Compute forward kinematics |
| 108 | + q = jnp.array([0.1, 0.2, 0.3]) # Configuration |
| 109 | + chi = robot.forward_kinematics(q, s=1.0) # End-effector pose |
| 110 | + ``` |
| 111 | + |
| 112 | +=== "Advanced Features" |
| 113 | + |
| 114 | + ```python |
| 115 | + # Compute Jacobians for control |
| 116 | + J = robot.jacobian(q, s=1.0) |
| 117 | + |
| 118 | + # Dynamic simulation |
| 119 | + B, C, G, K, D, A = robot.dynamical_matrices(q, qd) |
| 120 | + |
| 121 | + # Differentiable operations |
| 122 | + loss_fn = lambda q: jnp.sum(robot.forward_kinematics(q, s=1.0)**2) |
| 123 | + grad_fn = jax.grad(loss_fn) |
| 124 | + ``` |
| 125 | + |
| 126 | +--- |
| 127 | + |
| 128 | +## 📚 Quick Links |
| 129 | + |
| 130 | +<div class="feature-grid"> |
| 131 | + <div class="feature-card"> |
| 132 | + <h3><span class="icon">📦</span> [Installation Guide](installation.md)</h3> |
| 133 | + <p>Get JSRM installed and configured on your system</p> |
| 134 | + </div> |
| 135 | + |
| 136 | + <div class="feature-card"> |
| 137 | + <h3><span class="icon">🚀</span> [Quick Start](user-guide/quick-start.md)</h3> |
| 138 | + <p>Jump right in with hands-on tutorials and examples</p> |
| 139 | + </div> |
| 140 | + |
| 141 | + <div class="feature-card"> |
| 142 | + <h3><span class="icon">📖</span> [Examples](user-guide/examples.md)</h3> |
| 143 | + <p>Explore comprehensive examples and use cases</p> |
| 144 | + </div> |
| 145 | + |
| 146 | + <div class="feature-card"> |
| 147 | + <h3><span class="icon">📋</span> [API Reference](api/systems.md)</h3> |
| 148 | + <p>Complete documentation of all classes and functions</p> |
| 149 | + </div> |
| 150 | +</div> |
9 | 151 |
|
10 |
| -## Supported Robot Types |
11 |
| - |
12 |
| -So far, we have focused on planar settings and implemented the following soft robots: |
13 |
| - |
14 |
| -- **N-link pendulum** - Classical articulated robot for benchmarking |
15 |
| -- **Planar Piecewise Constant Strain (PCS) continuum soft robot** - Continuum robot with constant strain segments |
16 |
| -- **Planar Handed Shearing Auxetics (HSA) robot** - Soft robot with auxetic properties |
17 |
| - |
18 |
| -## Key Features |
19 |
| - |
20 |
| -- **JAX-based**: Fast, parallelizable, and differentiable computations |
21 |
| -- **Symbolic derivations**: Mathematically rigorous kinematic and dynamic models |
22 |
| -- **Multiple robot types**: Support for various soft robot architectures |
23 |
| -- **Extensible**: Easy to add new robot types and configurations |
24 |
| - |
25 |
| -## Quick Links |
26 |
| - |
27 |
| -- [Installation Guide](installation.md) |
28 |
| -- [Quick Start](user-guide/quick-start.md) |
29 |
| -- [Examples](user-guide/examples.md) |
30 |
| -- [API Reference](api/systems.md) |
31 |
| - |
32 |
| -## Citation |
33 |
| - |
34 |
| -This simulator is part of the publication **An Experimental Study of Model-based Control |
35 |
| -for Planar Handed Shearing Auxetics Robots** presented at the _18th International Symposium on Experimental Robotics_. |
36 |
| - |
37 |
| -If you use our software in your research, please cite: |
38 |
| - |
39 |
| -```bibtex |
40 |
| -@inproceedings{stolzle2023experimental, |
41 |
| - title={An experimental study of model-based control for planar handed shearing auxetics robots}, |
42 |
| - author={St{\"o}lzle, Maximilian and Rus, Daniela and Della Santina, Cosimo}, |
43 |
| - booktitle={International Symposium on Experimental Robotics}, |
44 |
| - pages={153--167}, |
45 |
| - year={2023}, |
46 |
| - organization={Springer} |
47 |
| -} |
48 |
| -``` |
49 |
| - |
50 |
| -## Contributing |
| 152 | +--- |
| 153 | + |
| 154 | +## 📄 Citation |
| 155 | + |
| 156 | +This simulator is part of the publication **"An Experimental Study of Model-based Control for Planar Handed Shearing Auxetics Robots"** presented at the *18th International Symposium on Experimental Robotics*. |
| 157 | + |
| 158 | +!!! quote "If you use our software in your research, please cite:" |
| 159 | + |
| 160 | + ```bibtex |
| 161 | + @inproceedings{stolzle2023experimental, |
| 162 | + title={An experimental study of model-based control for planar handed shearing auxetics robots}, |
| 163 | + author={St{\"o}lzle, Maximilian and Rus, Daniela and Della Santina, Cosimo}, |
| 164 | + booktitle={International Symposium on Experimental Robotics}, |
| 165 | + pages={153--167}, |
| 166 | + year={2023}, |
| 167 | + organization={Springer} |
| 168 | + } |
| 169 | + ``` |
| 170 | + |
| 171 | +--- |
| 172 | + |
| 173 | +## 🤝 Contributing |
51 | 174 |
|
52 | 175 | We welcome contributions! Please see our [Contributing Guide](development/contributing.md) for details on how to get started.
|
53 | 176 |
|
|
0 commit comments