From cd5cfc2662e5fdcb7b30ff4f4dfb9cd7e33e0312 Mon Sep 17 00:00:00 2001 From: Mirko Waechter <mirko.waechter@kit.edu> Date: Fri, 16 Nov 2012 15:20:13 +0000 Subject: [PATCH] Fixed some documentation git-svn-id: https://svn.sfb588.uni-karlsruhe.de/svn/HumanoidRobotAPI@20 e7ad446d-f7d8-486a-9efb-df2f5bbea5c6 --- etc/doxygen/HumanoidRobotAPI.Doxyfile.in | 20 +- etc/doxygen/layout/Doxygen.css | 634 +++++++++++++++--- .../MotionControlTest/MotionControlTestApp.h | 2 +- .../motioncontrol/MotionControl.cpp | 30 +- .../motioncontrol/MotionControl.h | 19 +- 5 files changed, 589 insertions(+), 116 deletions(-) diff --git a/etc/doxygen/HumanoidRobotAPI.Doxyfile.in b/etc/doxygen/HumanoidRobotAPI.Doxyfile.in index 6f90b1e3a..75cafd574 100644 --- a/etc/doxygen/HumanoidRobotAPI.Doxyfile.in +++ b/etc/doxygen/HumanoidRobotAPI.Doxyfile.in @@ -38,7 +38,7 @@ PROJECT_NUMBER = # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. -OUTPUT_DIRECTORY = "@PROJECT_BUILD_DIR@" +OUTPUT_DIRECTORY = "@PROJECT_BINARY_DIR@" # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output @@ -515,8 +515,8 @@ WARN_LOGFILE = # with spaces. INPUT = "@PROJECT_SOURCE_DIR@/source" \ - "@PROJECT_DOCUMENTATION_PAGES_DIR@" \ - "@PROJECT_BUILD_DIR@/propertydocs.dox" + "@PROJECT_DOCUMENTATION_DIR@/doxygen" \ + "@PROJECT_BINARY_DIR@/propertydocs.dox" # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is @@ -545,7 +545,7 @@ RECURSIVE = YES # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. -EXCLUDE = +EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded @@ -569,8 +569,8 @@ EXCLUDE_PATTERNS = moc* \ */cmake/* \ */config/* \ */test/* \ - - + + # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the @@ -578,7 +578,7 @@ EXCLUDE_PATTERNS = moc* \ # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test -EXCLUDE_SYMBOLS = +EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see @@ -751,6 +751,10 @@ HTML_FOOTER = @PROJECT_DOCUMENTATION_LAYOUT_DIR_REL@/Footer.html HTML_STYLESHEET = @PROJECT_DOCUMENTATION_LAYOUT_DIR_REL@/Doxygen.css +# Customized layout + +LAYOUT_FILE = @PROJECT_DOCUMENTATION_LAYOUT_DIR_REL@/DoxygenLayout.xml + # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. @@ -1170,7 +1174,7 @@ TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. -GENERATE_TAGFILE = "@PROJECT_NAME@.tag" +GENERATE_TAGFILE = "@PROJECT_DOCUMENTATION_HTML_OUTPUT_DIR@/@PROJECT_NAME@.tag" # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes diff --git a/etc/doxygen/layout/Doxygen.css b/etc/doxygen/layout/Doxygen.css index d932840e5..c7f9d7459 100755 --- a/etc/doxygen/layout/Doxygen.css +++ b/etc/doxygen/layout/Doxygen.css @@ -1,35 +1,81 @@ +/* The standard CSS for doxygen */ + body, table, div, p, dl { font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; - font-size: 14px; + font-size: 12px; } /* @group Heading Levels */ h1 { - text-align: center; font-size: 150%; } +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + h2 { font-size: 120%; } +h2 ~ *:not(h2) { + margin-left: 10px; +} + h3 { font-size: 100%; } +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + /* @end */ caption { font-weight: bold; } +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + div.qindex, div.navtab{ - background-color: #e8eef2; - border: 1px solid #84b0c7; + background-color: #EBEFF6; + border: 1px solid #A3B4D7; text-align: center; - margin: 2px; - padding: 2px; } div.qindex, div.navpath { @@ -44,13 +90,13 @@ div.navtab { /* @group Link Styling */ a { - color: #153788; + color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { - color: #1b77c5; + color: #4665A2; } a:hover { @@ -63,9 +109,9 @@ a.qindex { a.qindexHL { font-weight: bold; - background-color: #6666cc; + background-color: #9CAFD4; color: #ffffff; - border: 1px double #9295C2; + border: 1px double #869DCA; } .contents a.qindexHL:visited { @@ -80,9 +126,11 @@ a.elRef { } a.code { + color: #4665A2; } a.codeRef { + color: #4665A2; } /* @end */ @@ -97,10 +145,14 @@ dl.el { } pre.fragment { - border: 1px solid #CCCCCC; - background-color: #f5f5f5; + border: 1px solid #C4CFE5; + background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; } div.ah { @@ -108,13 +160,22 @@ div.ah { font-weight: bold; color: #ffffff; margin-bottom: 3px; - margin-top: 3px + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); } div.groupHeader { margin-left: 16px; margin-top: 12px; - margin-bottom: 6px; font-weight: bold; } @@ -124,29 +185,34 @@ div.groupText { } body { - background: white; + background-color: white; color: black; - margin-right: 20px; - margin-left: 20px; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 8px; + margin-right: 8px; } td.indexkey { - background-color: #e8eef2; + background-color: #EBEFF6; font-weight: bold; - border: 1px solid #CCCCCC; + border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; } td.indexvalue { - background-color: #e8eef2; - border: 1px solid #CCCCCC; + background-color: #EBEFF6; + border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { - background-color: #f0f0f0; + background-color: #EEF1F7; } p.formulaDsp { @@ -161,6 +227,27 @@ img.formulaInl { vertical-align: middle; } +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + /* @group Code Colorization */ span.keyword { @@ -209,6 +296,7 @@ span.vhdllogic { /* @end */ +/* .search { color: #003399; font-weight: bold; @@ -225,6 +313,7 @@ input.search { font-weight: normal; background-color: #e8eef2; } +*/ td.tiny { font-size: 75%; @@ -233,26 +322,35 @@ td.tiny { .dirtab { padding: 4px; border-collapse: collapse; - border: 1px solid #84b0c7; + border: 1px solid #A3B4D7; } th.dirtab { - background: #e8eef2; + background: #EBEFF6; font-weight: bold; } hr { - height: 0; + height: 0px; border: none; - border-top: 1px solid #666; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; } /* @group Member Descriptions */ +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #FAFAFA; + background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; @@ -264,11 +362,20 @@ hr { } .memItemLeft, .memItemRight, .memTemplParams { - border-top: 1px solid #ccc; + border-top: 1px solid #C4CFE5; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; } .memTemplParams { - color: #606060; + color: #4665A2; + white-space: nowrap; } /* @end */ @@ -279,51 +386,92 @@ hr { .memtemplate { font-size: 80%; - color: #606060; + color: #4665A2; font-weight: normal; - margin-left: 3px; + margin-left: 9px; } .memnav { - background-color: #e8eef2; - border: 1px solid #84b0c7; + background-color: #EBEFF6; + border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } -.memitem { - padding: 0; -} - -.memname { - white-space: nowrap; - font-weight: bold; -} - -.memproto, .memdoc { - border: 1px solid #84b0c7; +.mempage { + width: 100%; } -.memproto { +.memitem { padding: 0; - background-color: #d5e1e8; - font-weight: bold; - -webkit-border-top-left-radius: 8px; - -webkit-border-top-right-radius: 8px; - -moz-border-radius-topleft: 8px; - -moz-border-radius-topright: 8px; + margin-bottom: 10px; + margin-right: 5px; } -.memdoc { - padding: 2px 5px; - background-color: #eef3f5; - border-top-width: 0; - -webkit-border-bottom-left-radius: 8px; - -webkit-border-bottom-right-radius: 8px; - -moz-border-radius-bottomleft: 8px; - -moz-border-radius-bottomright: 8px; +.memname { + white-space: nowrap; + font-weight: bold; + margin-left: 6px; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 8px; + border-top-left-radius: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 2px 5px; + background-color: #FBFCFD; + border-top-width: 0; + /* opera specific markup */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; } .paramkey { @@ -342,6 +490,28 @@ hr { font-style: normal; } +.params, .retval, .exception, .tparams { + border-spacing: 6px 2px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + + + + /* @end */ /* @group Directory (tree) */ @@ -350,7 +520,7 @@ hr { .ftvtree { font-family: sans-serif; - margin: 0.5em; + margin: 0px; } /* these are for tree view when used as main index */ @@ -358,6 +528,7 @@ hr { .directory { font-size: 9pt; font-weight: bold; + margin: 5px; } .directory h3 { @@ -435,42 +606,345 @@ proper pixel height of your image. /* @end */ +div.dynheader { + margin-top: 8px; +} + address { font-style: normal; - font-size : 12px - color: #333; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug +{ + border-left:4px solid; + padding: 0 0 0 6px; +} + +dl.note +{ + border-color: #D0C000; } -/* Override settings from tabs.css */ -DIV.tabs +dl.warning, dl.attention { - background : none; - background-color : #EEEEFF; - border-width : 1px; - border-style : solid; - border-color : #CCCCCC; + border-color: #FF0000; } -DIV.tabs A +dl.pre, dl.post, dl.invariant { - background : none; - border-bottom : none; + border-color: #00D000; } -DIV.tabs A:hover +dl.deprecated { - background-color: #DDDDFF; + border-color: #505050; } -DIV.tabs SPAN +dl.todo { - background : none; + border-color: #00C0E0; +} + +dl.test +{ + border-color: #3030E0; +} + +dl.bug +{ + border-color: #C08050; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; } -DIV.tabs LI.current SPAN +@media print { - background-color: #6666cc; - color : #FFFFFF; + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } + pre.fragment + { + overflow: visible; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + } } -/* @end of Override settings from tabs.css */ diff --git a/source/HumanoidRobotAPI/applications/MotionControlTest/MotionControlTestApp.h b/source/HumanoidRobotAPI/applications/MotionControlTest/MotionControlTestApp.h index 48e275d2f..d8f4cd261 100755 --- a/source/HumanoidRobotAPI/applications/MotionControlTest/MotionControlTestApp.h +++ b/source/HumanoidRobotAPI/applications/MotionControlTest/MotionControlTestApp.h @@ -32,7 +32,7 @@ namespace armarx { void setup(const ManagedIceObjectRegistryInterfacePtr& registry, Ice::PropertiesPtr properties) { - registry->addObject( Component::create<MoveHelpers::MotionControl>(properties) ); + registry->addObject( Component::create<MoveHelpers::MotionControlHandler>(properties) ); }; }; }; diff --git a/source/HumanoidRobotAPI/motioncontrol/MotionControl.cpp b/source/HumanoidRobotAPI/motioncontrol/MotionControl.cpp index d652e3e7c..27e192fe3 100644 --- a/source/HumanoidRobotAPI/motioncontrol/MotionControl.cpp +++ b/source/HumanoidRobotAPI/motioncontrol/MotionControl.cpp @@ -15,13 +15,13 @@ using namespace armarx; using namespace armarx::MoveHelpers; -MotionControl::MotionControl() +MotionControlHandler::MotionControlHandler() { } -void MotionControl::onInitRemoteStateHandler() +void MotionControlHandler::onInitRemoteStateHandler() { //addState<MoveJoints>("MoveJoints"); //addState<MotionControlTestState>("MotionControlTestState"); @@ -30,7 +30,7 @@ void MotionControl::onInitRemoteStateHandler() -void MotionControl::onConnectRemoteStateHandler() +void MotionControlHandler::onConnectRemoteStateHandler() { } @@ -40,9 +40,7 @@ void MoveJoints::defineParameters() { context = getContext<RobotStatechartContext>(); - std::string configFilepathAbsolute; - ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute); - setConfigFile(configFilepathAbsolute); + setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml"); addToInputAsList("jointNames", VariantType::String, false); addToInputAsList("targetJointValues", VariantType::Float, false); @@ -137,9 +135,7 @@ void MoveJointsVelocityControl::defineParameters() { context = getContext<RobotStatechartContext>(); - std::string configFilepathAbsolute; - ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute); - setConfigFile(configFilepathAbsolute); + setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml"); addToInputAsList("jointNames", VariantType::String, false); addToInputAsList("targetJointVelocities", VariantType::Float, false); @@ -229,9 +225,7 @@ void MoveTCPPoseIK::defineParameters() { context = getContext<RobotStatechartContext>(); - std::string configFilepathAbsolute; - ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute); - setConfigFile(configFilepathAbsolute); + setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml"); addToInput("kinematicChainName", VariantType::String, false); addToInput("targetTCPPosition", VariantType::LinkedPosition, false); @@ -285,9 +279,7 @@ void MoveTCPTrajectory::defineParameters() { context = getContext<RobotStatechartContext>(); - std::string configFilepathAbsolute; - ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute); - setConfigFile(configFilepathAbsolute); + setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml"); addToInput("kinematicChainName", VariantType::String, false); addToInputAsList("targetTCPPositions", VariantType::LinkedPosition, false); @@ -583,9 +575,7 @@ void ValidateJointAngleConfiguration::onEnter() void MotionControlTestState::defineParameters() { - std::string configFilepathAbsolute; - ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute); - setConfigFile(configFilepathAbsolute); + setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml"); addToInputAsList("jointNames", VariantType::String, false); addToInputAsList("targetJointValues", VariantType::Float, false); @@ -617,9 +607,7 @@ void MotionControlTestState::defineSubstates() void MotionControlTestStateIK::defineParameters() { - std::string configFilepathAbsolute; - ArmarXDataPath::getAbsolutePath("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml", configFilepathAbsolute); - setConfigFile(configFilepathAbsolute); + setConfigFile("HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml"); addToInput("kinematicChainName", VariantType::String, false); //addToInput("targetTCPPosition", VariantType::LinkedPosition, false); diff --git a/source/HumanoidRobotAPI/motioncontrol/MotionControl.h b/source/HumanoidRobotAPI/motioncontrol/MotionControl.h index 79f65bd58..850621e83 100644 --- a/source/HumanoidRobotAPI/motioncontrol/MotionControl.h +++ b/source/HumanoidRobotAPI/motioncontrol/MotionControl.h @@ -21,7 +21,7 @@ namespace MoveHelpers \section HowTo How to use the states To use one of the Move Helpers state, you have to make it a substate of your own state (see Statechart). To set its parameters, - you can either modify the configuration file (HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml) or map them from you own state to it. + you can either modify the configuration file (${ArmarX_Home}/data/HumanoidRobotAPIConfigs/stateconfigs/MotionControl.xml) or map them from you own state to it. Two kinds of kinematic entities are controlled using the MoveHelpers: single joints and kinematic chains. A kinematic chain is a list of joints that usually belong to a part of the robot, e.g. an arm. The joints and the kinematic chains are all defined in the xml files that describe the @@ -80,16 +80,17 @@ namespace MoveHelpers */ /** - * \class MotionControl + * \class MotionControlHandler * \ingroup MoveHelpers - * MotionControl contains convenience functions that allow to move parts of the robot, + * MotionControlHandler is the remote state interface for the MotionControl- + * States. It contains convenience states that allow to move parts of the robot, * i.e. direct and inverse kinematics for arbitrary kinematic chains and predefined * parts like the arms. */ - class MotionControl : public RemoteStateHandler<RobotStatechartContext> + class MotionControlHandler : public RemoteStateHandler<RobotStatechartContext> { public: - MotionControl(); + MotionControlHandler(); void onInitRemoteStateHandler(); void onConnectRemoteStateHandler(); std::string getDefaultName() const { return "MotionControl"; } @@ -120,6 +121,7 @@ namespace MoveHelpers /** + * \ingroup MoveHelpers * Move the joints of a kinematic chain to the desired values. * \param jointNames the names of the joints to be moved * \param targetJointValues the desired joint values @@ -139,6 +141,7 @@ namespace MoveHelpers /** + * \ingroup MoveHelpers * Move the joints of a kinematic chain to the desired values using velocity control. * \param jointNames the names of the joints to be moved * \param targetJointVelocities the desired joint velocities @@ -157,6 +160,7 @@ namespace MoveHelpers /** + * \ingroup MoveHelpers * Move the TCP to a desired pose. * \param kinematicChainName the name of the kinematic chain that is used * \param targetTCPPosition the target position for the TCP @@ -181,6 +185,7 @@ namespace MoveHelpers DEFINEEVENT(EvLastPointNotYetReached) /** + * \ingroup MoveHelpers * Move the TCP along a trajectory of poses. * \param kinematicChainName the name of the kinematic chain that is used * \param targetTCPPositions the list of target positions for the TCP @@ -204,7 +209,9 @@ namespace MoveHelpers /** - * Stop all motion of the robot. + * \ingroup MoveHelpers + * Stop all motion of the robot. It sets all velocities to 0. No Smooth stopping + * is implemented here. */ struct StopRobot : StateTemplate<StopRobot> { -- GitLab