## For instruction on writing tutorials
## http://www.ros.org/wiki/WritingTutorials
####################################
##FILL ME IN
####################################
## for a custom note with links:
## note =
## for the canned note of "This tutorial assumes that you have completed the previous tutorials:" just add the links 
## note.0= 
## descriptive title for the tutorial
## title = Running long-term test
## multi-line description to be displayed in search 
## description = This tutorial instructs you how to set the parameters and run long-term test.
## the next tutorial description (optional)
## next =
## links to next tutorial (optional)
## next.0.link=
## next.1.link=
## what level user is this tutorial for 
## level= BeginnerCategory
## keywords =
####################################

<<IncludeCSTemplate(TutorialCSHeaderTemplate)>>

<<TableOfContents(4)>>

=== Setting parameters ===
Before running the test, you first must define the components you wish to be tested. This is done in a yaml file: {{{cob_hardware_test/cob_bringup_test/config/<robot>/all_components_test.yaml}}}

Here is an example where you can see how the file is structured:
{{{
base:
  goals:
    test_0: [0,0,0]
    test_1: [1,0,0]
    test_n: [1,-1,0]
  params:
    max_duration: 0

actuators:
  torso:
    name: "torso"
    default_target: "home"
    test_target: "front_down"
  arm_left: 
    name: "arm_left" 
    default_target: "home" 
    test_target: "folded" 

sensors:
  laser_front:
    name: "laser_front"
    topic: /scan_front
    msg_type: LaserScan
  torso_cam3d_left_depth_points:
    name: "torso_cam3d_left_depth_points"
    topic: /torso_cam3d_left/depth_registered/points
    msg_type: PointCloud2
}}}


For base you can define as many test-goals as you like. Max_duration parameter defines the maximum duration in minutes for a movement from one goal to another. Exceeding max_duration will count as a failure. Default value is 0 which stands for infinite (i.e. no limit).

Actuators are grouped under the “actuators” key. For each actuator you define name, test_target and default_target.

Sensors are grouped under the “sensors” key. For each sensor you define name, topic and msg_type.

=== Launching the test ===

Following parameters must be passed while launching the test:

  {{{sim}}}

  {{{result_dir}}}

And at least one of the following two:

  {{{max_rounds}}}

  {{{max_duration}}}


Here is an example how to launch the test in terminal:

{{{
$ roslaunch cob_bringup_test component_test_all.launch max_duration:=2 sim:=false result_dir:=/<test_result_directory>/
}}}

Test will be ended when max_duration or max_rounds is exceeded. If a component fails to move, all components will be recovered and movement is continued. If the component still fails to move after one recover, test will be terminated.

=== Results ===

Result file is generated in the given directory. The file has five sections: Tested components, Test parameters, Test log, Diagnostics and Summary.

## AUTOGENERATED DO NOT DELETE 
## TutorialCategory
## FILL IN THE STACK TUTORIAL CATEGORY HERE