diff --git a/README.md b/README.md index abe4fc450..0f5b8f320 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,2 @@ -# Researcher -### [Demo Website](http://ankitsultana.com/researcher) - -A clean, single column, monospace resume template built for jekyll - -### Installation - -Simply fork the repository and edit away. - -#### Installation via remote themes - -* Just setting `remote_theme: ankitsultana/researcher@gem` in `_config.yml` should work. Although in that case, I am not sure how -you would build your site locally for testing. If you know how, open up an issue and let me know. -* For more info, [refer this](https://blog.github.com/2017-11-29-use-any-theme-with-github-pages/). - -### Customization - -* You can edit the `.md` (markdown) files as you see fit. You can also add some other markdown file, say `foo.md` in the root directory of the repository. It will then be accessible like so `{{ url of your website }}/foo`. - -* You can of course remove `contact.md` if you don't want it - -* To set the heading, edit the `title` variable in `_config.yml` - -* To edit the `links` mentioned on the navigation bar, you can edit `_config.yml`. For example: - -``` -nav: - - name: "About" - link: "/researcher/" - - name: "Resume" - link: "resume.pdf" - - name: "Contact" - link: "contact" -``` - -* You can change the accent (color of hyperlinks) by editing the `accent` variable in `_sass/vars.scss` - -* You can setup google analytics, by setting `tracking_id` in `_config.yml` - -* To add a profile picture, make sure to give the image tag the class `profile-picture`. In other words,do it like so: - -```html - -``` - -* You can remove/customize the footer as you like by setting the -appropriate variables in `_config.yml` - -* (New in v1.2.0) You can add institute logo at the top, by setting `ins_logo` in `_config.yml`. If you want -to adjust the logo's size, try setting `max-height` in `#ins-logo` in file `./_sass/_style.scss` to the desired -value - -![Institute Logo Image Sample](https://github.com/ankitsultana/assets/raw/master/ins-logo-sample.png) - -**Note:** Customizing the accent color might cause merge conflicts if you later try to merge from `bk2dcradle/researcher` to fetch updates/patches etc. (applicable only if you have forked). - -### License - -[GNU GPL v3](https://github.com/bk2dcradle/researcher/blob/gh-pages/LICENSE) +My Personal Website diff --git a/_config.yml b/_config.yml index f606ede8c..11758e95a 100644 --- a/_config.yml +++ b/_config.yml @@ -1,6 +1,8 @@ -title: Researcher -url: "https://ankitsultana.com" -baseurl: "/researcher" + +title: Krishan Rana +url: "https://krishanrana.github.io/" +baseurl: "" +#remote_theme: ankitsultana/researcher@gem markdown: kramdown #ins_logo: "./bits-logo.png" @@ -8,17 +10,26 @@ markdown: kramdown tracking_id: # footer: yes -footer_url: "https://github.com/ankitsultana" -footer_text: "Page design by Ankit Sultana" +footer_url: "https://github.com/krishanrana" +footer_text: "Teaching robots how to act" sass: style: compressed sass_dir: _sass nav: - - name: "About" - link: "/researcher/" - name: "Resume" link: "resume.pdf" - - name: "Contact" - link: "contact" + - name: "Google Scholar" + link: "https://scholar.google.com.au/citations?user=-hYjPxsAAAAJ&hl=en&oi=ao" + - name: "LinkedIn" + link: "https://www.linkedin.com/in/krishanrana/" + - name: "Twitter" + link: "https://twitter.com/krishanranaa" + + + +# author: +# name: Krishan Rana +# url: https://krishanrana.github.io/ + diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 000000000..c05d71fc0 --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,9 @@ + + + {{ site.title }} + + + + + + \ No newline at end of file diff --git a/_includes/page-footer.html b/_includes/page-footer.html new file mode 100644 index 000000000..6ab7b81cc --- /dev/null +++ b/_includes/page-footer.html @@ -0,0 +1,3 @@ + diff --git a/_includes/page-header.html b/_includes/page-header.html new file mode 100644 index 000000000..587a7b9cc --- /dev/null +++ b/_includes/page-header.html @@ -0,0 +1,9 @@ + diff --git a/_includes/youtubePlayer.html b/_includes/youtubePlayer.html new file mode 100644 index 000000000..fb5344b94 --- /dev/null +++ b/_includes/youtubePlayer.html @@ -0,0 +1,6 @@ + +
+

+ +

