├── .gitignore
├── 404.html
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── README.md
├── _config.yml
├── _data
└── settings.yml
├── _includes
├── disqus.html
├── footer.html
├── google-analytics.html
├── head.html
└── header.html
├── _layouts
├── default.html
├── home.html
├── misc.html
└── page.html
├── assets
├── css
│ ├── _sass
│ │ ├── _-sections-dir.scss
│ │ ├── _base.scss
│ │ ├── _code.scss
│ │ ├── _default.scss
│ │ ├── _footer.scss
│ │ ├── _header.scss
│ │ ├── _post.scss
│ │ └── _social-icons.scss
│ ├── main.scss
│ └── syntax.css
├── img
│ ├── figure1.png
│ └── figure2.png
└── paper
│ └── 2020_science_robotics_lee_locomotion.pdf
├── favicon.ico
├── index.html
├── pages
└── Acknowlegment.html
└── rss-feed.xml
/.gitignore:
--------------------------------------------------------------------------------
1 | _site/
2 | .sass-cache/
3 | .jekyll-cache/
4 | .jekyll-metadata
5 | .idea/
6 |
--------------------------------------------------------------------------------
/404.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: "404: Page not found"
4 | permalink: 404.html
5 | ---
6 |
7 |
8 |
404: Page not found
9 |
10 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | # bundle exec jekyll serve
4 |
5 | # gem "jekyll", "~> 3.6.2"
6 | gem "minima", "~> 2.0"
7 |
8 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
9 | # uncomment the line below. To upgrade, run `bundle update github-pages`.
10 | gem "github-pages", group: :jekyll_plugins
11 |
12 | # If you have any plugins, put them here!
13 | group :jekyll_plugins do
14 | gem "jekyll-feed", "~> 0.6"
15 | end
16 |
17 | # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
18 | gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
19 | gem 'jekyll-paginate'
20 | gem 'jekyll-sitemap'
21 | gem 'jekyll-seo-tag'
22 |
23 | # Dependabot security update
24 | gem "nokogiri", ">= 1.11.0.rc4"
25 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | activesupport (6.0.3.4)
5 | concurrent-ruby (~> 1.0, >= 1.0.2)
6 | i18n (>= 0.7, < 2)
7 | minitest (~> 5.1)
8 | tzinfo (~> 1.1)
9 | zeitwerk (~> 2.2, >= 2.2.2)
10 | addressable (2.7.0)
11 | public_suffix (>= 2.0.2, < 5.0)
12 | coffee-script (2.4.1)
13 | coffee-script-source
14 | execjs
15 | coffee-script-source (1.11.1)
16 | colorator (1.1.0)
17 | commonmarker (0.17.13)
18 | ruby-enum (~> 0.5)
19 | concurrent-ruby (1.1.7)
20 | dnsruby (1.61.4)
21 | simpleidn (~> 0.1)
22 | em-websocket (0.5.2)
23 | eventmachine (>= 0.12.9)
24 | http_parser.rb (~> 0.6.0)
25 | ethon (0.12.0)
26 | ffi (>= 1.3.0)
27 | eventmachine (1.2.7)
28 | execjs (2.7.0)
29 | faraday (1.1.0)
30 | multipart-post (>= 1.2, < 3)
31 | ruby2_keywords
32 | ffi (1.13.1)
33 | forwardable-extended (2.6.0)
34 | gemoji (3.0.1)
35 | github-pages (209)
36 | github-pages-health-check (= 1.16.1)
37 | jekyll (= 3.9.0)
38 | jekyll-avatar (= 0.7.0)
39 | jekyll-coffeescript (= 1.1.1)
40 | jekyll-commonmark-ghpages (= 0.1.6)
41 | jekyll-default-layout (= 0.1.4)
42 | jekyll-feed (= 0.15.1)
43 | jekyll-gist (= 1.5.0)
44 | jekyll-github-metadata (= 2.13.0)
45 | jekyll-mentions (= 1.6.0)
46 | jekyll-optional-front-matter (= 0.3.2)
47 | jekyll-paginate (= 1.1.0)
48 | jekyll-readme-index (= 0.3.0)
49 | jekyll-redirect-from (= 0.16.0)
50 | jekyll-relative-links (= 0.6.1)
51 | jekyll-remote-theme (= 0.4.2)
52 | jekyll-sass-converter (= 1.5.2)
53 | jekyll-seo-tag (= 2.6.1)
54 | jekyll-sitemap (= 1.4.0)
55 | jekyll-swiss (= 1.0.0)
56 | jekyll-theme-architect (= 0.1.1)
57 | jekyll-theme-cayman (= 0.1.1)
58 | jekyll-theme-dinky (= 0.1.1)
59 | jekyll-theme-hacker (= 0.1.2)
60 | jekyll-theme-leap-day (= 0.1.1)
61 | jekyll-theme-merlot (= 0.1.1)
62 | jekyll-theme-midnight (= 0.1.1)
63 | jekyll-theme-minimal (= 0.1.1)
64 | jekyll-theme-modernist (= 0.1.1)
65 | jekyll-theme-primer (= 0.5.4)
66 | jekyll-theme-slate (= 0.1.1)
67 | jekyll-theme-tactile (= 0.1.1)
68 | jekyll-theme-time-machine (= 0.1.1)
69 | jekyll-titles-from-headings (= 0.5.3)
70 | jemoji (= 0.12.0)
71 | kramdown (= 2.3.0)
72 | kramdown-parser-gfm (= 1.1.0)
73 | liquid (= 4.0.3)
74 | mercenary (~> 0.3)
75 | minima (= 2.5.1)
76 | nokogiri (>= 1.10.4, < 2.0)
77 | rouge (= 3.23.0)
78 | terminal-table (~> 1.4)
79 | github-pages-health-check (1.16.1)
80 | addressable (~> 2.3)
81 | dnsruby (~> 1.60)
82 | octokit (~> 4.0)
83 | public_suffix (~> 3.0)
84 | typhoeus (~> 1.3)
85 | html-pipeline (2.14.0)
86 | activesupport (>= 2)
87 | nokogiri (>= 1.4)
88 | http_parser.rb (0.6.0)
89 | i18n (0.9.5)
90 | concurrent-ruby (~> 1.0)
91 | jekyll (3.9.0)
92 | addressable (~> 2.4)
93 | colorator (~> 1.0)
94 | em-websocket (~> 0.5)
95 | i18n (~> 0.7)
96 | jekyll-sass-converter (~> 1.0)
97 | jekyll-watch (~> 2.0)
98 | kramdown (>= 1.17, < 3)
99 | liquid (~> 4.0)
100 | mercenary (~> 0.3.3)
101 | pathutil (~> 0.9)
102 | rouge (>= 1.7, < 4)
103 | safe_yaml (~> 1.0)
104 | jekyll-avatar (0.7.0)
105 | jekyll (>= 3.0, < 5.0)
106 | jekyll-coffeescript (1.1.1)
107 | coffee-script (~> 2.2)
108 | coffee-script-source (~> 1.11.1)
109 | jekyll-commonmark (1.3.1)
110 | commonmarker (~> 0.14)
111 | jekyll (>= 3.7, < 5.0)
112 | jekyll-commonmark-ghpages (0.1.6)
113 | commonmarker (~> 0.17.6)
114 | jekyll-commonmark (~> 1.2)
115 | rouge (>= 2.0, < 4.0)
116 | jekyll-default-layout (0.1.4)
117 | jekyll (~> 3.0)
118 | jekyll-feed (0.15.1)
119 | jekyll (>= 3.7, < 5.0)
120 | jekyll-gist (1.5.0)
121 | octokit (~> 4.2)
122 | jekyll-github-metadata (2.13.0)
123 | jekyll (>= 3.4, < 5.0)
124 | octokit (~> 4.0, != 4.4.0)
125 | jekyll-mentions (1.6.0)
126 | html-pipeline (~> 2.3)
127 | jekyll (>= 3.7, < 5.0)
128 | jekyll-optional-front-matter (0.3.2)
129 | jekyll (>= 3.0, < 5.0)
130 | jekyll-paginate (1.1.0)
131 | jekyll-readme-index (0.3.0)
132 | jekyll (>= 3.0, < 5.0)
133 | jekyll-redirect-from (0.16.0)
134 | jekyll (>= 3.3, < 5.0)
135 | jekyll-relative-links (0.6.1)
136 | jekyll (>= 3.3, < 5.0)
137 | jekyll-remote-theme (0.4.2)
138 | addressable (~> 2.0)
139 | jekyll (>= 3.5, < 5.0)
140 | jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
141 | rubyzip (>= 1.3.0, < 3.0)
142 | jekyll-sass-converter (1.5.2)
143 | sass (~> 3.4)
144 | jekyll-seo-tag (2.6.1)
145 | jekyll (>= 3.3, < 5.0)
146 | jekyll-sitemap (1.4.0)
147 | jekyll (>= 3.7, < 5.0)
148 | jekyll-swiss (1.0.0)
149 | jekyll-theme-architect (0.1.1)
150 | jekyll (~> 3.5)
151 | jekyll-seo-tag (~> 2.0)
152 | jekyll-theme-cayman (0.1.1)
153 | jekyll (~> 3.5)
154 | jekyll-seo-tag (~> 2.0)
155 | jekyll-theme-dinky (0.1.1)
156 | jekyll (~> 3.5)
157 | jekyll-seo-tag (~> 2.0)
158 | jekyll-theme-hacker (0.1.2)
159 | jekyll (> 3.5, < 5.0)
160 | jekyll-seo-tag (~> 2.0)
161 | jekyll-theme-leap-day (0.1.1)
162 | jekyll (~> 3.5)
163 | jekyll-seo-tag (~> 2.0)
164 | jekyll-theme-merlot (0.1.1)
165 | jekyll (~> 3.5)
166 | jekyll-seo-tag (~> 2.0)
167 | jekyll-theme-midnight (0.1.1)
168 | jekyll (~> 3.5)
169 | jekyll-seo-tag (~> 2.0)
170 | jekyll-theme-minimal (0.1.1)
171 | jekyll (~> 3.5)
172 | jekyll-seo-tag (~> 2.0)
173 | jekyll-theme-modernist (0.1.1)
174 | jekyll (~> 3.5)
175 | jekyll-seo-tag (~> 2.0)
176 | jekyll-theme-primer (0.5.4)
177 | jekyll (> 3.5, < 5.0)
178 | jekyll-github-metadata (~> 2.9)
179 | jekyll-seo-tag (~> 2.0)
180 | jekyll-theme-slate (0.1.1)
181 | jekyll (~> 3.5)
182 | jekyll-seo-tag (~> 2.0)
183 | jekyll-theme-tactile (0.1.1)
184 | jekyll (~> 3.5)
185 | jekyll-seo-tag (~> 2.0)
186 | jekyll-theme-time-machine (0.1.1)
187 | jekyll (~> 3.5)
188 | jekyll-seo-tag (~> 2.0)
189 | jekyll-titles-from-headings (0.5.3)
190 | jekyll (>= 3.3, < 5.0)
191 | jekyll-watch (2.2.1)
192 | listen (~> 3.0)
193 | jemoji (0.12.0)
194 | gemoji (~> 3.0)
195 | html-pipeline (~> 2.2)
196 | jekyll (>= 3.0, < 5.0)
197 | kramdown (2.3.0)
198 | rexml
199 | kramdown-parser-gfm (1.1.0)
200 | kramdown (~> 2.0)
201 | liquid (4.0.3)
202 | listen (3.2.1)
203 | rb-fsevent (~> 0.10, >= 0.10.3)
204 | rb-inotify (~> 0.9, >= 0.9.10)
205 | mercenary (0.3.6)
206 | mini_portile2 (2.5.0)
207 | minima (2.5.1)
208 | jekyll (>= 3.5, < 5.0)
209 | jekyll-feed (~> 0.9)
210 | jekyll-seo-tag (~> 2.1)
211 | minitest (5.14.2)
212 | multipart-post (2.1.1)
213 | nokogiri (1.11.0)
214 | mini_portile2 (~> 2.5.0)
215 | racc (~> 1.4)
216 | octokit (4.19.0)
217 | faraday (>= 0.9)
218 | sawyer (~> 0.8.0, >= 0.5.3)
219 | pathutil (0.16.2)
220 | forwardable-extended (~> 2.6)
221 | public_suffix (3.1.1)
222 | racc (1.5.2)
223 | rb-fsevent (0.10.4)
224 | rb-inotify (0.10.1)
225 | ffi (~> 1.0)
226 | rexml (3.2.4)
227 | rouge (3.23.0)
228 | ruby-enum (0.8.0)
229 | i18n
230 | ruby2_keywords (0.0.2)
231 | rubyzip (2.3.0)
232 | safe_yaml (1.0.5)
233 | sass (3.7.4)
234 | sass-listen (~> 4.0.0)
235 | sass-listen (4.0.0)
236 | rb-fsevent (~> 0.9, >= 0.9.4)
237 | rb-inotify (~> 0.9, >= 0.9.7)
238 | sawyer (0.8.2)
239 | addressable (>= 2.3.5)
240 | faraday (> 0.8, < 2.0)
241 | simpleidn (0.1.1)
242 | unf (~> 0.1.4)
243 | terminal-table (1.8.0)
244 | unicode-display_width (~> 1.1, >= 1.1.1)
245 | thread_safe (0.3.6)
246 | typhoeus (1.4.0)
247 | ethon (>= 0.9.0)
248 | tzinfo (1.2.7)
249 | thread_safe (~> 0.1)
250 | unf (0.1.4)
251 | unf_ext
252 | unf_ext (0.0.7.7)
253 | unicode-display_width (1.7.0)
254 | zeitwerk (2.4.0)
255 |
256 | PLATFORMS
257 | ruby
258 |
259 | DEPENDENCIES
260 | github-pages
261 | jekyll-feed (~> 0.6)
262 | jekyll-paginate
263 | jekyll-seo-tag
264 | jekyll-sitemap
265 | minima (~> 2.0)
266 | nokogiri (>= 1.11.0.rc4)
267 | tzinfo-data
268 |
269 | BUNDLED WITH
270 | 2.1.4
271 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Joonho Lee
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Project page for Science Robotics paper "Learning Quadrupedal Locomotion over Challenging Terrain"
2 | ### Author: Joonho Lee (jolee@ethz.ch)
3 | ### https://leggedrobotics.github.io/rl-blindloco
4 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Site Build Settings
2 |
3 | # jekyll-paginate configuration
4 | paginate: 5
5 |
6 | # Build settings
7 | markdown: kramdown
8 | highlighter: rouge
9 | permalink: none
10 | plugins: [jekyll-paginate, jekyll-sitemap, jekyll-feed, jekyll-seo-tag]
11 |
12 | sass:
13 | sass_dir: assets/css
14 | style: :nested
15 |
16 | # Customise atom feed settings (this is where Jekyll-Feed gets configuration information)
17 | title: "Learning Quadrupedal Locomotion over Challenging Terrain"
18 | description: "Project page for the science robotics paper"
19 | author: "Joonho Lee"
20 |
21 | # RSS 2.0 can be used instead of Atom by uncommenting following two lines
22 | #feed:
23 | # path: rss-feed.xml
24 |
--------------------------------------------------------------------------------
/_data/settings.yml:
--------------------------------------------------------------------------------
1 | # Change 'comments' to true for Disqus comments
2 | disqus:
3 | comments: false
4 | disqus_shortname: 'blindloco'
5 |
6 | # If you are not using Google Analytics, please change 'google-ID' to an empty string
7 | google-ID: ''
8 |
9 | menu:
10 | - {name: 'Acknowledgment', folder: 'pages', file: 'Acknowlegment.html'}
11 |
12 | # Available social icons are powered by Font Awesome, so you can use any icon that they offer
13 | social:
14 | - {icon: 'youtube', link: 'https://www.youtube.com/leggedrobotics'}
15 | - {icon: 'twitter', link: 'https://twitter.com/leggedrobotics'}
16 | - {icon: 'facebook', link: 'https://www.facebook.com/leggedrobotics'}
17 | - {icon: 'instagram', link: 'https://www.instagram.com/leggedrobotics/'}
18 | #- {icon: 'rss-square', link: 'feed.xml'}
19 | # - {icon: 'rss-square', link: 'rss-feed.xml'}
20 |
21 | # Customize site text
22 | pagination:
23 | next_page: 'Newer'
24 | previous_page: 'Older'
25 |
26 | sharing_button_prompt: 'Feel free to share!'
27 |
28 | #related_posts: 'You may also enjoy...'
29 |
30 | post_date_prefix: 'Written on'
31 |
--------------------------------------------------------------------------------
/_includes/disqus.html:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/_includes/google-analytics.html:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% if page.title == "Home" %}
5 | {{ site.title }} | {{ site.description }}
6 | {% else %}
7 | {{ page.title }} | {{ site.title }}
8 | {% endif %}
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | {% feed_meta %}
18 |
21 |
22 |
23 |
24 |
25 |
26 |
29 |
30 |
31 | {% include google-analytics.html %}
32 |
33 |
34 | {% seo %}
35 |
36 |
37 |
--------------------------------------------------------------------------------
/_includes/header.html:
--------------------------------------------------------------------------------
1 |
29 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% include head.html %}
5 |
6 |
7 |
8 |
9 | {% include header.html %}
10 |
11 | {{ content }}
12 |
13 | {% include footer.html %}
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/_layouts/home.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Home
4 | ---
5 |
6 |
7 | {{ content }}
8 |
9 |
10 |
11 | {% if site.data.settings.disqus.comments %}
12 | {% include disqus.html %}
13 | {% endif %}
14 |
--------------------------------------------------------------------------------
/_layouts/misc.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 | {{ page.title }}
8 |
9 |
10 |
11 | {{ content }}
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/_layouts/page.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 | {{ page.title }}
8 |
9 |
10 |
11 |
12 | {{ content }}
13 |
14 |
--------------------------------------------------------------------------------
/assets/css/_sass/_-sections-dir.scss:
--------------------------------------------------------------------------------
1 | // Importing Sass/SCSS partials from `sass_dir` (defaults to `_sass`)
2 | @import "base",
3 | "default",
4 | "post",
5 | "header",
6 | "footer",
7 | "code",
8 | "social-icons";
9 | // SCSS files roughly correspond to HTML files in _includes and _layouts
10 |
--------------------------------------------------------------------------------
/assets/css/_sass/_base.scss:
--------------------------------------------------------------------------------
1 | /*
2 | Reset some basic elements
3 | */
4 |
5 | body, h1, h2, h3, h4, h5, h6,
6 | p, blockquote, pre, hr,
7 | dl, dd, ol, ul, figure {
8 | margin: 0;
9 | padding: 0;
10 | }
11 |
12 | /*
13 | Basic styling
14 | */
15 |
16 | /* Headings */
17 | h1, h2, h3, h4, h5, h6 {
18 | margin-bottom: .5rem;
19 | font-weight: bold;
20 | line-height: 1.25;
21 | text-rendering: optimizeLegibility;
22 | }
23 |
24 | h1 {
25 | font-size: 2.0rem;
26 | }
27 | h2 {
28 | margin-top: 1rem;
29 | margin-bottom: 1.5rem;
30 |
31 | font-size: 1.7rem;
32 | }
33 | h3 {
34 | margin-top: 1.5rem;
35 | font-size: 1.5rem;
36 | }
37 | h4, h5 {
38 | margin-top: 1rem;
39 | margin-right: 1rem;
40 | font-size: 1rem;
41 | }
42 | h6 {
43 | margin-top: 0.25rem;
44 | margin-right: 0.25rem;
45 | font-size: 1rem;
46 | }
47 |
48 |
49 | hr.thick {
50 | border: solid;
51 | color: #f2f2f2;
52 | border-width: 2px;
53 | }
54 |
55 | hr.thick2 {
56 | border: solid;
57 | color: #f2f2f2;
58 | border-width: 6px;
59 | }
60 |
61 |
62 | /* Body */
63 | body {
64 | font-family: $base-font-family;
65 | }
66 | body img {
67 | align: middle;
68 | margin: 5px auto auto auto;
69 | display: block;
70 | max-width: $container-width;
71 | width: 100%;
72 | }
73 |
74 |
75 | p {
76 | display: block;
77 | margin-top: 1em;
78 | margin-bottom: 1em;
79 | margin-left: 0;
80 | margin-right: 0;
81 | line-height: 1.65;
82 | font-family: $body-font-family;
83 | }
84 |
85 | /* Lists */
86 | ul, ol, dl {
87 | margin-top: 1rem;
88 | margin-bottom: 1rem;
89 | margin-left: 1.5rem;
90 | font-family: $body-font-family;
91 | }
92 |
93 | ol li {
94 | margin-top: 1rem;
95 | margin-bottom: 1rem;
96 | margin-left: 1.5rem;
97 | }
98 |
99 | li {
100 | margin-bottom: 1rem;
101 | }
102 |
103 | dt {
104 | font-weight: bold;
105 | }
106 | dd {
107 | margin-bottom: .5rem;
108 | }
109 |
110 | /*
111 | Links
112 | */
113 |
114 | a {
115 | text-decoration: none!important;
116 | color: $highlight-color;
117 | }
118 |
119 | /*
120 | Blockquote
121 | */
122 |
123 | blockquote {
124 | margin: 10px 20px 10px;
125 | padding: 0px 15px;
126 | border-left: 0.25em solid #ccc;
127 | color: #999;
128 | line-height: 1.5;
129 | }
130 |
131 | /**
132 | * Tables
133 | */
134 | table {
135 | border-collapse: collapse;
136 | margin-bottom: 30px;
137 | width: 100%;
138 | }
139 |
140 | table, th, td {
141 | border: 1px solid black;
142 | }
143 | th, td {
144 | padding: 15px;
145 | text-align: left;
146 | }
147 |
--------------------------------------------------------------------------------
/assets/css/_sass/_code.scss:
--------------------------------------------------------------------------------
1 | code,
2 | pre {
3 | font-family: $code-font-family
4 | }
5 | code {
6 | padding: .25em .5em;
7 | font-size: .8rem;
8 | background-color: #f5f5f5;
9 | border-radius: 3px;
10 | }
11 | pre {
12 | display: block;
13 | margin-top: 0;
14 | margin-bottom: 1rem;
15 | padding: 1rem;
16 | font-size: .8rem;
17 | line-height: 1.4;
18 | white-space: pre;
19 | white-space: pre-wrap;
20 | word-break: break-all;
21 | word-wrap: break-word;
22 | background-color: #f5f5f5;
23 | }
24 | pre code {
25 | padding: 0;
26 | font-size: 100%;
27 | color: inherit;
28 | background-color: transparent;
29 | }
30 |
31 | /* Pygments via Jekyll */
32 | .highlight {
33 | margin-bottom: 1rem;
34 | border-radius: 4px;
35 | }
36 | .highlight pre {
37 | margin-bottom: 0;
38 | }
39 |
40 | /* Gist via GitHub Pages */
41 | .gist .gist-file {
42 | font-family: $code-font-family !important;
43 | }
44 | .gist .markdown-body {
45 | padding: 15px;
46 | }
47 | .gist pre {
48 | padding: 0;
49 | background-color: transparent;
50 | }
51 | .gist .gist-file .gist-data {
52 | font-size: .8rem !important;
53 | line-height: 1.4;
54 | }
55 | .gist code {
56 | padding: 0;
57 | color: inherit;
58 | background-color: transparent;
59 | border-radius: 0;
60 | }
61 |
--------------------------------------------------------------------------------
/assets/css/_sass/_default.scss:
--------------------------------------------------------------------------------
1 | /*
2 | Site container
3 | */
4 |
5 | .container {
6 | width: $container-width;
7 | margin-left: auto;
8 | margin-right: auto;
9 | }
10 | .container a {
11 | text-decoration: underline;
12 | }
13 | .posts-wrapper {
14 | padding-top: $header-thickness+10px;
15 | margin: auto;
16 | display: block;
17 | width: $container-width - 20px;
18 | }
19 | .posts-wrapper h1 {
20 | margin: 20px 0px 5px;
21 | }
22 | @media (max-width: $container-width) {
23 | .container {
24 | width: 95vw;
25 | margin-left: auto;
26 | margin-right: auto;
27 | }
28 | .posts-wrapper {
29 | padding-top: $header-thickness+10px;
30 | margin: auto;
31 | display: block;
32 | width: 95vw;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/assets/css/_sass/_footer.scss:
--------------------------------------------------------------------------------
1 | .footer {
2 | background: white;
3 | color: $brand-color;
4 | text-align: center;
5 | min-height: 56px;
6 | line-height: 45px;
7 | width: $container-width;
8 | }
9 | .footer a {
10 | color: $brand-color;
11 | padding: 0px 10px 0px;
12 | text-decoration: none;
13 | }
14 | @media (max-width: $container-width) {
15 | .footer {
16 | background: white;
17 | color: $brand-color;
18 | text-align: center;
19 | min-height: 56px;
20 | line-height: 45px;
21 | width: 95vw;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/assets/css/_sass/_header.scss:
--------------------------------------------------------------------------------
1 | .site-header {
2 | min-height: 50px;
3 | width: $container-width;
4 | position: fixed;
5 | font-size: 30;
6 | //background-color: #ededed;
7 | background-color: white;
8 | box-shadow: 0 5px 6px -6px #bbb;
9 | z-index: 100;
10 | }
11 |
12 |
13 | @media (max-width: $container-width) {
14 | .site-header {
15 | min-height: 50px;
16 | width: 95vw;
17 | position: fixed;
18 | //background-color: #ededed;
19 | background-color: white;
20 | box-shadow: 0 5px 6px -6px #bbb;
21 | z-index: 100;
22 | }
23 | }
24 | .site-header a {
25 | text-decoration: none;
26 | color: $brand-color
27 | }
28 | .site-title {
29 | font-size: 24px;
30 | font-weight: 400;
31 | line-height: 24px;
32 | margin-bottom: 0;
33 | margin-top: 20px;
34 | padding-left: 10px;
35 | float: left;
36 | }
37 | .menu-list {
38 | font-size: 30px;
39 | line-height: $header-thickness;
40 | float: right;
41 | }
42 | .menu-link {
43 | padding: 5px 10px;
44 | }
45 |
46 | /*
47 | Responsiveness with a dropdown menu
48 | */
49 |
50 | //@media (min-width: $container-width) {
51 | // .dropbtn {
52 | // display: none;
53 | //
54 | // }
55 | // .dropdown-content {
56 | // display: none;
57 | // }
58 | //}
59 | @media (max-width: $container-width) {
60 | //.menu-list {
61 | // display: none;
62 | //}
63 | .site-title {
64 | display: none;
65 | }}
66 | .dropbtn {
67 | background-color: white;
68 | color: black;
69 | padding: 16px;
70 | margin-top: 4px;
71 | font-size: 25px;
72 | border: none;
73 | cursor: pointer;
74 | }
75 | .dropdown {
76 | position: relative;
77 | display: inline-block;
78 | }
79 | .dropdown-content {
80 | display: none;
81 | position: absolute;
82 | background-color: #f9f9f9;
83 | min-width: 160px;
84 | box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
85 | z-index: 1;
86 | //right:0;
87 | }
88 | .dropdown-content a {
89 | color: black;
90 | padding: 12px 16px;
91 | text-decoration: none;
92 | display: block;
93 | }
94 | .dropdown-content a:hover {
95 | background-color: #f1f1f1
96 | }
97 | .dropdown:hover .dropdown-content {
98 | display: block;
99 | }
100 | .dropdown:hover .dropbtn {
101 | background-color: #f1f1f1;
102 | }
103 |
104 |
--------------------------------------------------------------------------------
/assets/css/_sass/_post.scss:
--------------------------------------------------------------------------------
1 | .page-content {
2 | width: 600px;
3 | display: block;
4 | margin-left: auto;
5 | margin-right: auto;
6 | margin-top: 10px;
7 | margin-bottom: 10px;
8 | }
9 | .videoWrapper {
10 | position: relative;
11 | padding-bottom: 56.25%; /* 16:9 */
12 | height: 0;
13 | }
14 | .videoWrapper iframe {
15 | position: absolute;
16 | top: 0;
17 | left: 0;
18 | width: 100%;
19 | height: 100%;
20 | }
21 |
22 | .figure {
23 | opacity: 1;
24 | display: table;
25 | height: auto;
26 | transition: .5s ease;
27 | backface-visibility: hidden;
28 | margin-left: auto;
29 | margin-right: auto;
30 | }
31 |
32 | .caption {
33 | transition: .5s ease;
34 | opacity: 0.6;
35 | position: absolute;
36 | bottom: 5px;
37 | left: 5px;
38 | background-color: $light-gray-color;
39 | color: black;
40 | margin-top: 0.5rem;
41 | padding-top: 0.25rem;
42 | padding-bottom: 0.25rem;
43 | padding-right: 0.5rem;
44 | font-size: 1.2rem;
45 | font-weight: bold;
46 | line-height: 1.5;
47 | text-rendering: optimizeLegibility;
48 | }
49 | figcaption {
50 | background-color: $light-gray-color;
51 | color: black;
52 | text-align: center;
53 | //display: table-caption;
54 | caption-side: bottom;
55 | padding: 10px;
56 | font-size: 1.2rem;
57 | font-weight: bold;
58 | line-height: 1.25;
59 | text-rendering: optimizeLegibility;
60 | }
61 |
62 | .caption2 {
63 | transition: .5s ease;
64 | opacity: 1.0;
65 | position: absolute;
66 | bottom: 1px;
67 | left: 5px;
68 | background-color: black;
69 | color: white;
70 | }
71 |
72 | .figure-container {
73 | position: relative;
74 | }
75 |
76 | .figure-container:hover .figure{
77 | opacity: 0.3
78 | }
79 |
80 | .figure-container:hover .caption{
81 | position: absolute;
82 | padding-left: 25px;
83 | opacity: 1.0;
84 | }
85 |
86 |
87 | .paper-title {
88 | text-align-last: left;
89 | padding: 10px 0px 5px;
90 | // font-weight: 500;
91 | font-size: 2.0em;
92 | font-weight: bold;
93 | line-height: 1.5;
94 | text-rendering: optimizeLegibility;
95 | }
96 |
97 | .paper-authors {
98 | text-align-last: left;
99 | font-size: 23px;
100 | font-weight: 400;
101 | line-height: 23px;
102 | color: $gray-color;
103 | margin-bottom: 25px;
104 | text-rendering: optimizeLegibility;
105 | }
106 | .paper-affiliations {
107 | text-align-last: left;
108 | font-size: 20px;
109 | font-weight: 300;
110 | line-height: 18px;
111 | color: $gray-color;
112 | margin-bottom: 15px;
113 | text-decoration: none;
114 | text-rendering: optimizeLegibility;
115 |
116 | }
117 | .paper-paragraph {
118 | text-align: justify;
119 | font-size: 23px;
120 | // font-weight: 300;
121 | line-height: 25px;
122 | text-rendering: optimizeLegibility;
123 | }
124 |
125 | //hr {
126 | // display: block;
127 | // margin-top: 0.5em;
128 | // margin-bottom: 0.5em;
129 | // margin-left: auto;
130 | // margin-right: auto;
131 | // //border-style: inset;
132 | // border-width: 2px;
133 | //}
134 |
135 |
136 | .post-date {
137 | display: block;
138 | margin-bottom: 1rem;
139 | color: #707070;
140 | font-size:1.5rem;
141 | }
142 |
143 |
144 | @media (max-width: $container-width) {
145 | .page-content {
146 | width: 60vw;
147 | display: block;
148 | margin-left: auto;
149 | margin-right: auto;
150 | margin-top: 10px;
151 | margin-bottom: 10px;
152 | }
153 | .featured-video {
154 | position: relative;
155 | text-align: center;
156 | color: white;
157 | }
158 | }
159 | @media (max-width: $tablet-width) {
160 | .page-content {
161 | width: 95vw;
162 | display: block;
163 | margin-left: auto;
164 | margin-right: auto;
165 | margin-top: 10px;
166 | margin-bottom: 10px;
167 | }
168 | .featured-image img {
169 | align: middle;
170 | margin: 5px auto 25px;
171 | display: block;
172 | max-width: 95vw;
173 | }
174 | }
175 | .post-share {
176 | padding-bottom: 1rem;
177 | }
178 | .sharing-icons a {
179 | padding-right: 10px;
180 | }
--------------------------------------------------------------------------------
/assets/css/_sass/_social-icons.scss:
--------------------------------------------------------------------------------
1 | $icon-transition-time: 1.0s;
2 | $envelope-color: #f39c12;
3 | $twitter-color: #00aced;
4 | $instagram-color: #375989;
5 | $github-color: #343434;
6 | $linkedin-color: #0073a4;
7 | $facebook-color: #3d5b99;
8 | $google-color: #e64a41;
9 | $pinterest-color: #bd081c;
10 | $medium-color: #00AB6C;
11 | $codepen-color: black;
12 | $rss-color: #ff6600;
13 |
14 | @mixin social-media-icon($color, $transition){
15 | -webkit-transition: $transition;
16 | -o-transition: $transition;
17 | -ms-transition: $transition;
18 | -moz-transition: $transition;
19 | transition: $transition;
20 | &:hover{
21 | color: $color;
22 | }
23 | }
24 |
25 | .fa-envelope {
26 | padding: 5px;
27 | @include social-media-icon($envelope-color, $icon-transition-time);
28 | }
29 |
30 | .fa-twitter {
31 | padding: 5px;
32 | @include social-media-icon($twitter-color, $icon-transition-time);
33 | }
34 |
35 | .fa-instagram {
36 | padding: 5px;
37 | @include social-media-icon($instagram-color, $icon-transition-time);
38 | }
39 |
40 | .fa-github {
41 | padding: 5px;
42 | @include social-media-icon($github-color, $icon-transition-time);
43 | }
44 |
45 | .fa-linkedin {
46 | padding: 5px;
47 | @include social-media-icon($linkedin-color, $icon-transition-time);
48 | }
49 |
50 | .fa-facebook {
51 | padding: 5px;
52 | @include social-media-icon($facebook-color, $icon-transition-time);
53 | }
54 |
55 | .fa-google-plus {
56 | padding: 5px;
57 | @include social-media-icon($google-color, $icon-transition-time);
58 | }
59 |
60 | .fa-pinterest {
61 | padding: 5px;
62 | @include social-media-icon($pinterest-color, $icon-transition-time);
63 | }
64 |
65 | .fa-medium {
66 | padding: 5px;
67 | @include social-media-icon($medium-color, $icon-transition-time);
68 | }
69 |
70 | .fa-codepen {
71 | padding: 5px;
72 | @include social-media-icon($codepen-color, $icon-transition-time);
73 | }
74 |
75 | .fa-rss-square {
76 | padding: 5px;
77 | @include social-media-icon($rss-color, $icon-transition-time);
78 | }
79 |
--------------------------------------------------------------------------------
/assets/css/main.scss:
--------------------------------------------------------------------------------
1 | ---
2 | # Front matter comment to ensure Jekyll properly reads file.
3 | ---
4 |
5 | /*
6 | Site variables
7 | */
8 |
9 | $base-font-family: 'Roboto', sans-serif;
10 |
11 | $body-font-family: 'Roboto', sans-serif;
12 |
13 | $code-font-family: "Source Code Pro", monospace;
14 |
15 | $brand-color: black;
16 |
17 | $highlight-color: #236BB0;
18 | $gray-color: #595959;
19 | $light-gray-color: #f2f2f2;
20 |
21 | $text-color: black;
22 |
23 | $container-width: 1000px;
24 |
25 | $tablet-width: 600px;
26 |
27 | $phone-width: 600px;
28 |
29 | $header-thickness: 56px;
30 |
31 | @import "_sass/-sections-dir";
32 |
--------------------------------------------------------------------------------
/assets/css/syntax.css:
--------------------------------------------------------------------------------
1 | .highlight .hll { background-color: #ffc; }
2 | .highlight .c { color: #999; } /* Comment */
3 | .highlight .err { color: #a00; background-color: #faa } /* Error */
4 | .highlight .k { color: #069; } /* Keyword */
5 | .highlight .o { color: #555 } /* Operator */
6 | .highlight .cm { color: #09f; font-style: italic } /* Comment.Multiline */
7 | .highlight .cp { color: #099 } /* Comment.Preproc */
8 | .highlight .c1 { color: #999; } /* Comment.Single */
9 | .highlight .cs { color: #999; } /* Comment.Special */
10 | .highlight .gd { background-color: #fcc; border: 1px solid #c00 } /* Generic.Deleted */
11 | .highlight .ge { font-style: italic } /* Generic.Emph */
12 | .highlight .gr { color: #f00 } /* Generic.Error */
13 | .highlight .gh { color: #030; } /* Generic.Heading */
14 | .highlight .gi { background-color: #cfc; border: 1px solid #0c0 } /* Generic.Inserted */
15 | .highlight .go { color: #aaa } /* Generic.Output */
16 | .highlight .gp { color: #009; } /* Generic.Prompt */
17 | .highlight .gs { } /* Generic.Strong */
18 | .highlight .gu { color: #030; } /* Generic.Subheading */
19 | .highlight .gt { color: #9c6 } /* Generic.Traceback */
20 | .highlight .kc { color: #069; } /* Keyword.Constant */
21 | .highlight .kd { color: #069; } /* Keyword.Declaration */
22 | .highlight .kn { color: #069; } /* Keyword.Namespace */
23 | .highlight .kp { color: #069 } /* Keyword.Pseudo */
24 | .highlight .kr { color: #069; } /* Keyword.Reserved */
25 | .highlight .kt { color: #078; } /* Keyword.Type */
26 | .highlight .m { color: #f60 } /* Literal.Number */
27 | .highlight .s { color: #d44950 } /* Literal.String */
28 | .highlight .na { color: #4f9fcf } /* Name.Attribute */
29 | .highlight .nb { color: #366 } /* Name.Builtin */
30 | .highlight .nc { color: #0a8; } /* Name.Class */
31 | .highlight .no { color: #360 } /* Name.Constant */
32 | .highlight .nd { color: #99f } /* Name.Decorator */
33 | .highlight .ni { color: #999; } /* Name.Entity */
34 | .highlight .ne { color: #c00; } /* Name.Exception */
35 | .highlight .nf { color: #c0f } /* Name.Function */
36 | .highlight .nl { color: #99f } /* Name.Label */
37 | .highlight .nn { color: #0cf; } /* Name.Namespace */
38 | .highlight .nt { color: #2f6f9f; } /* Name.Tag */
39 | .highlight .nv { color: #033 } /* Name.Variable */
40 | .highlight .ow { color: #000; } /* Operator.Word */
41 | .highlight .w { color: #bbb } /* Text.Whitespace */
42 | .highlight .mf { color: #f60 } /* Literal.Number.Float */
43 | .highlight .mh { color: #f60 } /* Literal.Number.Hex */
44 | .highlight .mi { color: #f60 } /* Literal.Number.Integer */
45 | .highlight .mo { color: #f60 } /* Literal.Number.Oct */
46 | .highlight .sb { color: #c30 } /* Literal.String.Backtick */
47 | .highlight .sc { color: #c30 } /* Literal.String.Char */
48 | .highlight .sd { color: #c30; font-style: italic } /* Literal.String.Doc */
49 | .highlight .s2 { color: #c30 } /* Literal.String.Double */
50 | .highlight .se { color: #c30; } /* Literal.String.Escape */
51 | .highlight .sh { color: #c30 } /* Literal.String.Heredoc */
52 | .highlight .si { color: #a00 } /* Literal.String.Interpol */
53 | .highlight .sx { color: #c30 } /* Literal.String.Other */
54 | .highlight .sr { color: #3aa } /* Literal.String.Regex */
55 | .highlight .s1 { color: #c30 } /* Literal.String.Single */
56 | .highlight .ss { color: #fc3 } /* Literal.String.Symbol */
57 | .highlight .bp { color: #366 } /* Name.Builtin.Pseudo */
58 | .highlight .vc { color: #033 } /* Name.Variable.Class */
59 | .highlight .vg { color: #033 } /* Name.Variable.Global */
60 | .highlight .vi { color: #033 } /* Name.Variable.Instance */
61 | .highlight .il { color: #f60 } /* Literal.Number.Integer.Long */
62 |
63 | .css .o,
64 | .css .o + .nt,
65 | .css .nt + .nt { color: #999; }
66 |
--------------------------------------------------------------------------------
/assets/img/figure1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leggedrobotics/rl-blindloco/1d90a1cd96f805c56f0eaab16d41bbf15149bcec/assets/img/figure1.png
--------------------------------------------------------------------------------
/assets/img/figure2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leggedrobotics/rl-blindloco/1d90a1cd96f805c56f0eaab16d41bbf15149bcec/assets/img/figure2.png
--------------------------------------------------------------------------------
/assets/paper/2020_science_robotics_lee_locomotion.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leggedrobotics/rl-blindloco/1d90a1cd96f805c56f0eaab16d41bbf15149bcec/assets/paper/2020_science_robotics_lee_locomotion.pdf
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/leggedrobotics/rl-blindloco/1d90a1cd96f805c56f0eaab16d41bbf15149bcec/favicon.ico
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: home
3 | title: Learning Quadrupedal Locomotion over Challenging Terrain
4 | author: Joonho Lee
5 | ---
6 |
7 |
8 |
9 |
10 |
11 |
12 | {{ page.title }}
13 |
14 |
15 |
16 |
23 |
24 |
25 | 1 Robotic Systems Lab, ETH Zurich
26 | 2 Robotics and Artificial Intelligence Lab, KAIST
27 | 3 Intelligent Systems Lab, Intel
28 |
29 |
30 | † Substantial part of the work was carried out during his stay at 1
31 | * Corresponding author: jolee@ethz.ch
32 |
33 |
34 |
35 |
36 | Paper links
37 |
38 |
39 |
40 | Science Robotics Vol.5 eabc5986 (2020)
41 | Author's version PDF
42 |
43 |
44 |
45 |
46 |
47 | ABSTRACT
48 |
49 | Legged locomotion can extend the operational domain of robots to some of the most challenging environments
50 | on Earth. However, conventional controllers for legged locomotion are based on elaborate state machines that
51 | explicitly trigger the execution of motion primitives and reflexes. These designs have increased in complexity but
52 | fallen short of the generality and robustness of animal locomotion. Here, we present a robust controller for blind
53 | quadrupedal locomotion in challenging natural environments. Our approach incorporates proprioceptive feedback
54 | in locomotion control and demonstrates zero-shot generalization from simulation to natural environments. The
55 | controller is trained by reinforcement learning in simulation. The controller is driven by a neural network policy
56 | that acts on a stream of proprioceptive signals. The controller retains its robustness under conditions that were
57 | never encountered during training: deformable terrains such as mud and snow, dynamic footholds such as rubble,
58 | and overground impediments such as thick vegetation and gushing water. The presented work indicates that
59 | robust locomotion in natural environments can be achieved by training in simple domains.
60 |
61 |
62 |
63 |
64 |
65 | Summary video
66 |
67 |
68 |
69 | VIDEO
72 |
73 |
74 |
75 |
76 |
77 |
Highlights
78 |
79 | Zero-shot generalization to unknown environments
80 |
81 |
82 |
83 | Figure 1. A number of specific deployments
84 | (paper Figure 2)
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 | The presented controller has been deployed in diverse natural environments.
93 | These include steep mountain trails, creeks with running water, mud, thick vegetation, loose rubble,
94 | snow-covered
95 | hills, and a damp forest.
96 | A number of specific scenarios are further highlighted in Fig. 1 A-F. These environments have
97 | characteristics that the policy does not experience during training. The terrains can deform and crumble, with
98 | significant variation of material properties over the surface. The robot's legs are subjected to frequent
99 | disturbances due to vegetation, rubble, and sticky mud.
100 | Existing terrain estimation pipelines that use cameras or LiDAR fail in environments
101 | with
102 | snow (Fig. 1 A), water (Fig. 1 C),
103 | or dense vegetation (Fig. 1 F).
104 | Our controller does not rely on exteroception and is immune to such failure.
105 | The controller learns omnidirectional locomotion based on a history of proprioceptive observations and
106 | is robust in zero-shot deployment on terrains with characteristics that were never experienced during training.
107 |
108 |
109 |
110 | Our controller was used by the Cerberus team for the DARPA Subterranean Challenge Urban Circuit
111 | (Fig. 1 G).
112 | It replaced a model-based controller that had been employed used by the team in the past.
113 | The objective of the competition is to develop robotic systems that rapidly map, navigate,
114 | and search complex underground environments, including tunnels, urban underground, and cave
115 | networks. The human operators are not allowed to assist the robots during the competition physically;
116 | only teleoperation is allowed. Accordingly, the locomotion controller needs to perform without failure
117 | over extended mission durations.
118 | The presented controller drove two ANYmal-B robots in four missions of 60 minutes. The
119 | controller exhibited a zero failure rate throughout the competition. A steep staircase that was traversed
120 | by one of the robots during the competition is shown in Fig. 1 G.
121 |
122 |
123 |
124 |
125 |
126 | Foot-trapping reflex
127 |
128 |
129 |
130 | Movie 1. Step experiment
131 | (paper Movie S3)
132 |
133 |
134 | VIDEO
137 |
138 |
139 |
140 | The learned controller manifests a foot-trapping reflex, as shown in Movie 1 .
141 | The policy identifies the trapping of the foot purely from proprioceptive observations and lifts the foot over
142 | the obstacle.
143 | Such reflexes were not specified in any way during training: they developed adaptively.
144 | This distinguishes the presented approach from conventional controller design methods,
145 | which explicitly build in such reflexes and orchestrate their execution by a higher-level state machine.
146 |
147 |
148 |
149 |
150 |
151 | Robustness to Model-mismatch
152 |
153 |
154 |
155 | Movie 2. Payload experiment
156 | (paper Movie S4)
157 |
158 |
159 | VIDEO
162 |
163 |
164 |
165 | We tested the controllers in the presence of substantial model mismatch.
166 | We attached a 10 kg payload.
167 | This payload is 22.7 % of the total weight of the robot, and was never simulated during training.
168 | As shown in Movie 2 , the presented controller can still traverse steps up to 13.4 cm
169 | despite the model mismatch.
170 | The baseline is incapable of traversing any steps under any command speed with the payload.
171 |
172 |
173 |
174 |
175 |
176 | Robustness to Foot Slippage
177 |
178 |
179 | Movie 3. Foot Slippage experiment
180 | (paper Movie S5)
181 |
182 |
183 | VIDEO
186 |
187 |
188 |
189 | Next we test robustness to foot slippage.
190 | To introduce slippage, we used a moistened whiteboard.
191 | The results are shown in Movie 3 .
192 | The baseline quickly loses balance, aggressively swings the legs, and falls. In contrast, the presented
193 | controller adapts to the slippery terrain and successfully locomotes in the commanded direction.
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
Acknowledgment
203 |
204 |
205 | Author contributions : J.L. formulated
206 | the main idea of the training and control methods, implemented the controller, set up the
207 | simulation, and trained control policies. J.L. performed the indoor experiments. J.H.
208 | contributed in setting up the simulation. J.L. and L.W. performed outdoor experiments
209 | together. J.L., J.H., L.W., M.H., and V.K. refined ideas, contributed in the experiment design,
210 | and analyzed the data.
211 |
212 |
213 | Funding : The project was funded, in part, by the Intel
214 | Network on Intelligent Systems, the Swiss National Science Foundation (SNF) through the
215 | National Centre of Competence in Research Robotics, the European Research Council (ERC)
216 | under the European Union’s Horizon 2020 research and innovation programme grant
217 | agreement no 852044 and no 780883. The work has been conducted as part of ANYmal
218 | Research, a community to advance legged robotics.
219 |
220 |
221 |
222 |
223 |
224 |
--------------------------------------------------------------------------------
/pages/Acknowlegment.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: misc
3 | title: Acknowlegment
4 | ---
5 |
--------------------------------------------------------------------------------
/rss-feed.xml:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 |
5 |
6 | {{ site.title | xml_escape }}
7 | {% if site.description %}{{ site.description | xml_escape }}{% endif %}
8 | {{ site.github.url }}
9 |
10 | {% for post in site.posts limit:10 %}
11 | -
12 |
{{ post.title | xml_escape }}
13 | {% if post.author %}
14 | {{ post.author | xml_escape }}
15 | {% endif %}
16 | {% if post.excerpt %}
17 | {{ post.excerpt | xml_escape }}
18 | {% else %}
19 | {{ post.content | xml_escape }}
20 | {% endif %}
21 | {{ post.date | date_to_rfc822 }}
22 | {{ site.url }}{{ post.url }}
23 | {{ site.url }}{{ post.url }}
24 |
25 | {% endfor %}
26 |
27 |
28 |
--------------------------------------------------------------------------------