Skip to content

Commit c44c188

Browse files
Merge pull request #7 from Space-Robotics-Laboratory/release/v2.0
Release/v2.0
2 parents e59d0f4 + 298654e commit c44c188

File tree

71 files changed

+3504
-229
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+3504
-229
lines changed

README.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,17 @@ This simulator wraps up functions for:
1919
* [x] Visualization (Robot, map, support polygons, stability criterion, and time-history of any state variables)
2020

2121
#### Simulation examples
22-
| ![ex1_uneven_dynamic_fixed_stride.gif](./docs/media/ex1_uneven_dynamic_fixed_stride.gif) | ![ex2_flat_kinematic_Uno-gait-planning.gif](./docs/media/ex2_flat_kinematic_Uno-gait-planning.gif) |![GIA-poly-hedoron.png](./docs/media/GIA-poly-hedoron.png)|
23-
|--------|--------|--------|
24-
| 1) Standard gait on uneven terrain | 2) Optimal foothold selection on descrete grippable points [1] | 3) Stability region visualization [2] |
22+
| ![ex1_uneven_dynamic_fixed_stride.gif](./docs/media/ex1_uneven_dynamic_fixed_stride.gif) | ![ex2_flat_kinematic_Uno-gait-planning.gif](./docs/media/ex2_flat_kinematic_Uno-gait-planning.gif) |
23+
|--------|--------|
24+
| 1) Standard gait on uneven terrain | 2) Optimal foothold selection on descrete grippable points [1] |
25+
26+
|![GIA-poly-hedoron.png](./docs/media/GIA-poly-hedoron.png) | ![ex4_uneven_terrain_dynamic_Non-perioidc-gait-planning.gif](./docs/media/ex4_uneven_terrain_dynamic_Non-perioidc-gait-planning.gif)|
27+
|--------|--------|
28+
| 3) Stability region visualization [2] | 4) Topographically salient region detection and non-periodic foothold selection [3] |
2529

2630
## Usage
2731

28-
If you use this simulator in academic context, please put citations of the following publications [1] and [2].
32+
If you use this simulator in academic context, please put citations of the following publications.
2933

3034
#### Requirements
3135
We confirmed the code is working with:
@@ -48,7 +52,18 @@ We confirmed the code is working with:
4852

4953
[2] Warley F. R. Ribeiro *et al*., "[Dynamic Equilibrium of Climbing Robots based on Stability Polyhedron for Gravito-Inertial Acceleration](https://clawar.org/conference-proceedings/clawar-conference/clawar-2020-proceedings/)", Proceedings of the 23rd International Conference on Climbing and Walking Robots and the Support Technologies for Mobile Machines, Moscow, Russian Federation, 2020, pp. 297-304, [doi: 10.13180/clawar.2020.24-26.08.18](https://doi.org/10.13180/clawar.2020.24-26.08.18).
5054

55+
[3] Kentaro Uno *et al*., "[Non-Periodic Gait Planning Based on Salient Region Detection for a Planetary Cave Exploration Robot](https://www.hou.usra.edu/meetings/isairas2020fullpapers/pdf/5027.pdf)", Proceedings of the International Symposium on Artificial Intelligence, Robotics and Automation in Space, remote conference, 2020, No. 5027.
56+
5157
## FAQ
58+
5259
Please contact us by sending an email to the following address if there is any question or suggestion.
5360

5461
limb[at]astro.mech.tohoku.ac.jp
62+
63+
## Release note
64+
65+
* Version 1.0: released on 18th Sept. 2020.
66+
* Version 2.0: released on 26th Oct. 2020. This version includes:
67+
- topographically salient regioon detection algorithm [3]
68+
- non-periodic gait plannner [3]
69+
- gripper detachment evaluation

config/USER/config_USER_param_template.m

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
%%%%%%
88
%%%%%% Created 2020-07-08
99
%%%%%% Warley Ribeiro
10-
%%%%%% Last update: 2020-07-08
10+
%%%%%% Last update: 2020-10-01
11+
%%%%%% Keigo Haji
1112
%
1213
%
1314
% Load configurations for parameters defined by the USER
@@ -23,12 +24,15 @@
2324
% ani_settings
2425
% save_settings
2526
% plot_settings
27+
% gripper_param
28+
% map_param
29+
% matching_settings
2630
% INPUT
2731
% -
2832

2933
function [robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ani_settings, save_settings, ...
30-
plot_settings] = config_USER_param(robot_param, environment_param, gait_param, control_param, ...
31-
equilibrium_eval_param, ani_settings, save_settings, plot_settings)
34+
plot_settings, gripper_param, map_param, matching_settings] = config_USER_param(robot_param, environment_param, gait_param, control_param, ...
35+
equilibrium_eval_param, ani_settings, save_settings, plot_settings, gripper_param, map_param, matching_settings)
3236
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Robot Parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3337

