Commit 695905b6 authored by Florent Lamiraux's avatar Florent Lamiraux Committed by Florent Lamiraux florent@laas.fr
Browse files

Main documentation for Agimus framework.

parents
[submodule "cmake"]
path = cmake
url = git://github.com/jrl-umi3218/jrl-cmakemodules.git
# Copyright 2019 CNRS, Airbus SAS
# Author: Florent Lamiraux
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
INCLUDE(cmake/base.cmake)
INCLUDE(cmake/hpp.cmake)
SET(PROJECT_NAME agimus-doc)
SET(PROJECT_DESCRIPTION "Documentation of Agimus framework")
SET(PROJECT_URL "")
SETUP_HPP_PROJECT ()
ADD_DOC_DEPENDENCY (agimus_sot)
ADD_DOC_DEPENDENCY (agimus_hpp)
ADD_DOC_DEPENDENCY (agimus)
ADD_DOC_DEPENDENCY (agimus_demos)
ADD_DOC_DEPENDENCY (hpp-manipulation-corba)
CONFIGURE_FILE (doc/main-page.hh.in ${CMAKE_BINARY_DIR}/doc/main-page.hh
@ONLY)
SETUP_HPP_PROJECT_FINALIZE ()
# agimus-doc
Subproject commit 429af97fe0b858bd73a1747768cc1ac735386140
INPUT = @CMAKE_SOURCE_DIR@/doc @CMAKE_BINARY_DIR@/doc
\ No newline at end of file
digraph graphname {
graph [bb="0,0,1278,537.74",
compound=True,
rank=same,
rankdir=LR,
ranksep=0.2
];
node [label="\N"];
subgraph cluster_agimus {
graph [bb="270.08,391.74,1270,520.74",
compound=True,
label=agimus,
lheight=0.21,
lp="770.05,509.24",
lwidth=0.56,
rank=same,
rankdir=LR,
ranksep=0.2,
style=bold
];
n___agimus__path_execution_supervision [URL=__agimus__path_execution_supervision,
height=0.5,
label="/agimus/path_execution_supervision",
pos="417.82,471.74",
shape=ellipse,
tooltip="/agimus/path_execution_supervision",
width=3.8816];
n___agimus__path_execution_fsm [URL=__agimus__path_execution_fsm,
height=0.5,
label="/agimus/path_execution_fsm",
pos="813.65,460.74",
shape=ellipse,
tooltip="/agimus/path_execution_fsm",
width=3.1414];
n___agimus__path_execution_supervision -> n___agimus__path_execution_fsm [URL=topic_3A__agimus__sot__event__done,
label="/agimus/sot/event/done",
lp="629.06,475.24",
penwidth=1,
pos="e,702.13,463.82 554.63,467.94 599.3,466.69 648.63,465.32 692.09,464.1"];
n___agimus__hpp__hpp_node [URL=__agimus__hpp__hpp_node,
height=0.5,
label="/agimus/hpp/hpp_node",
pos="1170.4,417.74",
shape=ellipse,
tooltip="/agimus/hpp/hpp_node",
width=2.5456];
n___agimus__path_execution_fsm -> n___agimus__hpp__hpp_node [URL=topic_3A__hpp__target__publish,
label="/hpp/target/publish",
lp="1002.7,441.24",
penwidth=1,
pos="e,1079.9,420.62 874.17,445.46 893.39,441.04 914.86,436.63 934.74,433.74 978.78,427.32 1027.9,423.47 1069.7,421.16"];
n___agimus__hpp__hpp_node -> n___agimus__path_execution_fsm [URL=topic_3A__hpp__target__publish_done,
label="/hpp/target/publish_done",
lp="1002.7,472.24",
penwidth=1,
pos="e,924.17,464.72 1131.7,434.19 1113.6,441.28 1091.5,448.84 1070.7,452.74 1026.6,461.04 977.52,464.04 934.19,464.63"];
n___agimus__sot__start_supervisor [URL=__agimus__sot__start_supervisor,
height=0.5,
label="/agimus/sot/start_supervisor",
pos="417.82,417.74",
shape=ellipse,
tooltip="/agimus/sot/start_supervisor",
width=3.0692];
}
subgraph cluster_table {
graph [bb="8,234.74,241.08,363.74",
compound=True,
label=table,
lheight=0.21,
lp="124.54,352.24",
lwidth=0.38,
rank=same,
rankdir=LR,
ranksep=0.2,
style=bold
];
n___table__to_tf [URL=__table__to_tf,
height=0.5,
label="/table/to_tf",
pos="124.54,260.74",
shape=ellipse,
tooltip="/table/to_tf",
width=1.3721];
n___table__robot_state_publisher [URL=__table__robot_state_publisher,
height=0.5,
label="/table/robot_state_publisher",
pos="124.54,314.74",
shape=ellipse,
tooltip="/table/robot_state_publisher",
width=3.015];
}
subgraph cluster_box {
graph [bb="11.9,64.736,237.18,139.74",
compound=True,
label=box,
lheight=0.21,
lp="124.54,128.24",
lwidth=0.29,
rank=same,
rankdir=LR,
ranksep=0.2,
style=bold
];
n___box__robot_state_publisher [URL=__box__robot_state_publisher,
height=0.5,
label="/box/robot_state_publisher",
pos="124.54,90.736",
shape=ellipse,
tooltip="/box/robot_state_publisher",
width=2.9067];
}
n___node_stack_of_tasks [URL=__node_stack_of_tasks,
height=0.5,
label="/node_stack_of_tasks",
pos="417.82,279.74",
shape=ellipse,
tooltip="/node_stack_of_tasks",
width=2.4012];
n___agimus__hpp__hpp_node -> n___node_stack_of_tasks [URL=topic_3A__hpp__target__position,
label="/hpp/target/position",
lp="813.65,330.24",
penwidth=1,
pos="e,500.03,285.48 1150.6,400.08 1131.9,383.51 1101.6,359.45 1070.7,346.74 1020.1,325.87 677.21,298.51 510.06,286.22"];
n___table__to_tf -> n___agimus__hpp__hpp_node [URL=topic_3A__tf,
label="/tf",
lp="629.06,398.24",
penwidth=1,
pos="e,1080.9,413.6 174.04,260.9 197.13,263.5 223.48,270.53 241.08,287.74 251.26,297.68 242.02,306.38 249.08,318.74 255.63,330.2 258.17,334.04 270.08,339.74 340.93,373.61 852.16,402.26 1070.7,413.1"];
n___table__to_tf -> n___node_stack_of_tasks [URL=topic_3A__tf,
label="/tf",
lp="255.58,277.24",
penwidth=1,
pos="e,335.11,274.41 173.31,263.85 214.31,266.53 274.56,270.46 324.87,273.74"];
n___tf2_buffer_server [URL=__tf2_buffer_server,
height=0.5,
label="/tf2_buffer_server",
pos="1170.4,158.74",
shape=ellipse,
tooltip="/tf2_buffer_server",
width=2.0762];
n___table__to_tf -> n___tf2_buffer_server [URL=topic_3A__tf,
label="/tf",
lp="629.06,90.236",
penwidth=1,
pos="e,1122.8,144.69 143.31,243.81 166.08,223 207.58,187.98 249.08,167.74 379.98,103.88 421.17,101.79 565.56,82.736 766.73,56.19 1005.9,112.25 1112.8,141.91"];
n___table__robot_state_publisher -> n___agimus__hpp__hpp_node [URL=topic_3A__tf,
label="/tf",
lp="629.06,530.24",
penwidth=1,
pos="e,1150,435.6 133.03,332.78 150.36,371.81 197.38,463.39 270.08,498.74 348.8,537 931.23,528.34 1070.7,483.74 1097.4,475.21 1123.6,457.14 1142.2,442.06"];
n___table__robot_state_publisher -> n___node_stack_of_tasks [URL=topic_3A__tf,
label="/tf",
lp="255.58,307.24",
penwidth=1,
pos="e,342.29,288.69 212.93,304.23 250.61,299.71 294.52,294.43 331.92,289.94"];
n___table__robot_state_publisher -> n___tf2_buffer_server [URL=topic_3A__tf,
label="/tf",
lp="629.06,211.24",
penwidth=1,
pos="e,1108.7,168.99 213.16,304.28 223.36,300.28 232.99,294.91 241.08,287.74 248.86,280.83 242.52,273.81 249.08,265.74 256.01,257.22 259.69,256.29 270.08,252.74 547.31,157.96 635.55,227.18 926.74,194.74 984.82,188.26 1050.4,178.39 1098.7,170.61"];
n___robot_state_publisher [URL=__robot_state_publisher,
height=0.5,
label="/robot_state_publisher",
pos="813.65,254.74",
shape=ellipse,
tooltip="/robot_state_publisher",
width=2.4734];
n___robot_state_publisher -> n___agimus__hpp__hpp_node [URL=topic_3A__tf_static,
label="/tf_static",
lp="1002.7,288.24",
penwidth=1,
pos="e,1162.3,399.71 899.14,259.87 967.93,264.62 1056,272.21 1070.7,280.74 1114,305.72 1143.3,358.13 1158.2,390.39"];
n___robot_state_publisher -> n___node_stack_of_tasks [URL=topic_3A__tf_static,
label="/tf_static",
lp="629.06,278.24",
penwidth=1,
pos="e,500.9,274.53 728.29,260.09 664.49,264.14 576.95,269.7 511.25,273.87"];
n___robot_state_publisher -> n___tf2_buffer_server [URL=topic_3A__tf_static,
label="/tf_static",
lp="1002.7,248.24",
penwidth=1,
pos="e,1147.6,175.92 891.49,245.87 960.71,237.62 1054.1,225.72 1070.7,219.74 1095.5,210.82 1120.8,195.07 1139.5,181.8"];
n___box__robot_state_publisher -> n___agimus__hpp__hpp_node [URL=topic_3A__tf,
label="/tf",
lp="629.06,124.24",
penwidth=1,
pos="e,1165.8,399.54 229.29,90.937 447.6,93.459 944.66,110.89 1070.7,215.74 1125.9,261.61 1152.7,345.77 1163.4,389.57"];
n___box__robot_state_publisher -> n___node_stack_of_tasks [URL=topic_3A__tf,
label="/tf",
lp="255.58,187.24",
penwidth=1,
pos="e,390.42,262.61 152.42,108.18 205.34,142.51 322.96,218.84 381.84,257.04"];
n___box__robot_state_publisher -> n___tf2_buffer_server [URL=topic_3A__tf,
label="/tf",
lp="629.06,12.236",
penwidth=1,
pos="e,1156.4,140.85 177.24,75.166 324.35,33.792 754.96,-66.866 1070.7,67.736 1103.4,81.67 1132.2,111.3 1150.1,132.98"];
n___node_stack_of_tasks -> n___agimus__path_execution_fsm [URL=topic_3A__agimus__sot__event__error,
label="/agimus/sot/event/error",
lp="629.06,450.24",
penwidth=1,
pos="e,729.94,448.54 449.94,296.57 481.33,315.04 529.09,347.49 557.56,387.74 564.05,396.92 557.12,404.3 565.56,411.74 577.43,422.2 654.94,436.51 720.03,446.96"];
n___node_stack_of_tasks -> n___agimus__hpp__hpp_node [URL=topic_3A__tf,
label="/tf",
lp="813.65,374.24",
penwidth=1,
pos="e,1121,402.56 476.33,293 533.11,305.81 622.51,325.2 700.56,338.74 864.19,367.11 908.19,355.64 1070.7,389.74 1083.9,392.5 1097.9,396.08 1111.1,399.75"];
n___node_stack_of_tasks -> n___robot_state_publisher [URL=topic_3A__joint_states,
label="/joint_states",
lp="629.06,251.24",
penwidth=1,
pos="e,734.23,246.51 466.86,264.85 495.25,256.84 532.09,247.78 565.56,243.74 621.59,236.96 636.17,241.16 692.56,243.74 702.78,244.2 713.48,244.89 724.09,245.7"];
n___node_stack_of_tasks -> n___node_stack_of_tasks [URL=topic_3A__tf,
label="/tf",
lp="417.82,323.24",
penwidth=1,
pos="e,446.52,296.77 389.11,296.77 383.25,306.59 392.82,315.74 417.82,315.74 433.44,315.74 443.04,312.16 446.61,307.09"];
n___node_stack_of_tasks -> n___tf2_buffer_server [URL=topic_3A__tf,
label="/tf",
lp="813.65,217.24",
penwidth=1,
pos="e,1097.9,163.23 465.39,264.67 494.07,255.75 531.7,244.68 565.56,236.74 749.36,193.6 970.61,172.69 1087.6,163.99"];
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
// Copyright 2019 CNRS Airbus
// Author: Florent Lamiraux
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following
// disclaimer in the documentation and/or other materials provided
// with the distribution.
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
// COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
// OF THE POSSIBILITY OF SUCH DAMAGE.
/// \mainpage Agimus: a framework for manipulation motion planning and control.
///
/// \section agimus_doc_sec_intro Introduction
///
/// \c Agimus is a framework aimed at integrating motion planning and
/// motion control of manipulation tasks for a wide variety of robots.
/// The computation pipeline is composed of several steps
///
/// \li A motion is planned based on a model of the robot, environment
/// and objects to grasp, the result is a sequence of manipulation
/// motions. Along each segment of the motion, a set of constraints is
/// active (object grasped by a gripper, object still in a stable
/// pose). This step is performed by the software platform HPP
/// (Humanoid Path Planner), running in an executable that implements
/// a CORBA server. To trigger path planning and get solution paths, a
/// <a href="@HPP_MANIPULATION_CORBA_DOXYGENDOCDIR@/index.html">
/// CORBA client</a> is run in a ROS node.
///
/// \li For each segment of the motion, a controller is created in the
/// Stack of Tasks framework. This step is produced by package
/// <a href="@AGIMUS_SOT_DOXYGENDOCDIR@/index.html"> \c agimus_sot </a>.
/// Reference motions for each task is extracted from the planned trajectory
/// by <a href="@AGIMUS_HPP_DOXYGENDOCDIR@/index.html">agimus_hpp</a>.
///
/// \li A finite state machine switch from one controller to the next
/// one. This finite state machine is implemented in package
/// <a href="@AGIMUS_DOXYGENDOCDIR@/index.html"> \c agimus </a>.
///
/// \section agimus_doc_sec_architecture ROS runtime architecture
///
/// Execution on a robot is performed using ROS middleware. The
/// software architecture depends on whether the demo is run on a
/// robot, or in simulation.
///
/// \subsection agimus_doc_subsec_geomtric_simu Geometric Simulation
///
/// In this mode, the control input computed by the Stack of Tasks software is
/// integrated to update the configuration of the robot. The two figures below
/// display the architecture.
///
/// \image html talos-manipulate-boxes-geometric-simu.launch.svg "Example of ROS architecture for a humanoid robot manipulating a box on a table. Blue and red boxes represent ROS nodes grouped by packages. Grey boxes represent launch files."
///
/// \image html geometric-simu-rosgraph.svg "Example of ROS architecture for a humanoid robot manipulating a box on a table. Ellipses represent ROS nodes, arrows represent topics."
///
/// \subsection agimus_doc_subsec_gazebo_simulation Gazebo simulation
///
/// In this mode the robot hardware is simulated by Gazebo.
///
/// The ROS nodes are
/// \li \c hpp_node
/// \li ...
///
/// \subsection agimus_doc_subsec_real_robot
///
/// In this mode, the software is run on the real robot.
///
/// The ROS nodes are
/// \li \ hpp_node
/// \li ...
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