+
diff --git a/_layouts/default.html b/_layouts/default.html index 7b7ff286a..131ca78ee 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -1,7 +1,7 @@ - {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %} + {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %} @@ -52,13 +52,15 @@ {% else %} {% endif %} + + +
+ diff --git a/_layouts/default_cayman.html b/_layouts/default_cayman.html new file mode 100644 index 000000000..3691e859a --- /dev/null +++ b/_layouts/default_cayman.html @@ -0,0 +1,18 @@ + + + + {% include head.html %} + + + {% include page-header.html %} + +
+ + {{ content }} + + {% include page-footer.html %} + +
+ + + diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 000000000..510977aac --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,5 @@ +--- +layout: default_cayman +--- + +{{ content }} \ No newline at end of file diff --git a/_layouts/post.html b/_layouts/post.html new file mode 100644 index 000000000..510977aac --- /dev/null +++ b/_layouts/post.html @@ -0,0 +1,5 @@ +--- +layout: default_cayman +--- + +{{ content }} \ No newline at end of file diff --git a/_layouts/reskill.html b/_layouts/reskill.html new file mode 100644 index 000000000..2e1eb7087 --- /dev/null +++ b/_layouts/reskill.html @@ -0,0 +1,23 @@ + + + + {% include head.html %} + + + + + +
+ + {{ content }} + {% include page-footer.html %} +
+ + + diff --git a/_posts/2016-02-12-sample-content.markdown b/_posts/2016-02-12-sample-content.markdown new file mode 100644 index 000000000..fbbc8a36c --- /dev/null +++ b/_posts/2016-02-12-sample-content.markdown @@ -0,0 +1,24 @@ +--- +layout: default +title: "Welcome to Jekyll!" +date: 2016-02-12 17:50:00 +categories: main +--- + +You'll find this post in your `_posts` directory - edit this post and re-build (or run with the `-w` switch) to see your changes! +To add new posts, simply add a file in the `_posts` directory that follows the convention: YYYY-MM-DD-name-of-post.ext. + +Jekyll also offers powerful support for code snippets: + +{% highlight ruby %} +def print_hi(name) + puts "Hi, #{name}" +end +print_hi('Tom') +#=> prints 'Hi, Tom' to STDOUT. +{% endhighlight %} + +Check out the [Jekyll docs][jekyll] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll's GitHub repo][jekyll-gh]. + +[jekyll-gh]: https://github.com/mojombo/jekyll +[jekyll]: http://jekyllrb.com \ No newline at end of file diff --git a/_sass/typography.scss b/_sass/typography.scss index f7c35d865..8ac7d3fdb 100644 --- a/_sass/typography.scss +++ b/_sass/typography.scss @@ -40,9 +40,26 @@ height: $image-size; width: $image-size; position: relative; + margin: -10px 15px 0 15px; + float: left; + border-radius: 50%; + p & { + padding: 0; + margin: 0; + } + @media (max-width: $small-width) { + img { + margin-top: -5px; + } + } + } + .project-picture { + height: $image-height; + width: $image-width; + position: relative; margin: -10px 0 0 15px; float: right; - border-radius: 50%; + border-radius: 10%; p & { padding: 0; margin: 0; @@ -53,6 +70,8 @@ } } } + + img { text-align: center; width: 100%; diff --git a/_sass/vars.scss b/_sass/vars.scss index 93e10833c..d3c8c43fd 100644 --- a/_sass/vars.scss +++ b/_sass/vars.scss @@ -2,8 +2,10 @@ * Customization Variables */ -$accent: #FF0F00; +$accent: #0800a6; $image-size: 85px; +$image-width: 170px; +$image-height: 85px; /* * Build Variables, don't touch diff --git a/bcf.md b/bcf.md new file mode 100644 index 000000000..772b65708 --- /dev/null +++ b/bcf.md @@ -0,0 +1,45 @@ +--- +title: Bayesian Controller Fusion +filename: bcf/ +layout: post +youtubeId: NjOz7-TqVlk +tagline: Leveraging Control Priors in Deep Reinforcement Learning for Robotics +authors: Krishan Rana*, Vibhavari Dasagi, Jesse Haviland, Ben Talbot, Michael Milford and Niko Suenderhauf +--- + +## Summary + +

+ +

+

+ Bayesian Controller Fusion System Diagram +

+ +

+We present Bayesian Controller Fusion (BCF): a hybrid control strategy that combines the strengths of traditional hand-crafted controllers and model-free deep reinforcement learning (RL). BCF thrives in the robotics domain, where reliable but suboptimal control priors exist for many tasks, but RL from scratch remains unsafe and data-inefficient. By fusing uncertainty-aware distributional outputs from each system, BCF arbitrates control between them, exploiting their respective strengths. We study BCF on two real-world robotics tasks involving navigation in a vast and long-horizon environment, and a complex reaching task that involves manipulability maximisation. For both these domains, there exist simple handcrafted controllers that can solve the task at hand in a risk-averse manner but do not necessarily exhibit the optimal solution given limitations in analytical modelling, controller miscalibration and task variation. As exploration is naturally guided by the prior in the early stages of training, BCF accelerates learning, while substantially improving beyond the performance of the control prior, as the policy gains more experience. More importantly, given the risk-aversity of the control prior, BCF ensures safe exploration and deployment, where the control prior naturally dominates the action distribution in states unknown to the policy. We additionally show BCF's applicability to the zero-shot sim-to-real setting and its ability to deal with out-of-distribution states in the real-world. BCF is a promising approach for combining the complementary strengths of deep RL and traditional robotic control, surpassing what either can achieve independently. +

+ +## Supplementary Video + +

+ {% include youtubePlayer.html id=page.youtubeId %} +

