-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of github.com:AntoineRichard/LunarSim
- Loading branch information
Showing
4 changed files
with
65 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,7 @@ requires-python = ">=3.10" | |
keywords = ["lunar", "simulator", "rover", "locomotion", "IsaacSim"] | ||
authors = [ | ||
{ name = "Antoine Richard", email = "[email protected]" }, | ||
{ name = "Junnosuke Kamohara", email = "xxx@gatech.edu" }, | ||
{ name = "Junnosuke Kamohara", email = "jkamohara3@gatech.edu" }, | ||
] | ||
|
||
dependencies = [ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,85 +1,108 @@ | ||
# Deformation Engine | ||
|
||
> [!WARNING] | ||
> This wiki page is under construction | ||
<center> | ||
<img src="..//media/deformation_engine_img/deformation.png" width=500> | ||
</center> | ||
|
||
Here, the docs gives a brief explanation of deformation engine plugin. \ | ||
In hydra cfg file (see `cfg/environment/**.yaml`), you have specific lines for terrain deformation. | ||
|
||
```yaml | ||
deformation_engine: | ||
enable: True | ||
render_deform_inv: 10 | ||
delay: 2.0 # how many frames to hold before you apply deformation | ||
terrain_width: ${....lunaryard_settings.lab_width} | ||
terrain_height: ${....lunaryard_settings.lab_length} | ||
terrain_resolution: ${....lunaryard_settings.resolution} | ||
gravity: [0, 0, -49.0] #mg | ||
force_depth_slope: 0.00014 | ||
force_depth_intercept: 0.008 | ||
wheel_params: | ||
wheel_width: 0.09 | ||
wheel_radius: 0.1 | ||
deform_constraint: | ||
deform_offset: 0.0 | ||
num_links: 4 # num_robots * num_target_links | ||
footprint: | ||
width: 0.25 | ||
height: 0.1 | ||
deform_constrain: | ||
x_deform_offset: 0.0 | ||
y_deform_offset: 0.0 | ||
deform_decay_ratio: 0.01 | ||
force_distribution: | ||
depth_distribution: | ||
distribution: sinusoidal | ||
wave_frequency: 2.0 | ||
wave_frequency: 4.14 # num_grouser/pi (no slip) | ||
boundary_distribution: | ||
distribution: trapezoidal | ||
angle_of_repose: 1.047 | ||
angle_of_repose: 1.047 #pi/3 | ||
force_depth_regression: | ||
amplitude_slope: 0.00006 | ||
amplitude_intercept: 0.008 | ||
mean_slope: -0.00046 | ||
mean_intercept: -0.0013 | ||
``` | ||
## Wheel parameters | ||
You must specify the dimension of your wheels in meter. | ||
## Footprint | ||
This configuration specifies the dimensions of the robot's footprint. \ | ||
For now, we assume the footprint is rectangular since we are primarily focused on wheeled robots. \ | ||
Height and width correspond to the dimensions along the x and y axes (the robot's forward direction is along the x-axis). | ||
```yaml | ||
wheel_params: | ||
wheel_width: 0.09 | ||
wheel_radius: 0.1 | ||
footprint: | ||
width: 0.25 | ||
height: 0.1 | ||
``` | ||
### Deformation Constraint | ||
Here you will specify parameter for constraint. \ | ||
`deform_offsest` is the distance between wheel origin and the center of deformation profile. \ | ||
`deform_decay_ratio` is decaying parameter of deformation. \ | ||
This is to limit deformation depth as rover traverse the same place many times. | ||
### Deform Constraint | ||
Here, you will specify the parameters for the constraint. \ | ||
`*_deform_offsest` refers to the distance between the projected wheel origin and the center of the deformation profile. \ | ||
`deform_decay_ratio` is the decay parameter for deformation. \ | ||
This is used to limit the deformation depth as the rover traverses the same location multiple times. \ | ||
Given the number of traversals $t$, the actual deformation value will be multiplied by scale factor $\text{ratio}^t$. | ||
```yaml | ||
deform_constraint: | ||
deform_offset: 0.0 | ||
deform_constrain: | ||
x_deform_offset: 0.0 | ||
y_deform_offset: 0.0 | ||
deform_decay_ratio: 0.01 | ||
``` | ||
|
||
## Force Distribution | ||
Controls distribution of force over wheel footprint. | ||
You have two options for this. | ||
## Depth Distribution | ||
This controls the xz distribution of the deformation profile.\ | ||
You have three options: uniform, sinusoidal, and trapezoidal.\ | ||
Typically, if your wheel has grousers, the wheel trace will exhibit a sinusoidal pattern.\ | ||
If your wheel has no grousers, the wheel trace is usually uniform.\ | ||
If the sand is cohesive, the trace tends to resemble a trapezoidal shape. | ||
|
||
```yaml | ||
force_distribution: | ||
distribution: uniform | ||
``` | ||
|
||
```yaml | ||
--- | ||
force_distribution: | ||
distribution: sinusoidal | ||
wave_frequency: 2.0 | ||
--- | ||
force_distribution: | ||
distribution: trapezoidal | ||
wave_frequency: 2.0 | ||
``` | ||
|
||
## Boundary Distribution | ||
Controls boundary shape (y axis vs z axis with FLU convention). | ||
This controls the yz distribution of the deformation profile.\ | ||
The angle of repose is determined by the type of sand being used. | ||
|
||
```yaml | ||
boundary_distribution: | ||
distribution: uniform | ||
``` | ||
|
||
```yaml | ||
--- | ||
boundary_distribution: | ||
distribution: parabolic | ||
``` | ||
|
||
```yaml | ||
--- | ||
boundary_distribution: | ||
distribution: trapezoidal | ||
angle_of_repose: 1.047 | ||
``` | ||
|
||
## Force depth regression | ||
To compute deformation depth from the contact force, we use a linear model.\ | ||
Each coefficient is determined by linear regression using DEM simulation data.\ | ||
Note that this model is quite simple, and it will be necessary to develop a higher-dimensional model for more accurate depth computation. | ||
|
||
```yaml | ||
force_depth_regression: | ||
amplitude_slope: 0.00006 | ||
amplitude_intercept: 0.008 | ||
mean_slope: -0.00046 | ||
mean_intercept: -0.0013 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
Antoine Richard -- University of Luxembourg -- Space Robotics Group -- 2023-24 | ||
Junnosuke Kamohara -- Georgia Institute of Technology -- 2023-24 -- Work done while he was in Space Robotics Lab in Japan. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.