Skip to content

Commit c6023f2

Browse files
Merge branch 'main' of github.com:AntoineRichard/LunarSim
2 parents 5079163 + 6238622 commit c6023f2

File tree

4 files changed

+65
-42
lines changed

4 files changed

+65
-42
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ requires-python = ">=3.10"
66
keywords = ["lunar", "simulator", "rover", "locomotion", "IsaacSim"]
77
authors = [
88
{ name = "Antoine Richard", email = "[email protected]" },
9-
{ name = "Junnosuke Kamohara", email = "xxx@gatech.edu" },
9+
{ name = "Junnosuke Kamohara", email = "jkamohara3@gatech.edu" },
1010
]
1111

1212
dependencies = [
Lines changed: 63 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,108 @@
11
# Deformation Engine
22

3-
> [!WARNING]
4-
> This wiki page is under construction
3+
<center>
4+
<img src="..//media/deformation_engine_img/deformation.png" width=500>
5+
</center>
56

67
Here, the docs gives a brief explanation of deformation engine plugin. \
78
In hydra cfg file (see `cfg/environment/**.yaml`), you have specific lines for terrain deformation.
89

910
```yaml
1011
deformation_engine:
1112
enable: True
12-
render_deform_inv: 10
13+
delay: 2.0 # how many frames to hold before you apply deformation
1314
terrain_width: ${....lunaryard_settings.lab_width}
1415
terrain_height: ${....lunaryard_settings.lab_length}
1516
terrain_resolution: ${....lunaryard_settings.resolution}
16-
gravity: [0, 0, -49.0] #mg
17-
force_depth_slope: 0.00014
18-
force_depth_intercept: 0.008
19-
wheel_params:
20-
wheel_width: 0.09
21-
wheel_radius: 0.1
22-
deform_constraint:
23-
deform_offset: 0.0
17+
num_links: 4 # num_robots * num_target_links
18+
footprint:
19+
width: 0.25
20+
height: 0.1
21+
deform_constrain:
22+
x_deform_offset: 0.0
23+
y_deform_offset: 0.0
2424
deform_decay_ratio: 0.01
25-
force_distribution:
25+
depth_distribution:
2626
distribution: sinusoidal
27-
wave_frequency: 2.0
27+
wave_frequency: 4.14 # num_grouser/pi (no slip)
2828
boundary_distribution:
2929
distribution: trapezoidal
30-
angle_of_repose: 1.047
30+
angle_of_repose: 1.047 #pi/3
31+
force_depth_regression:
32+
amplitude_slope: 0.00006
33+
amplitude_intercept: 0.008
34+
mean_slope: -0.00046
35+
mean_intercept: -0.0013
3136
```
3237
33-
## Wheel parameters
34-
35-
You must specify the dimension of your wheels in meter.
38+
## Footprint
39+
This configuration specifies the dimensions of the robot's footprint. \
40+
For now, we assume the footprint is rectangular since we are primarily focused on wheeled robots. \
41+
Height and width correspond to the dimensions along the x and y axes (the robot's forward direction is along the x-axis).
3642
```yaml
37-
wheel_params:
38-
wheel_width: 0.09
39-
wheel_radius: 0.1
43+
footprint:
44+
width: 0.25
45+
height: 0.1
4046
```
4147
42-
### Deformation Constraint
43-
Here you will specify parameter for constraint. \
44-
`deform_offsest` is the distance between wheel origin and the center of deformation profile. \
45-
`deform_decay_ratio` is decaying parameter of deformation. \
46-
This is to limit deformation depth as rover traverse the same place many times.
48+
### Deform Constraint
49+
Here, you will specify the parameters for the constraint. \
50+
`*_deform_offsest` refers to the distance between the projected wheel origin and the center of the deformation profile. \
51+
`deform_decay_ratio` is the decay parameter for deformation. \
52+
This is used to limit the deformation depth as the rover traverses the same location multiple times. \
53+
Given the number of traversals $t$, the actual deformation value will be multiplied by scale factor $\text{ratio}^t$.
4754
```yaml
48-
deform_constraint:
49-
deform_offset: 0.0
55+
deform_constrain:
56+
x_deform_offset: 0.0
57+
y_deform_offset: 0.0
5058
deform_decay_ratio: 0.01
5159
```
5260

53-
## Force Distribution
54-
Controls distribution of force over wheel footprint.
55-
You have two options for this.
61+
## Depth Distribution
62+
This controls the xz distribution of the deformation profile.\
63+
You have three options: uniform, sinusoidal, and trapezoidal.\
64+
Typically, if your wheel has grousers, the wheel trace will exhibit a sinusoidal pattern.\
65+
If your wheel has no grousers, the wheel trace is usually uniform.\
66+
If the sand is cohesive, the trace tends to resemble a trapezoidal shape.
5667

5768
```yaml
5869
force_distribution:
5970
distribution: uniform
60-
```
61-
62-
```yaml
71+
---
6372
force_distribution:
6473
distribution: sinusoidal
6574
wave_frequency: 2.0
75+
---
76+
force_distribution:
77+
distribution: trapezoidal
78+
wave_frequency: 2.0
6679
```
6780

6881
## Boundary Distribution
69-
Controls boundary shape (y axis vs z axis with FLU convention).
82+
This controls the yz distribution of the deformation profile.\
83+
The angle of repose is determined by the type of sand being used.
7084

7185
```yaml
7286
boundary_distribution:
7387
distribution: uniform
74-
```
75-
76-
```yaml
88+
---
7789
boundary_distribution:
7890
distribution: parabolic
79-
```
80-
81-
```yaml
91+
---
8292
boundary_distribution:
8393
distribution: trapezoidal
8494
angle_of_repose: 1.047
95+
```
96+
97+
## Force depth regression
98+
To compute deformation depth from the contact force, we use a linear model.\
99+
Each coefficient is determined by linear regression using DEM simulation data.\
100+
Note that this model is quite simple, and it will be necessary to develop a higher-dimensional model for more accurate depth computation.
101+
102+
```yaml
103+
force_depth_regression:
104+
amplitude_slope: 0.00006
105+
amplitude_intercept: 0.008
106+
mean_slope: -0.00046
107+
mean_intercept: -0.0013
85108
```

wiki/deformation_engine/_Footer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Antoine Richard -- University of Luxembourg -- Space Robotics Group -- 2023-24
1+
Junnosuke Kamohara -- Georgia Institute of Technology -- 2023-24 -- Work done while he was in Space Robotics Lab in Japan.
Loading

0 commit comments

Comments
 (0)