3438

@@ -54,4 +58,13 @@
5458
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Plot Settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5559

5660

61+
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Gripper Parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
62+
63+
64+
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Map Parameters and settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
65+
66+
67+
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Matching Settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
68+
69+
5770
end

config/config_animation_settings.m

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,12 @@
7171
ani_settings.robot_alpha = 0.8;
7272

7373
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Surface related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
74-
%%% Surface grid color
75-
ani_settings.grid_color = [0.9 0.9 0.9];
76-
%%% Surface color
77-
ani_settings.surface_color = gray;
74+
%%% Surface viz. on/off
75+
ani_settings.surface_show = 'on';
76+
%%% Surface grid color
77+
ani_settings.grid_color = [0.9 0.9 0.9];
78+
%%% Surface color
79+
ani_settings.surface_color = gray;
7880

7981
%%% Graspable points viz. on/off
8082
ani_settings.graspable_points_show = 'off';
@@ -111,20 +113,33 @@
111113
ani_settings.goal_marker = '.';
112114
%%% Goal size
113115
ani_settings.goal_size = 25;
116+
%%% Goal vis. height from the ground
117+
ani_settings.goal_vis_height = 0.0;
114118

115119
%%% Next desired position vis. on/off
116120
ani_settings.next_desired_position_show = 'off';
117121
%%% Next desired position line color m : magenta
118122
ani_settings.next_desired_position_color = 'm';
119123
%%% Next desired position line width
120124
ani_settings.next_desired_position_line_width = 1;
125+
126+
%%% Plot trajectory
127+
ani_settings.trajectory_show = 'on';
128+
%%% Trajectory line color
129+
ani_settings.trajectory_color = 'c';
130+
%%% Trajectory line widith
131+
ani_settings.trajectory_width = 3;
132+
%%% Trajectory line type
133+
ani_settings.trajectory_line_type = ':';
121134

122135
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Equilibrium related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
123136

124137
%%% Support triangle visualization
125138
ani_settings.support_triangle_show = 'off';
126139
%%% Support triangle color
127-
ani_settings.support_triangle_color =[0 1.0 1.0];
140+
ani_settings.support_triangle_color = [0 1.0 1.0];
141+
%%% Support triangle edge line color
142+
ani_settings.support_triangle_edge_color = [0.0 0.0 0.0];
128143
%%% Support triangle transparency
129144
ani_settings.support_triangle_alpha = 0.5;
130145

@@ -159,5 +174,7 @@
159174
ani_settings.com_projection_marker = '.';
160175
%%% CoM projection point size
161176
ani_settings.com_projection_size = 25;
177+
%%% CoM projection point vis. height from the ground
178+
ani_settings.com_projection_vis_height = 0.0;
162179

163180
end

config/config_environment_param.m

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
%%% Dynamics on/off
2929
environment_param.dynamics_flag = 'on';
3030

31+
%%% Gripper detachment method ('none', 'max_holding_force')
32+
environment_param.detachment_detection_method = 'none';
33+
3134
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Time settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3235

3336
%%% Time-step [s]
@@ -43,7 +46,7 @@
4346
environment_param.surface_K = 1000;
4447
%%% Ground reaction force damping coefficient (scalar)
4548
environment_param.surface_D = 1;
46-
%%% Graspable points detection type
49+
%%% Graspable points detection type ('all', 'gripper', 'peaks')
4750
environment_param.graspable_points_detection_type = 'all';
4851

4952
end

