Commit 71a2963f authored by Guilhem Saurel's avatar Guilhem Saurel
Browse files

Use Gepetto jekyll-theme

parent 281a52e1
Pipeline #184 failed with stage
in 46 seconds
[submodule "js/flexslider"]
path = js/flexslider
url = https://github.com/woothemes/FlexSlider.git
source "https://rubygems.org"
gem 'github-pages', group: :jekyll_plugins
GEM
remote: https://rubygems.org/
specs:
activesupport (4.2.9)
i18n (~> 0.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
addressable (2.5.2)
public_suffix (>= 2.0.2, < 4.0)
coffee-script (2.4.1)
coffee-script-source
execjs
coffee-script-source (1.11.1)
colorator (1.1.0)
commonmarker (0.17.7.1)
ruby-enum (~> 0.5)
concurrent-ruby (1.0.5)
ethon (0.11.0)
ffi (>= 1.3.0)
execjs (2.7.0)
faraday (0.13.1)
multipart-post (>= 1.2, < 3)
ffi (1.9.18)
forwardable-extended (2.6.0)
gemoji (3.0.0)
github-pages (172)
activesupport (= 4.2.9)
github-pages-health-check (= 1.3.5)
jekyll (= 3.6.2)
jekyll-avatar (= 0.5.0)
jekyll-coffeescript (= 1.0.2)
jekyll-commonmark-ghpages (= 0.1.3)
jekyll-default-layout (= 0.1.4)
jekyll-feed (= 0.9.2)
jekyll-gist (= 1.4.1)
jekyll-github-metadata (= 2.9.3)
jekyll-mentions (= 1.2.0)
jekyll-optional-front-matter (= 0.3.0)
jekyll-paginate (= 1.1.0)
jekyll-readme-index (= 0.2.0)
jekyll-redirect-from (= 0.12.1)
jekyll-relative-links (= 0.5.2)
jekyll-remote-theme (= 0.2.3)
jekyll-sass-converter (= 1.5.0)
jekyll-seo-tag (= 2.3.0)
jekyll-sitemap (= 1.1.1)
jekyll-swiss (= 0.4.0)
jekyll-theme-architect (= 0.1.0)
jekyll-theme-cayman (= 0.1.0)
jekyll-theme-dinky (= 0.1.0)
jekyll-theme-hacker (= 0.1.0)
jekyll-theme-leap-day (= 0.1.0)
jekyll-theme-merlot (= 0.1.0)
jekyll-theme-midnight (= 0.1.0)
jekyll-theme-minimal (= 0.1.0)
jekyll-theme-modernist (= 0.1.0)
jekyll-theme-primer (= 0.5.2)
jekyll-theme-slate (= 0.1.0)
jekyll-theme-tactile (= 0.1.0)
jekyll-theme-time-machine (= 0.1.0)
jekyll-titles-from-headings (= 0.5.0)
jemoji (= 0.8.1)
kramdown (= 1.14.0)
liquid (= 4.0.0)
listen (= 3.0.6)
mercenary (~> 0.3)
minima (= 2.1.1)
rouge (= 2.2.1)
terminal-table (~> 1.4)
github-pages-health-check (1.3.5)
addressable (~> 2.3)
net-dns (~> 0.8)
octokit (~> 4.0)
public_suffix (~> 2.0)
typhoeus (~> 0.7)
html-pipeline (2.7.1)
activesupport (>= 2)
nokogiri (>= 1.4)
i18n (0.9.1)
concurrent-ruby (~> 1.0)
jekyll (3.6.2)
addressable (~> 2.4)
colorator (~> 1.0)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1)
kramdown (~> 1.14)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (>= 1.7, < 3)
safe_yaml (~> 1.0)
jekyll-avatar (0.5.0)
jekyll (~> 3.0)
jekyll-coffeescript (1.0.2)
coffee-script (~> 2.2)
coffee-script-source (~> 1.11.1)
jekyll-commonmark (1.1.0)
commonmarker (~> 0.14)
jekyll (>= 3.0, < 4.0)
jekyll-commonmark-ghpages (0.1.3)
commonmarker (~> 0.17.6)
jekyll-commonmark (~> 1)
rouge (~> 2)
jekyll-default-layout (0.1.4)
jekyll (~> 3.0)
jekyll-feed (0.9.2)
jekyll (~> 3.3)
jekyll-gist (1.4.1)
octokit (~> 4.2)
jekyll-github-metadata (2.9.3)
jekyll (~> 3.1)
octokit (~> 4.0, != 4.4.0)
jekyll-mentions (1.2.0)
activesupport (~> 4.0)
html-pipeline (~> 2.3)
jekyll (~> 3.0)
jekyll-optional-front-matter (0.3.0)
jekyll (~> 3.0)
jekyll-paginate (1.1.0)
jekyll-readme-index (0.2.0)
jekyll (~> 3.0)
jekyll-redirect-from (0.12.1)
jekyll (~> 3.3)
jekyll-relative-links (0.5.2)
jekyll (~> 3.3)
jekyll-remote-theme (0.2.3)
jekyll (~> 3.5)
rubyzip (>= 1.2.1, < 3.0)
typhoeus (>= 0.7, < 2.0)
jekyll-sass-converter (1.5.0)
sass (~> 3.4)
jekyll-seo-tag (2.3.0)
jekyll (~> 3.3)
jekyll-sitemap (1.1.1)
jekyll (~> 3.3)
jekyll-swiss (0.4.0)
jekyll-theme-architect (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-cayman (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-dinky (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-hacker (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-leap-day (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-merlot (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-midnight (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-minimal (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-modernist (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-primer (0.5.2)
jekyll (~> 3.5)
jekyll-github-metadata (~> 2.9)
jekyll-seo-tag (~> 2.2)
jekyll-theme-slate (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-tactile (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-theme-time-machine (0.1.0)
jekyll (~> 3.5)
jekyll-seo-tag (~> 2.0)
jekyll-titles-from-headings (0.5.0)
jekyll (~> 3.3)
jekyll-watch (1.5.1)
listen (~> 3.0)
jemoji (0.8.1)
activesupport (~> 4.0, >= 4.2.9)
gemoji (~> 3.0)
html-pipeline (~> 2.2)
jekyll (>= 3.0)
kramdown (1.14.0)
liquid (4.0.0)
listen (3.0.6)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9.7)
mercenary (0.3.6)
mini_portile2 (2.3.0)
minima (2.1.1)
jekyll (~> 3.3)
minitest (5.10.3)
multipart-post (2.0.0)
net-dns (0.8.0)
nokogiri (1.8.1)
mini_portile2 (~> 2.3.0)
octokit (4.7.0)
sawyer (~> 0.8.0, >= 0.5.3)
pathutil (0.16.0)
forwardable-extended (~> 2.6)
public_suffix (2.0.5)
rb-fsevent (0.10.2)
rb-inotify (0.9.10)
ffi (>= 0.5.0, < 2)
rouge (2.2.1)
ruby-enum (0.7.1)
i18n
rubyzip (1.2.1)
safe_yaml (1.0.4)
sass (3.5.3)
sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sawyer (0.8.1)
addressable (>= 2.3.5, < 2.6)
faraday (~> 0.8, < 1.0)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
typhoeus (0.8.0)
ethon (>= 0.8.0)
tzinfo (1.2.4)
thread_safe (~> 0.1)
unicode-display_width (1.3.0)
PLATFORMS
ruby
DEPENDENCIES
github-pages
BUNDLED WITH
1.16.1
......@@ -5,11 +5,8 @@ Forked from roboptim.net
## Testing locally
In order to test your modifications locally before pushing to GitHub, install
`jekyll`, and run the following command at the root of the project folder:
```sh
$ jekyll server --safe --trace
$ bundle exec jekyll serve
```
You will get something like:
......@@ -18,15 +15,11 @@ You will get something like:
Configuration file: /path/to/pinocchio/website/_config.yml
Source: /path/to/pinocchio/website
Destination: /path/to/pinocchio/website_site
Generating...
Generating...
done.
Configuration file: /path/to/pinocchio/website/_config.yml
Server address: http://0.0.0.0:4000/
Server running... press ctrl-c to stop
```
Then simply type the server address in your browser (`http://0.0.0.0:4000/`
here).
Note: Check the base url in _config.yml
Then simply type the server address in your browser (`http://0.0.0.0:4000/pinocchio/` here).
Pinocchio Website
===================
Forked from roboptim.net)
## Testing locally
In order to test your modifications locally before pushing to GitHub, install
`jekyll`, and run the following command at the root of the project folder:
```sh
$ jekyll server --safe --trace
```
You will get something like:
```
Configuration file: /path/to/pinocchio/website/_config.yml
Source: /path/to/pinocchio/website
Destination: /path/to/pinocchio/website_site
Generating...
done.
Configuration file: /path/to/pinocchio/website/_config.yml
Server address: http://0.0.0.0:4000/
Server running... press ctrl-c to stop
```
Then simply type the server address in your browser (`http://0.0.0.0:4000/`
here).
Note: Check the base url in _config.yml
name: Pinocchio
markdown: kramdown
kramdown:
input: GFM
highlighter: rouge
gems:
- jekyll-sitemap
# If you're hosting your site at a Project repository on GitHub pages
# (http://yourusername.github.io/repository-name)
# and NOT your User repository (http://yourusername.github.io)
# then add in the baseurl here, like this: "/repository-name"
title: Pinocchio
description: Fast Forward Inverse Dynamic for Multibody Systems
baseurl: "/pinocchio"
github-url: "https://github.com/stack-of-tasks/pinocchio"
remote_theme: Gepetto/jekyll-theme
markdown: kramdown
category_list:
- name: Getting Started
icon: graduation-cap
- name: Documentation
icon: book
- name: Development
icon: wrench
links:
- name: View on Github
url: http://www.github.com/stack-of-tasks/pinocchio
- name: Support
icon: question-circle
- name: pg-max
title: Dynamic step climbing
description: "Pattern generation for step climbing"
image: showcase/hrp2max.png
image: hrp2max.png
- name: romeo-walking
title: Walk generation
description: "Step generation for walking with romeo "
image: showcase/romeo.png
image: romeo.png
- name: pinocchio-showcase
title: Pinocchio demonstration
description: "Differents features that can be achieved through Pinocchio "
video:
youtube_id: cNfS-CDH76s
# - name: reem-c
# title:
# title:
# description: ""
# image: showcase/reem-c.png
......
<!-- place somewhere in the <body> of your page -->
<section class="slider">
<div class="flexslider">
<ul class="slides">
{% for project in {{include.carrousel}} %}
{% if project.image %}
{% if project.thumbnail %}
<li data-thumb="assets/{{ project.thumbnail }}"> <!-- utility ? -->
{% else %}
<li data-thumb="assets/{{ project.image }}">
{% endif %}
{% if project.url%}
<a href="{{ project.url }}" target="_blank">
{% endif %}
<img src="assets/{{ project.image }}"
alt="{{ project.title }}"
title="{{ project.title }}"/>
</a>
{% if project.description %}
<p class="flex-caption">{{ project.description }}</p>
{% endif %}
</li>
{% else if project.video %}
<li class="slide play3">
<iframe width="560" height="200" id="youtubevideo"
title="{{ project.title }}"
src="http://www.youtube.com/embed/{{ project.video.youtube_id}}?enablejsapi=1&version=3&playerapiid=youtubevideo&vq=hd720"
allowfullscreen frameborder="0"></iframe>
</li>
{% endif %}
{% endfor %}
</ul>
</div>
</section>
<!-- Load FlexSlider Library -->
<script src="js/flexslider/jquery.flexslider-min.js"></script>
<!-- Load FlexSlider style -->
<link href="js/flexslider/flexslider.css" rel="stylesheet">
<!-- Load custom slider style -->
<link rel="stylesheet" href="slider.css" type="text/css">
<script src="http://a.vimeocdn.com/js/froogaloop2.min.js"></script>
<!-- Load YouTube player -->
<script src="js/flexslider-youtube.js"></script>
<script src="js/jquery.fitvids.js"></script>
<script type="text/javascript">
// Initialize FlexSlider
$(window).load(function() {
$('.flexslider')
.fitVids()
.flexslider({
animation: "slide",
//controlNav: "thumbnails",
directionNav: true,
// TODO: need to stop slideshow while playing videos to handle this
slideshow:false,
slideshowSpeed: 7500,
animationLoop: true,
animationSpeed: 600,
pauseOnAction: true,
pauseOnHover: true,
touch: true,
smoothHeight: true,
video: true,
before: function(slider){
if (slider.slides.eq(slider.currentSlide).find('iframe').length !== 0)
$f( slider.slides.eq(slider.currentSlide).find('iframe').attr('id') ).api('pause');
}
});
});
</script>
\ No newline at end of file
<div class="container"><div id="disqus_thread"></div></div>
<script type="text/javascript">
var disqus_shortname = 'roboptim';
var disqus_identifier = '{{page.path}}';
var disqus_title = '{{page.title}}';
var disqus_url = 'http://roboptim.net{{page.url}}';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
This diff is collapsed.
This diff is collapsed.
......@@ -11,13 +11,13 @@
- [Create the display](#create-the-display)
- [Create simple objects](#create-simple-objects)
- [Moving objects](#moving-objects)
- [Tutorial 2. Creating the robot model](#tutorial-2-creating-the-robot-model)
- [Tutorial 1.2. Creating the robot model](#tutorial-2-creating-the-robot-model)
- [Model and Data](#model-and-data)
- [Creating a Model](#creating-a-model)
- [Joint Models](#joint-models)
- [Associating visual object to bodies](#associating-visual-object-to-bodies)
- [The robot class](#the-robot-class)
- [Tutorial 3. Displaying the model](#tutorial-3-displaying-the-model)
- [Tutorial 1.3. Displaying the model](#tutorial-3-displaying-the-model)
- [Computing the robot geometry](#computing-the-robot-geometry)
- [Displaying the model](#displaying-the-model)
- [Move your robot](#move-your-robot)
......@@ -175,7 +175,7 @@ For display, we will use Gepetto-viewer, a simple 3D renderer built on top of Op
In your script, you need to import the Gepetto-viewer client library, send connect with the server, possibly create 3D objects and then move these objects while your robot is moving.
First, you need to start the server in a first terminal bash terminal …
student@pinocchio1204x32vbox:~$ gepetto-viewer-server
Your own Python scripts can be started from a second terminal. The following class do all the client work for you. Just copy-paste it.
......@@ -185,9 +185,9 @@ Your own Python scripts can be started from a second terminal. The following cla
# Example of a class Display that connect to Gepetto-viewer and implement a
# 'place' method to set the position/rotation of a 3D visual object in a scene.
class Display():
# Class Display: Example of a class implementing a client for the Gepetto-viewer server. The main method of the class is 'place', that sets the position/rotation of a 3D visual object in a scene.
def __init__(self,windowName = "pinocchio" ):
'''
This function connect with the Gepetto-viewer server and open a window with the given name.
......@@ -311,7 +311,7 @@ display.place("world/cylinder",se3.SE3.Random())
<a name="tutorial-2-creating-the-robot-model"></a>
# Tutorial 2. Creating the robot model
# Tutorial 1.2. Creating the robot model
<a name="model-and-data"></a>
## Model and Data
......@@ -391,7 +391,7 @@ __Question 1:__ Create a class Robot as specified previously. Store the results
<a name="tutorial-3-displaying-the-model"></a>
# Tutorial 3. Displaying the model
# Tutorial 1.3. Displaying the model
<a name="computing-the-robot-geometry"></a>
......@@ -414,7 +414,7 @@ for i in range(1,model.nbody):
## Displaying the model
Consider joint "ijoint" to which one visual "ivisual" is attached. The placement of the joint in the world is data.oMi[ijoint]. The name of the visual is `visuals[ijoint][ivisual][0]`. . The placement of the visual in the parent joint frame is `visuals[ijoint][ivisual][1]`.
Consider joint "ijoint" to which one visual "ivisual" is attached. The placement of the joint in the world is data.oMi[ijoint]. The name of the visual is `visuals[ijoint][ivisual][0]`. . The placement of the visual in the parent joint frame is `visuals[ijoint][ivisual][1]`.
{% highlight python %}
......
......@@ -18,9 +18,8 @@ Tutorial 4.0: prerequesites
From the two previous tutorials, you should have the two following implementations available:
. A humanoid robot models, with at least two legs.
. An inverse geometry solver based on BFGS.
* A humanoid robot models, with at least two legs.
* An inverse geometry solver based on BFGS.
Yet, the inverse geometry only solves the motion of the robot for a constant task, like reaching a specific position of the hand, or a constant position of the center of mass.
......@@ -92,11 +91,9 @@ array([ 0.41 , 0.096])
The function should be a piecewise affine function
. starting in the middle of the ankles of the two first steps,
. finishing in the middle of the two ankles of the two last steps,
. constant under the foot support during single support phases.
* starting in the middle of the ankles of the two first steps,
* finishing in the middle of the two ankles of the two last steps,
* constant under the foot support during single support phases.
You can use the template below.
......
<!-- MarkdownTOC -->
- [Objectives](#objectives)
- [Tutorial 1.0. Technical prerequisites](#tutorial-10-technical-prerequisites)
- [Tutorial 2.0. Technical prerequisites](#tutorial-10-technical-prerequisites)
- [Robots](#robots)
- [Tutorial 1.1. Position the end effector](#tutorial-11-position-the-end-effector)
- [Tutorial 1.2. Approaching the redundancy](#tutorial-12-approaching-the-redundancy)
- [Tutorial 1.3. Placing the end-effector](#tutorial-13-placing-the-end-effector)
- [Tutorial 1.4. Working with a mobile robot](#tutorial-14-working-with-a-mobile-robot)
- [Tutorial 2.1. Position the end effector](#tutorial-11-position-the-end-effector)
- [Tutorial 2.2. Approaching the redundancy](#tutorial-12-approaching-the-redundancy)
- [Tutorial 2.3. Placing the end-effector](#tutorial-13-placing-the-end-effector)
- [Tutorial 2.4. Working with a mobile robot](#tutorial-14-working-with-a-mobile-robot)
<!-- /MarkdownTC -->
......@@ -18,7 +18,7 @@ The main objective of the first tutorial is to compute a configuration of the ro
<a name="tutorial-10-technical-prerequisites"></a>
# Tutorial 1.0. Technical prerequisites
# Tutorial 2.0. Technical prerequisites
Python SciPy and MatplotLib
You will need the two libraries Python SciPy (scientific Python) and MatPlotLib (plot mathematical data).
......@@ -40,11 +40,9 @@ MatPlotLib can be installed by `sudo apt-get install python-matplotlib`. It is a
We will use SciPy for its optimization toolbox. In the version 0.9 installed in the VirtualBox, the two most interesting solvers are BFGS and a constrained least square. Documentation on both solvers is available here:
. General documentation: [SciPy.optimize](http://docs.scipy.org/doc/scipy-0.9.0/reference/tutorial/optimize.html)
. Manual of BFGS: [fmin_bfgs](http://docs.scipy.org/doc/scipy-0.9.0/reference/generated/scipy.optimize.fmin_bfgs.html#scipy.optimize.fmin_bfgs)
. Manual of constrained least square: [fmin_slsqp](http://docs.scipy.org/doc/scipy-0.9.0/reference/generated/scipy.optimize.fmin_slsqp.html#scipy.optimize.fmin_slsqp)
* General documentation: [SciPy.optimize](http://docs.scipy.org/doc/scipy-0.9.0/reference/tutorial/optimize.html)
* Manual of BFGS: [fmin_bfgs](http://docs.scipy.org/doc/scipy-0.9.0/reference/generated/scipy.optimize.fmin_bfgs.html#scipy.optimize.fmin_bfgs)
* Manual of constrained least square: [fmin_slsqp](http://docs.scipy.org/doc/scipy-0.9.0/reference/generated/scipy.optimize.fmin_slsqp.html#scipy.optimize.fmin_slsqp)
Examples of calls of these two functions are given below. We will use both solvers with numerical (finite-differencing) differenciation, to avoid the extra work of differencing the cost and constraint functions by hand. In general, it is strongly advice to first test a numerical program with finite differencing, before implementing the true derivatives only if needed. In any case, the true derivatives must always be checked by comparing the results with the finite differenciation.
......@@ -156,7 +154,7 @@ print robot.data.oMi[i] # Access to the placement of the end effector at conf
{% endhighlight %}
These two models are the output of the first tutorial. The most interesting option is to use them.
Alternatively, a RobotWrapper Class is available directly with Pinocchio. You can use it to load a model from a urdf file and automatically get the visual meshes described in this urdf. The RobotWrapper Class is able then to automatically communicate with the Gepetto viewer in order to display your robts.
Alternatively, a RobotWrapper Class is available directly with Pinocchio. You can use it to load a model from a urdf file and automatically get the visual meshes described in this urdf. The RobotWrapper Class is able then to automatically communicate with the Gepetto viewer in order to display your robts.
Two urdf models are available and are described below.
......@@ -208,7 +206,7 @@ The Class `robotWrapper` will call for you the urdf parser and the geometry pars
<a name="tutorial-11-position-the-end-effector"></a>
# Tutorial 1.1. Position the end effector
# Tutorial 2.1. Position the end effector
The first tutorial is to position (i.e. translation only) the end effector of a manipulator robot to a given position. For this first part, we will use the fixed serial-chain robot model.
......@@ -229,7 +227,7 @@ __Question 3:__ Finally, implements a callback function that display in Gepetto-
<a name="tutorial-12-approaching-the-redundancy"></a>
# Tutorial 1.2. Approaching the redundancy
# Tutorial 2.2. Approaching the redundancy
The manipulator arm has 7 DOF, while the cost function only constraints 3 of them (the position of the end effector). A continuum of solutions then exists. The two next questions are aiming at giving an intuition of this continuum.
......@@ -241,7 +239,7 @@ __Question 5:__ Sum a secondary cost term to the first positioning cost, to sele
<a name="tutorial-13-placing-the-end-effector"></a>
# Tutorial 1.3. Placing the end-effector
# Tutorial 2.3. Placing the end-effector