+

+ +## Citation +``` + @article{rana2021bayesian, + title={Bayesian Controller Fusion: Leveraging Control Priors in Deep Reinforcement Learning for Robotics}, + author={Rana, Krishan and Dasagi, Vibhavari and Haviland, Jesse and Talbot, Ben and Milford, Michael and S{\"u}nderhauf, Niko}, + journal={arXiv preprint arXiv:2107.09822}, + year={2021} + } +``` +

+ +## Research Support + +

+ +

diff --git a/bits-logo.png b/bits-logo.png deleted file mode 100644 index 271628ff1..000000000 Binary files a/bits-logo.png and /dev/null differ diff --git a/contact.md b/contact.md deleted file mode 100644 index b2ebe330e..000000000 --- a/contact.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default -is_contact: true ---- - -* Email: [foo@xyz.com](mailto:foo@xyz.com) - -* Phone: [+91-123123](tel:+91-123123) - ---- - -## Mailing Address - -> 221B, Baker Street -> -> London -> -> United Kingdom - ---- - -## Social - -1. [Facebook](#) -2. [Twitter](#) -3. [Google+](#) diff --git a/css/cayman.css b/css/cayman.css new file mode 100755 index 000000000..17c7530ef --- /dev/null +++ b/css/cayman.css @@ -0,0 +1,208 @@ + +.highlight table td { padding: 5px; } + +.highlight table pre { margin: 0; } + +.highlight .cm { color: #999988; font-style: italic; } + +.highlight .cp { color: #999999; font-weight: bold; } + +.highlight .c1 { color: #999988; font-style: italic; } + +.highlight .cs { color: #999999; font-weight: bold; font-style: italic; } + +.highlight .c, .highlight .cd { color: #999988; font-style: italic; } + +.highlight .err { color: #a61717; background-color: #e3d2d2; } + +.highlight .gd { color: #000000; background-color: #ffdddd; } + +.highlight .ge { color: #000000; font-style: italic; } + +.highlight .gr { color: #aa0000; } + +.highlight .gh { color: #999999; } + +.highlight .gi { color: #000000; background-color: #ddffdd; } + +.highlight .go { color: #888888; } + +.highlight .gp { color: #555555; } + +.highlight .gs { font-weight: bold; } + +.highlight .gu { color: #aaaaaa; } + +.highlight .gt { color: #aa0000; } + +.highlight .kc { color: #000000; font-weight: bold; } + +.highlight .kd { color: #000000; font-weight: bold; } + +.highlight .kn { color: #000000; font-weight: bold; } + +.highlight .kp { color: #000000; font-weight: bold; } + +.highlight .kr { color: #000000; font-weight: bold; } + +.highlight .kt { color: #445588; font-weight: bold; } + +.highlight .k, .highlight .kv { color: #000000; font-weight: bold; } + +.highlight .mf { color: #009999; } + +.highlight .mh { color: #009999; } + +.highlight .il { color: #009999; } + +.highlight .mi { color: #009999; } + +.highlight .mo { color: #009999; } + +.highlight .m, .highlight .mb, .highlight .mx { color: #009999; } + +.highlight .sb { color: #d14; } + +.highlight .sc { color: #d14; } + +.highlight .sd { color: #d14; } + +.highlight .s2 { color: #d14; } + +.highlight .se { color: #d14; } + +.highlight .sh { color: #d14; } + +.highlight .si { color: #d14; } + +.highlight .sx { color: #d14; } + +.highlight .sr { color: #009926; } + +.highlight .s1 { color: #d14; } + +.highlight .ss { color: #990073; } + +.highlight .s { color: #d14; } + +.highlight .na { color: #008080; } + +.highlight .bp { color: #999999; } + +.highlight .nb { color: #0086B3; } + +.highlight .nc { color: #445588; font-weight: bold; } + +.highlight .no { color: #008080; } + +.highlight .nd { color: #3c5d5d; font-weight: bold; } + +.highlight .ni { color: #800080; } + +.highlight .ne { color: #990000; font-weight: bold; } + +.highlight .nf { color: #990000; font-weight: bold; } + +.highlight .nl { color: #990000; font-weight: bold; } + +.highlight .nn { color: #555555; } + +.highlight .nt { color: #000080; } + +.highlight .vc { color: #008080; } + +.highlight .vg { color: #008080; } + +.highlight .vi { color: #008080; } + +.highlight .nv { color: #008080; } + +.highlight .ow { color: #000000; font-weight: bold; } + +.highlight .o { color: #000000; font-weight: bold; } + +.highlight .w { color: #bbbbbb; } + +.highlight { background-color: #f8f8f8; } + +* { box-sizing: border-box; } + +body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #606c71; } + +a { color: #1e6bb8; text-decoration: none; } +a:hover { text-decoration: underline; } + +.btn { display: inline-block; margin-bottom: 1rem; color: rgba(255, 255, 255, 0.7); background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); border-style: solid; border-width: 1px; border-radius: 0.3rem; transition: color 0.2s, background-color 0.2s, border-color 0.2s; } +.btn:hover { color: rgba(255, 255, 255, 0.8); text-decoration: none; background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.3); } +.btn + .btn { margin-left: 1rem; } +@media screen and (min-width: 64em) { .btn { padding: 0.75rem 1rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .btn { padding: 0.6rem 0.9rem; font-size: 0.9rem; } } +@media screen and (max-width: 42em) { .btn { display: block; width: 100%; padding: 0.75rem; font-size: 0.9rem; } + .btn + .btn { margin-top: 1rem; margin-left: 0; } } + +.page-header { color: #fff; text-align: center; background-color: #159957; background-image: linear-gradient(120deg, #155799, #159957); } +@media screen and (min-width: 64em) { .page-header { padding: 5rem 6rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .page-header { padding: 3rem 4rem; } } +@media screen and (max-width: 42em) { .page-header { padding: 2rem 1rem; } } + +.project-name { margin-top: 0; margin-bottom: 0.1rem; } +@media screen and (min-width: 64em) { .project-name { font-size: 3.25rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .project-name { font-size: 2.25rem; } } +@media screen and (max-width: 42em) { .project-name { font-size: 1.75rem; } } + +.project-tagline { margin-bottom: 2rem; font-weight: normal; opacity: 0.7; } +@media screen and (min-width: 64em) { .project-tagline { font-size: 1.25rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .project-tagline { font-size: 1.15rem; } } +@media screen and (max-width: 42em) { .project-tagline { font-size: 1rem; } } + +.main-content { word-wrap: break-word; } +.main-content :first-child { margin-top: 0; } +@media screen and (min-width: 64em) { .main-content { max-width: 64rem; padding: 2rem 6rem; margin: 0 auto; font-size: 1.1rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .main-content { padding: 2rem 4rem; font-size: 1.1rem; } } +@media screen and (max-width: 42em) { .main-content { padding: 2rem 1rem; font-size: 1rem; } } +.main-content img { max-width: 100%; } +.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { margin-top: 2rem; margin-bottom: 1rem; font-weight: normal; color: #159957; } +.main-content p { margin-bottom: 1em; } +.main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; } +.main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; } +.main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; } +.main-content .highlight { margin-bottom: 1rem; } +.main-content .highlight pre { margin-bottom: 0; word-break: normal; } +.main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; } +.main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; } +.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; } +.main-content ul, .main-content ol { margin-top: 0; } +.main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; } +.main-content blockquote > :first-child { margin-top: 0; } +.main-content blockquote > :last-child { margin-bottom: 0; } +.main-content table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; } +.main-content table th { font-weight: bold; } +.main-content table th, .main-content table td { padding: 0.5rem 1rem; border: 1px solid #e9ebec; } +.main-content dl { padding: 0; } +.main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; } +.main-content dl dd { padding: 0; margin-bottom: 1rem; } +.main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; } + +.youtube-wrapper { + position: relative; + width: 100%; + height: 100%; + padding-bottom: 56.25%; +} +.youtube-wrapper iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; } +@media screen and (min-width: 64em) { .site-footer { font-size: 1rem; } } +@media screen and (min-width: 42em) and (max-width: 64em) { .site-footer { font-size: 1rem; } } +@media screen and (max-width: 42em) { .site-footer { font-size: 0.9rem; } } + +.site-footer-owner { display: block; font-weight: bold; } + +.site-footer-credits { color: #819198; } diff --git a/css/normalize.css b/css/normalize.css new file mode 100755 index 000000000..30366a6e9 --- /dev/null +++ b/css/normalize.css @@ -0,0 +1,424 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/images/CLASP.png b/images/CLASP.png new file mode 100644 index 000000000..73dd14391 Binary files /dev/null and b/images/CLASP.png differ diff --git a/images/bcf.png b/images/bcf.png new file mode 100644 index 000000000..df42bd352 Binary files /dev/null and b/images/bcf.png differ diff --git a/images/bcf_system.png b/images/bcf_system.png new file mode 100644 index 000000000..04f1f15ce Binary files /dev/null and b/images/bcf_system.png differ diff --git a/images/complex_hook.gif b/images/complex_hook.gif new file mode 100644 index 000000000..bb46fcd14 Binary files /dev/null and b/images/complex_hook.gif differ diff --git a/images/complex_hook_no_res.gif b/images/complex_hook_no_res.gif new file mode 100644 index 000000000..132ca3e8c Binary files /dev/null and b/images/complex_hook_no_res.gif differ diff --git a/images/exploration_trajectories_horizontal.png b/images/exploration_trajectories_horizontal.png new file mode 100644 index 000000000..f08ddaf70 Binary files /dev/null and b/images/exploration_trajectories_horizontal.png differ diff --git a/images/logos.png b/images/logos.png new file mode 100644 index 000000000..af2fbf5fb Binary files /dev/null and b/images/logos.png differ diff --git a/images/mcf.png b/images/mcf.png new file mode 100644 index 000000000..4f9bde52a Binary files /dev/null and b/images/mcf.png differ diff --git a/images/plen.png b/images/plen.png new file mode 100644 index 000000000..ec3b7eab6 Binary files /dev/null and b/images/plen.png differ diff --git a/images/plen2.png b/images/plen2.png new file mode 100644 index 000000000..0c25c0f03 Binary files /dev/null and b/images/plen2.png differ diff --git a/images/residual_skill_rl_compress.png b/images/residual_skill_rl_compress.png new file mode 100644 index 000000000..4de3f1310 Binary files /dev/null and b/images/residual_skill_rl_compress.png differ diff --git a/images/reskill.png b/images/reskill.png new file mode 100644 index 000000000..c3a4e87f3 Binary files /dev/null and b/images/reskill.png differ diff --git a/images/reskill_training_curves.png b/images/reskill_training_curves.png new file mode 100644 index 000000000..f7c0b5275 Binary files /dev/null and b/images/reskill_training_curves.png differ diff --git a/images/reskill_training_curves_ablation.png b/images/reskill_training_curves_ablation.png new file mode 100644 index 000000000..4673a61c0 Binary files /dev/null and b/images/reskill_training_curves_ablation.png differ diff --git a/images/rrn.png b/images/rrn.png new file mode 100644 index 000000000..77a3055bc Binary files /dev/null and b/images/rrn.png differ diff --git a/images/rsp.png b/images/rsp.png new file mode 100644 index 000000000..81f3a7a98 Binary files /dev/null and b/images/rsp.png differ diff --git a/images/seg.png b/images/seg.png new file mode 100644 index 000000000..a80ac2b09 Binary files /dev/null and b/images/seg.png differ diff --git a/images/sim_real.png b/images/sim_real.png new file mode 100644 index 000000000..a3ea02f95 Binary files /dev/null and b/images/sim_real.png differ diff --git a/images/skill_extraction.png b/images/skill_extraction.png new file mode 100644 index 000000000..a71b68917 Binary files /dev/null and b/images/skill_extraction.png differ diff --git a/images/skill_models_compress.png b/images/skill_models_compress.png new file mode 100644 index 000000000..14e430401 Binary files /dev/null and b/images/skill_models_compress.png differ diff --git a/images/skill_module.png b/images/skill_module.png new file mode 100644 index 000000000..14e430401 Binary files /dev/null and b/images/skill_module.png differ diff --git a/images/slippery_push2.gif b/images/slippery_push2.gif new file mode 100644 index 000000000..c349a0623 Binary files /dev/null and b/images/slippery_push2.gif differ diff --git a/images/slippery_push_no_res.gif b/images/slippery_push_no_res.gif new file mode 100644 index 000000000..7e027ec89 Binary files /dev/null and b/images/slippery_push_no_res.gif differ diff --git a/images/stacking.gif b/images/stacking.gif new file mode 100644 index 000000000..7503684bc Binary files /dev/null and b/images/stacking.gif differ diff --git a/images/stacking_no_res.gif b/images/stacking_no_res.gif new file mode 100644 index 000000000..5808b6f18 Binary files /dev/null and b/images/stacking_no_res.gif differ diff --git a/images/table-cleanup.gif b/images/table-cleanup.gif new file mode 100644 index 000000000..9d73984e0 Binary files /dev/null and b/images/table-cleanup.gif differ diff --git a/images/table_cleanup_no_res_2.gif b/images/table_cleanup_no_res_2.gif new file mode 100644 index 000000000..163fedce1 Binary files /dev/null and b/images/table_cleanup_no_res_2.gif differ diff --git a/images/tasks.png b/images/tasks.png new file mode 100644 index 000000000..c10d2ce85 Binary files /dev/null and b/images/tasks.png differ diff --git a/index.md b/index.md index 65cd379ed..a57c23156 100644 --- a/index.md +++ b/index.md @@ -1,45 +1,73 @@ --- +title: Krishan Rana layout: default --- ## About Me - + -Hi! I am a junior year student of B.E. Computer Science at Birla Institute of Technology and Science, Pilani. +I am a postdoctoral researcher at the QUT Centre for Robotics working at the intersection of AI and robotics with a focus on enabling machines to intelligently plan and interact with the world in order to solve everyday tasks. Feel free to contact me via . -This is a jekyll based resume template. You can find the full source code on [GitHub](https://github.com/bk2dcradle/researcher) -## Research Interest +## Publications -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam finibus ipsum ac erat aliquam dapibus. Vestibulum vehicula placerat ex, a consectetur odio pharetra quis. Mauris id urna ante. Fusce pharetra diam ac nisi aliquet, vel egestas ex iaculis. Pellentesque laoreet cursus tellus sed pellentesque. Praesent a rhoncus elit. Nunc ipsum nisl, consequat sit amet pretium quis, gravida id ipsum. +2. Rana, K., Haviland, J., Garg, S., Abou-Chakra, J., & Sünderhauf, N. "SayPlan: SayPlan: Grounding Large Language Models using 3D Scene Graphs for Scalable Robot Task Planning" 2023 Conference on Robot Learning (CoRL) (Oral Presentation)
+[[Paper]]([https://arxiv.org/abs/2211.02231](https://openreview.net/pdf?id=wMpOMO0Ss7a)) [[Site]]([https://krishanrana.github.io/reskill](https://sayplan.github.io/)) -## Publications +1. Rana, K., Melnik, A., & Sünderhauf, N. "Contrastive Language, Action, and State +Pre-training for Robot Learning" ICRA 2023 Pretraining for Robotics Workshop
+[[Paper]](https://openreview.net/pdf?id=sxKR6zhBDH) -1. F.Bar, J.Doe: Effects of having a placeholder of a name -2. S.Holmes, J.Watson: Consequences of living with a sociopath in London +2. Rana, K., Milford, M., & Sünderhauf, N. "Residual Skill Policies: Learning an Adaptable Skill Space for Reinforcement Learning for Robotics" 2022 Conference on Robot Learning (CoRL)
+[[Paper]](https://arxiv.org/abs/2211.02231) [[Code]](https://github.com/krishanrana/reskill) [[Site]](https://krishanrana.github.io/reskill) -## Typography +3. Rana, K., Dasagi, V., Haviland, J., Milford, M., & Sünderhauf, N. "Zero-Shot Uncertainty-Aware Deployment of Simulation Trained Policies on Real-World Robots" NeurIPS 2021 Workshop on Deployable Decision Making in Embodied Systems (DDM) | Spotlight
+[[Paper]](https://arxiv.org/abs/2112.05299) [[Code]](https://github.com/krishanrana/bcf) [[Site]](https://krishanrana.github.io/bcf) + +4. Rana, K., Dasagi, V., Haviland, J., Milford, M., & Sünderhauf, N. "Bayesian Controller Fusion: Leveraging Control Priors in Deep Reinforcement Learning for Robotics" The International Journal of Robotics Research (IJRR)
+[[Paper]](https://journals.sagepub.com/doi/full/10.1177/02783649231167210) [[Code]](https://github.com/krishanrana/bcf) [[Site]](https://krishanrana.github.io/bcf) + +5. Rana, K., Dasagi, V., Talbot, B., Milford, M., & Sunderhauf, N. (2020). "Multiplicative Controller Fusion: Leveraging Algorithmic Priors for Sample-efficient Reinforcement Learning and Safe Sim-To-Real Transfer". 2020 International Conference on Intelligent Robots and Systems (IROS)
+[[Paper]](https://arxiv.org/abs/2003.05117) [[Code]](https://github.com/krishanrana/multiplicative_controller_fusion) [[Site]](https://sites.google.com/view/mcf-nav/home) + +6. Rana, K., Talbot, B., Milford, M., & Sünderhauf, N. (2020). "Residual Reactive Navigation: Combining Classical and Learned Navigation Strategies For Deployment in Unknown Environments". 2020 IEEE International Conference on Robotics and Automation (ICRA), 11493-11499.
+[[Paper]](https://arxiv.org/pdf/1909.10972.pdf) [[Code]](https://github.com/krishanrana/2D_SRRN) [[Site]](https://sites.google.com/view/srrn/home) + +7. Melnik, A., Harter, A., Limberg, C., Rana, K., Sünderhauf, N., & Ritter, H. "Critic Guided Segmentation of Rewarding Objects in First Person Views". German Conference of Artificial Intelligence, 2021.
+[[Paper]](https://arxiv.org/abs/2107.09540) + +8. Palmer, D.W., Coppin, T., Rana, K., Dansereau, D., Suheimat, M., Maynard, M., Atchison, D., Roberts, J., Crawford, R., & Jaiprakash, A. (2018). "Glare-free retinal imaging using a portable light field fundus camera". Biomedical Optics Express, 9, 3178 - 3192.
+[[Paper]](https://www.osapublishing.org/viewmedia.cfm?seq=0&uri=boe-9-7-3178) + +9. Coppin, T., Palmer, D.W., Rana, K., Dansereau, D., Collins, M., Atchison, D., Roberts, J., Crawford, R., & Jaiprakash, A. (2021). "Design of a Focused Light Field Fundus Camera for Retinal Imaging". [Under review for IEEE Transactions on Medical Imaging (T-MI)]
+ + + + + + + +## Patents + +1. Ophthalmic Imaging Apparatus and System
+ Patent Number au2017901153
+ A. Jaiprakash, D. Palmer, D. G. Dansereau, T. Coppin, K. Rana, J. Roberts, R. Crawford + +2. Method and System for Calibrating an Ophthalmic Imager
+ Patent Number au2018900513
+ D. Palmer, T. Coppin, K. Rana + +## Grants + +UA-DAAD Australia-Germany Joint Research Cooperation Scheme +Project: Sample-efficient learning for autonomous agents in complex hierarchical, and sparse environments -This is a [link](http://google.com). Something *italics* and something **bold**. -Here is a table -Year | Award | Category ------|-------|-------- -2014 | Emmy | Won Outstanding Lead Actor in a miniseries or a movie -2015 | BAFTA | Nominated for Best Leading Actor for Sherlock -2014 | Satellite | Won Best Actor miniseries or television film -Here is a horizontal rule ---- -Here is a blockquote -> To a great mind, nothing is little -## References -* Foo Bar: Head of Department, Placeholder Names, Lorem -* John Doe: Associate Professor, Department of Computer Science, Ipsum diff --git a/js/Count.js b/js/Count.js new file mode 100644 index 000000000..f872e68d7 --- /dev/null +++ b/js/Count.js @@ -0,0 +1,21 @@ +class Count { + constructor(s, w) { + this.s = s + this.w = w + this.p = createP('') + } + start() { + if (!this.done) { + setInterval(() => this.counter(), this.w) + } + } + counter() { + if (this.s < 100) { + this.s++ + this.p.html(this.s) + } + } + reset() { + this.s = 0 + } +} \ No newline at end of file diff --git a/js/GridWorld.js b/js/GridWorld.js new file mode 100644 index 000000000..5ca3e5300 --- /dev/null +++ b/js/GridWorld.js @@ -0,0 +1,70 @@ +class GridWorld { + + constructor(size) { + this.location = [int(random(0, this.size)), int(random(0, this.size))]; + this.location_prev = []; + this.size = size + this.grid_spacing = width/50; + this.counter = 0; + this.done = false; + this.timeout = 15; + this.world_rewards = create_grid(size, size); + this.rew_loc = [int(random(0, this.size)), int(random(0, this.size))] + this.world_rewards[this.rew_loc[0]][this.rew_loc[1]] = 1; + this.actions = [ + [-1, 0], + [+1, 0], + [0, -1], + [0, +1], + [0, 0] + ]; + } + + reset() { + this.location = [int(random(0, this.size)), int(random(0, this.size))]; + return this.location + } + + step(action) { + arrayCopy(this.location, this.location_prev, 2); + this.location[0] = constrain(this.location[0] + this.actions[action][0], 0, this.size - 1); + this.location[1] = constrain(this.location[1] + this.actions[action][1], 0, this.size - 1); + + this.counter += 1; + if (this.counter > this.timeout) { + this.done = true; + this.counter = 0; + } else { + this.done = false; + } + return [this.location, this.world_rewards[this.location[0]][this.location[1]], this.done] + } + + render() { + var x = this.location_prev[0] * this.grid_spacing; + var y = this.location_prev[1] * this.grid_spacing; + + noStroke(); + fill(map(Q_grid[this.location_prev[0]][this.location_prev[1]], min(Q_array), max(Q_array), 0, 255)); + rect(x, y, this.grid_spacing, this.grid_spacing); + fill(7, 177, 27, 125); + rect(this.rew_loc[0] * this.grid_spacing, this.rew_loc[1] * this.grid_spacing, this.grid_spacing, this.grid_spacing); + } + + render_all() { + for (var i = 0; i < this.size; i++) { + for (var j = 0; j < this.size; j++) { + var x = i * this.grid_spacing; + var y = j * this.grid_spacing; + noStroke(); + fill(map(Q_grid[i][j], min(Q_array), max(Q_array), 0, 255)); + rect(x, y, this.grid_spacing, this.grid_spacing); + } + } + noStroke(); + fill(143, 0, 0, 150); + rect(this.location[0] * this.grid_spacing, this.location[1] * this.grid_spacing, this.grid_spacing, this.grid_spacing); + fill(7, 227, 17, 170); + rect(this.rew_loc[0] * this.grid_spacing, this.rew_loc[1] * this.grid_spacing, this.grid_spacing, this.grid_spacing); + } +} diff --git a/js/Particles.js b/js/Particles.js new file mode 100644 index 000000000..12b018961 --- /dev/null +++ b/js/Particles.js @@ -0,0 +1,28 @@ +class Particles { + + constructor(x,y){ + this.loc = createVector(x,y); + this.vel = createVector(random(-0.1,0.1), random(-0.1,0.1)); + this.offsetX = random(0,500); + this.offsetY = random(0,500); + } + + show(){ + fill(255); + circle(this.loc.x, this.loc.y, 10); + } + + update(){ + + //check that it is in bounds + if (this.loc.x < 0 || this.loc.x > width) { + this.vel.x = -this.vel.x; + } + //check that it is in bounds + if (this.loc.y < 0 || this.loc.y > height) { + this.vel.y = -this.vel.y; + } + this.loc.add(this.vel); + } +} + diff --git a/js/QAgent.js b/js/QAgent.js new file mode 100644 index 000000000..87dd6698e --- /dev/null +++ b/js/QAgent.js @@ -0,0 +1,74 @@ +class QAgent { + + constructor() { + // Initialise parameters + this.gamma = 0.5; // Discount factor + this.alpha = 0.75; // Learning rate + this.done = false; + this.nobs = []; + this.obs = env.reset(); + this.rew = 0; + this.act = 0; + this.obs_idx = 0 + this.nobs_idx = 0; + this.Q_table = create_grid_Q(size * size, 5); + this.info = [] + } + + train() { + + // if (this.done) { + // var newObs = env.reset(); + // arrayCopy(newObs, this.obs, 2); + // this.done = false; + // } + + //Epsilon greedy + var p = random(0, 1); + + if (p < 0.8) { + this.act = int(random(0, 5)); + } else { + this.obs_idx = state_to_idx(this.obs); + this.act = this.Q_table[this.obs_idx].indexOf(max(this.Q_table[this.obs_idx])) + } + + this.act = int(random(0, 5)); + this.info = env.step(this.act); + this.nobs = this.info[0]; + this.rew = this.info[1]; + this.done = this.info[2]; + + + this.obs_idx = state_to_idx(this.obs); + this.nobs_idx = state_to_idx(this.nobs); + + var TD = (this.rew + this.gamma * max(this.Q_table[this.nobs_idx]) * (1 - this.done)) - this.Q_table[this.obs_idx][this.act]; + this.Q_table[this.obs_idx][this.act] = this.Q_table[this.obs_idx][this.act] + this.alpha * TD; + + arrayCopy(this.nobs, this.obs, 2); + //this.obs = this.nobs + + for (var i = 0; i < size * size; i++) { + var val = max(this.Q_table[i]); + var state = idx_to_state(i); + Q_grid[state[0]][state[1]] = val; //int(map(val, 0 , 5, 0, 255)); + Q_array.push(val); + } + } + + test() { + if (this.rew > 0) { + var newObs = env.reset(); + arrayCopy(newObs, this.obs, 2); + this.done = false; + } + this.obs_idx = state_to_idx(this.obs); + var act = this.Q_table[this.obs_idx].indexOf(max(this.Q_table[this.obs_idx])); + this.info = env.step(act); + this.nobs = this.info[0]; + this.rew = this.info[1]; + this.done = this.info[2]; + arrayCopy(this.nobs, this.obs, 2); + } +} \ No newline at end of file diff --git a/js/sketch.js b/js/sketch.js new file mode 100644 index 000000000..77e9dfe5d --- /dev/null +++ b/js/sketch.js @@ -0,0 +1,39 @@ + +let particle = []; +let num_p = 40; +let canvas; + +function setup() { + canvas = createCanvas(windowWidth, windowHeight); + canvas.position(0,0); + canvas.style('z-index', '-2'); + for(let x=0; x
+ +--- + +## Skill Extraction from Classical Controllers + +

+ +

+

+ We decompose trajectories produced by a classical controller into task agnostic skills. To increase the diversity of skills extracted we add smooth, correlated Perlin noise to the action outputs from the controller. +

+ +

+ +--- + +## Learning a State-Conditioned Skill Space + +

+ +

+

+ We train a VAE embedding module that encodes skills into a latent embedding space Z. This module is comprised of an encoder and closed-loop decoder, where the decoder recovers atomic actions from a latent skill embedding z. The state-conditioned skill prior module is used to generate relevant skills for a given robot state which the downstream Rl agent can directly sample from. This conditional density is multimodal in the skill-space and we estimate it using normalising flows. Both modules are trained jointly with the coloured arrows illustrating the gradient flow between them. +

+ +

+ +--- + +## Adaptable and Guided Skill-Based Reinforcement Learning + +

+ +

+

+ A skill-based learning framework for robotics. The skill prior guides exploration by transforming the agent's action space to a state-conditioned skill-space using normalising flows, where only the relevant skills for the current state are explored. The residual policy allows for fine-grained adaptation of the skills to environment variations and unseen tasks. The snowflake symbol signifies that the pre-trained weights for the skill modules are frozen during downstream task learning. +

+ +

+ +--- + +## Results + +

+ +

+ +

+ +

+ +

+ +### Guided Exploration Using the State-Conditioned Skill Prior + +

+ +

+

+ Exploratory trajectories taken during the early stages of training. We plot the trajectories taken by four different strategies used in skill-based and single-step RL approaches. Note how the skill prior significantly directs the exploratory trajectories towards the object in the environment while still allowing the agent to explore a diverse set of surrounding skills. +

+

+ + +### Skill Adaptation to Task Variations Using the Low-Level Residual Policy + +

+ With Low-Level Residual Policy (ReSkill) +

+ +

+ +

+ +

+ + + + +

+ +

+ Without Low-Level Residual Policy +

+ + + +

+ + + + +

+ +--- + +## Citation + +``` + @article{rana2022reskill, + title={Residual Skill Policies: Learning an Adaptable Skill-based Action Space for Reinforcement Learning for Robotics}, + author={Rana, Krishan and Xu, Ming and Tidd, Brendan and Milford, Michael and S{\"u}nderhauf, Niko}, + journal={Conference on Robot Learning (CoRL) 2022}, + year={2022} + } +``` +

+ +--- + +## Research Support + +

+ +

diff --git a/resume.pdf b/resume.pdf index dc476ffaa..982ef7ee9 100644 Binary files a/resume.pdf and b/resume.pdf differ diff --git a/sherlock.jpg b/sherlock.jpg deleted file mode 100644 index 062be4ad1..000000000 Binary files a/sherlock.jpg and /dev/null differ