config/config_plot_settings.m

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
%%%%%%
66
%%%%%% Created 2020-07-08
77
%%%%%% Warley Ribeiro
8-
%%%%%% Last update: 2020-07-08
8+
%%%%%% Last update: 2020-09-08
99
%
1010
%
1111
% Load default configurations for plots
@@ -32,6 +32,43 @@
3232
%%% Plot Base position
3333
plot_settings.base_pos = 'on';
3434
plot_settings.base_pos_fig_number = 2;
35+
%%% Plot Base orientation
36+
plot_settings.base_ori = 'off';
37+
plot_settings.base_ori_fig_number = 3;
38+
%%% Plot Base velocity
39+
plot_settings.base_vel = 'off';
40+
plot_settings.base_vel_fig_number = 4;
41+
%%% Plot Base angular velocity
42+
plot_settings.base_angvel = 'off';
43+
plot_settings.base_angvel_fig_number = 5;
44+
%%% Plot Base velocity
45+
plot_settings.base_acc = 'off';
46+
plot_settings.base_acc_fig_number = 6;
47+
%%% Plot Base angular velocity
48+
plot_settings.base_angacc = 'off';
49+
plot_settings.base_angacc_fig_number = 7;
50+
51+
%%% Plot Joint angular position
52+
plot_settings.joint_pos = 'off';
53+
plot_settings.joint_pos_fig_number = 8;
54+
%%% Plot Joint angular velocity
55+
plot_settings.joint_vel = 'off';
56+
plot_settings.joint_vel_fig_number = 9;
57+
%%% Plot Joint angular acceleration
58+
plot_settings.joint_acc = 'off';
59+
plot_settings.joint_acc_fig_number = 10;
60+
%%% Plot Joint torque
61+
plot_settings.joint_torque = 'off';
62+
plot_settings.joint_torque_fig_number = 11;
63+
64+
%%% Plot Leg Position
65+
plot_settings.leg_pos = 'off';
66+
plot_settings.leg_pos_fig_number = 12; % and 13, 14, 15 are also used
67+
68+
%%% Plot Reaction Force
69+
plot_settings.reaction_force = 'off';
70+
plot_settings.reaction_force_fig_number = 16; % and 17~23 are also used
71+
3572

3673
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Gait related %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3774
%%% 101 ~ 200

config/config_robot_param.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
function robot_param = config_robot_param()
2121
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% General settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2222

23-
%%% Type of the robot to simulate ('HubRobo_no_grip', 'HubRobo_grip_to_palm', 'HubRobo_grip_to_spine')
24-
robot_param.robot_type = 'HubRobo_grip_to_palm';
23+
%%% Type of the robot to simulate ('HubRobo_v2_2_no_grip', 'HubRobo_v2_2_grip_to_palm', 'HubRobo_v3_1_grip_to_palm', 'HubRobo_v2_2_grip_to_spine')
24+
robot_param.robot_type = 'HubRobo_v2_2_grip_to_palm';
2525

2626
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Position settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2727

config/config_simulation.m

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
%%%%%%
66
%%%%%% Created 2020-07-09
77
%%%%%% Warley Ribeiro
8-
%%%%%% Last update: 2020-07-09
8+
%%%%%% Last update: 2020-10-15
9+
%%%%%% Keentaro Uno
910
%
1011
%
1112
% Load configurations for simulation
@@ -21,11 +22,14 @@
2122
% ani_settings
2223
% save_settings
2324
% plot_settings
25+
% gripper_param
26+
% map_param
27+
% matching_settings
2428
% INPUT
2529
% config
2630

2731
function [robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ani_settings, save_settings, ...
28-
plot_settings] = config_simulation(config)
32+
plot_settings, gripper_param, map_param, matching_settings] = config_simulation(config)
2933
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% General settings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3034

3135
robot_param = config_robot_param();
@@ -37,11 +41,12 @@
3741
ani_settings = config_animation_settings();
3842
save_settings = config_save_settings();
3943
plot_settings = config_plot_settings();
44+
[gripper_param, map_param, matching_settings] = config_target_detection_param();
4045

4146
if strcmp(config,'USER')
4247
[robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ani_settings, save_settings, ...
43-
plot_settings] = config_USER_param(robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ...
44-
ani_settings, save_settings, plot_settings);
48+
plot_settings, gripper_param, map_param, matching_settings] = config_USER_param(robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ...
49+
ani_settings, save_settings, plot_settings, gripper_param, map_param, matching_settings);
4550
end
4651
if strcmp(config,'gia_static')
4752
[robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ani_settings, save_settings, ...
@@ -53,5 +58,15 @@
5358
plot_settings] = config_uno_crawl_param(robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ...
5459
ani_settings, save_settings, plot_settings);
5560
end
56-
61+
if strcmp(config,'nonperiodic_demo_param')
62+
[robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ani_settings, save_settings, ...
63+
plot_settings] = config_nonperiodic_demo_param(robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ...
64+
ani_settings, save_settings, plot_settings);
65+
end
66+
if strcmp(config,'iSAIRAS_2020_demo_param')
67+
[robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ani_settings, save_settings, ...
68+
plot_settings, gripper_param, map_param, matching_settings] = config_iSAIRAS_2020_demo_param(robot_param, environment_param, gait_param, control_param, equilibrium_eval_param, ...
69+
ani_settings, save_settings, plot_settings, gripper_param, map_param, matching_settings);
70+
end
71+
5772
end

0 commit comments

Comments
 (0)