Commit 1dd56b64 authored by Guilhem Saurel's avatar Guilhem Saurel
Browse files

update installation link

parent a7bac440
<h2>First steps with dynamic graph</h2>
<p>
We assume that the stack of tasks has been installed using the installation instruction provided
<a href="https://github.com/Stack-Of-Tasks/sot-doc/wiki/Installation">there</a>.
<a href="/download.html">there</a>.
</p>
<h3>dynamic-graph 101</h3>
......
......@@ -2,7 +2,7 @@
<p>
We assume that (1) the stack of tasks has been installed using the installation instruction provided
<a href="https://github.com/Stack-Of-Tasks/sot-doc/wiki/Installation">there</a> and (2) that you understood the stack of tasks mecanism.
<a href="/download.html">there</a> and (2) that you understood the stack of tasks mecanism.
</p>
......@@ -14,13 +14,13 @@
This script aims at understanding the mechanisms of a hierarchy of task.
<p>In this script, the robot Romeo has to grasp a ball.
Several sets of stack are tested in order to exemplify the influence and necessity of elements/tasks
<p>In this script, the robot Romeo has to grasp a ball.
Several sets of stack are tested in order to exemplify the influence and necessity of elements/tasks
such as com control, joint limits, damping... during the realization of a simple motion.
</p>
<p>
The purpose of this script is to see by the example the possible faulty behaviors that
The purpose of this script is to see by the example the possible faulty behaviors that
can appear (divergence, loss of stability ...) when the stack is incomplete.
</p>
......@@ -33,7 +33,7 @@ This script aims at understanding the mechanisms of a hierarchy of task.
The robot put its hand at the desired place while keeping its feet on the ground
</li>
<li> Task RH + foot constraint, balance is lost</br>
<li> Task RH + foot constraint, balance is lost</br>
The robot put its hand at the desired place while keeping its feet on the ground, but the balance of the robot is lost due to the desired position of the hand
</li>
......@@ -49,7 +49,7 @@ This script aims at understanding the mechanisms of a hierarchy of task.
<li> Task RH + foot constraint + COM= + SINGULARITY</br>
The robot put its hand at the desired place.
The robot put its hand at the desired place.
Due to the motion of the ball (type <code>i</code> to move it), the robot goes into a near singular configuration and the control law reaches high values, causing a strange behavior of the robot.
</li>
......
......@@ -2,12 +2,12 @@
<p>
We assume that (1) the stack of tasks has been installed using the installation instruction provided
<a href="https://github.com/Stack-Of-Tasks/sot-doc/wiki/Installation">there</a> and (2) that you understood the dynamic graph mecanism.
<a href="/download.html">there</a> and (2) that you understood the dynamic graph mecanism.
</p>
<p>In this section are detailed some examples to test the stack of tasks framework
on the humanoid robot <a href="">Romeo</a>.
<p>In this section are detailed some examples to test the stack of tasks framework
on the humanoid robot <a href="">Romeo</a>.
To vizualize the robot, you need <code>rviz</code>.
</p>
......@@ -21,7 +21,7 @@ In the first, start the viewer.
Note: if you do not want to use the viewer, you can only start <code>roscore</code>
Of course, the ros environment must have been loaded to call rviz.</br>
In the second, start the python script.
In the second, start the python script.
<pre><code class="bash">$ ipython -i kine_romeo.py</code></pre>
To run them, it is necessary to complete the environment variables LD_LIBRARY_PATH and PYTHONPATH.
......@@ -82,7 +82,7 @@ runner=inc()
go()
# 3.
# 3.
from dynamic_graph.sot.core import *
from dynamic_graph import plug
......@@ -123,7 +123,7 @@ solver = initialize (robot)
</code></pre>
<p>
This creates the default stack of tasks solver, that you can call using
This creates the default stack of tasks solver, that you can call using
<code class="python">solver</code>.
You can add or remove tasks from it.
To have a finer access to the tasks manipulation, you have to work directly
......@@ -185,7 +185,7 @@ is still. It is controlled by 3 tasks:
<pre><code class="python">print solver
+-----------------
+ SOT
+ SOT
+-----------------
| romeo_task_com
| romeo_task_left-ankle
......@@ -200,26 +200,26 @@ is still. It is controlled by 3 tasks:
</ul>
</p>
Those three tasks are part of the set of tasks predefined (but not added to the stack) in the dictionary of tasks provided by the entity _Robot_.
Those three tasks are part of the set of tasks predefined (but not added to the stack) in the dictionary of tasks provided by the entity _Robot_.
The dictionary can be consulted using the command: <code>robot.tasks</code>
All of those tasks are 6d tasks.
<pre><code class="python">In [1]: robot.tasks
Out[1]:
{'balance': Task romeo_task_balance:
--- LIST ---
Out[1]:
{'balance': Task romeo_task_balance:
--- LIST ---
-> romeo_feature_com
-> romeo_feature_left-ankle
-> romeo_feature_right-ankle
,
'left-wrist': Task romeo_task_left-wrist:
--- LIST ---
'left-wrist': Task romeo_task_left-wrist:
--- LIST ---
-> romeo_feature_left-wrist
}
</code></pre>
Let's now add a task for the left wrist and define its objective.
As a 6d task, it is possible to define the objective by providing directly the homogeneous matrix.
As a 6d task, it is possible to define the objective by providing directly the homogeneous matrix.
To simplify its definition, we are going to use an entity that converts 6d vectors (x,y, z, roll, pitch, yaw) into homogeneous matrices:
<pre><code class="python">poserpy = PoseRollPitchYawToMatrixHomo ('poserpy')
poserpy.sin.value = (0.08, 0.4, 0.0, 0,0,0)
......@@ -239,8 +239,8 @@ solver.push(robot.tasks['left-wrist'])</code></pre>
<p>
This task is characterized by 4 entities: the task, the operational point (here the right hand augmented by a translation), the desired position for the hand (here only 3d are defined) and the gain of the task (an adaptive gain).
All those elements are gathered in a structure called _taskRH_,instance of _MetaTask6d_, that realizes all the links between the several entities.
This task is characterized by 4 entities: the task, the operational point (here the right hand augmented by a translation), the desired position for the hand (here only 3d are defined) and the gain of the task (an adaptive gain).
All those elements are gathered in a structure called _taskRH_,instance of _MetaTask6d_, that realizes all the links between the several entities.
</p>
......@@ -248,7 +248,7 @@ solver.push(robot.tasks['left-wrist'])</code></pre>
The definition of this task does not use the predefined version of the task contained in the dictionary, only to present an example of task creation.
Typing <code>go</code>starts a the simulation loop.
The robot will then go to the desired positions defined by the tasks.
The robot will then go to the desired positions defined by the tasks.
You can change interactively the content of the stack, the hand... using the python interface.
</p>
......@@ -261,7 +261,7 @@ solver.push(robot.tasks['left-wrist'])</code></pre>
In this example, the Romeo robot goes for a (kinematic) walk.
This script uses the jrl-walkgen package to compute the required postures for the feet, the center of mass and the waist orientation.
The script is built in the same way than the kinematic example (Creation of the solver, definition of the *incrementation* loop),
The script is built in the same way than the kinematic example (Creation of the solver, definition of the *incrementation* loop),
and definition of the pattern generator elements:
<pre><code class="python">
from dynamic_graph.sot.pattern_generator.walking import CreateEverythingForPG , walkFewSteps, walkAndrei
......
......@@ -30,13 +30,13 @@
<section id="main_content" class="inner">
<h2>Tutorials</h2>
We assume that the stack of tasks has been installed using the installation instruction provided
<a href="https://github.com/Stack-Of-Tasks/sot-doc/wiki/Installation">there</a>.
We assume that the stack of tasks has been installed using the installation instruction provided
<a href="/download.html">there</a>.
<h3>Dynamic-graph tutorial</h3>
In the proposed examples, the entity graph is created in a terminal python interpreter and the simulation loop is run within this terminal.
More details on the internal graph structure used in the stack of tasks framework are provided in
In the proposed examples, the entity graph is created in a terminal python interpreter and the simulation loop is run within this terminal.
More details on the internal graph structure used in the stack of tasks framework are provided in
the <a href="https://github.com/jrl-umi3218/dynamic-graph-tutorial">dynamic-graph-tutorial</a>.
<h3>Getting started</h3>
......@@ -45,8 +45,8 @@
<li><a href="tutorials_ros.html">Link with ROS</a></br>This tutorial provides some examples on the binding of the stack of tasks environment with ROS.
</ul>
<h3><a href="testing_your_own_robot.html">Bridge with your own humanoid robot</a></h3>
<div style="clear: both">&nbsp;</div>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment