#Configuration file of Simloid simulation environment

#---Simulation---
stepLength                         0.010000                           #step length for one simulation step in s (double)
showVel                            true                               #print sim/realtime velocity on console (bool)
slowDownToRealTime                 false                              #slow down simulation velocity to 1.0x (bool)
controllerType                     "TCP"                            #controller to be used (string)
initialPause                       false                               #start simulation in pause-mode (bool)
contactSoftERP                     0.300000                           #error reduction parameter during contacts (double)
contactSoftCFM                     0.000100                           #constraint force mixing during contacts (double)

#---Bioloid---
bioloidFullCollision               true                               #full collision of bodies on/off (bool)
activateAccelBoards                true                              #sensorboards on/off (bool)

#---Ball---
withBall                           on                              #ball on/off (bool)
ball_posx                          0.00000                           #initial x of ball pos (double)
ball_posy                          -0.100000                          #initial y of ball pos (double)
ball_posz                          0.040000                           #initial z of ball pos (double)
ball_mass                          0.010000                           #ball mass (double)
ball_radius                        0.040000                           #ball radius (double)

#---Visualization---
show_aabb                          false                              #show geom AABBs (bool)
show_contacts                      false                              #show contact points (bool)
draw_scene                         true                               #draw scene in window (bool)
disableGraphics                    false                              #creating window? (otherwise just running on console) (bool)
rotatingVel                        0.010000                           #camera rotating velocity (double)
fps                                25.000000                          #frames per second (double)
useFps                             true                               #use fps-controller or draw every simstep (bool)
windowX                            352                                #window size x (int)
windowY                            288                                #window size y (int)

#---TCPController---
tcp_port                           7777                               #TCP port where to connect client (int)
tcp_initialMaxTorque               500                                #initial maxtorque value for joint motors (int)
tcp_pidP                           3.500000                           #P-Value for PID-Controller (double)
tcp_pidI                           0.000000                           #I-Value for PID-Controller (double)
tcp_pidD                           0.100000                           #D-Value for PID-Controller (double)

#---Mef3Controller---
mef3_filename                      "test.mef"                         #filename of mef3 file to be played (string)
mef3_initialMaxTorque              700                                #initial maxtorque value for joint motors (int)
mef3_pidP                          10.000000                          #P-Value for PID-Controller (double)
mef3_pidI                          0.000000                           #I-Value for PID-Controller (double)
mef3_pidD                          0.000000                           #D-Value for PID-Controller (double)

#---ExperimentalController---
exp_pidP                           10.000000                          #P-Value for PID-Controller (double)
exp_pidI                           0.000000                           #I-Value for PID-Controller (double)
exp_pidD                           0.000000                           #D-Value for PID-Controller (double)

#---TrajectoryController---
traj_initialMaxTorque              700                                #initial maxtorque value for joint motors (int)
traj_pidP                          10.000000                          #P-Value for PID-Controller (double)
traj_pidI                          0.000000                           #I-Value for PID-Controller (double)
traj_pidD                          0.000000                           #D-Value for PID-Controller (double)
traj_withInit                      true                               #doing init phase before each episode (bool)
traj_initTime                      1.000000                           #duration of init phase (double)

#---KeyframeController---
key_initialMaxTorque               700                                #initial maxtorque value for joint motors (int)
key_pidP                           0.900000                           #P-Value for PID-Controller (double)
key_pidI                           0.100000                           #I-Value for PID-Controller (double)
key_pidD                           0.100000                           #D-Value for PID-Controller (double)

#---SinusTrajectoryGenerator---
sintraj_periodicTime               3.000000                           #periodic time (Fullstep in s) (double)
sintraj_maxEpisodeDuration         10.000000                          #max episodeTime during evolution (double)

#---SinusWalk1TrajectoryGenerator---
walk1_periodicTime                 3.000000                           #periodic time (Fullstep in s) (double)
walk1_maxEpisodeDuration           15.000000                          #max episodeTime during evolution (double)

#---SinusWalk2TrajectoryGenerator---
walk2_periodicTime                 3.000000                           #periodic time (Fullstep in s) (double)
walk2_maxEpisodeDuration           15.000000                          #max episodeTime during evolution (double)

#---SinusWalk3TrajectoryGenerator---
walk3_periodicTime                 3.000000                           #periodic time (Fullstep in s) (double)
walk3_maxEpisodeDuration           15.000000                          #max episodeTime during evolution (double)

#---Evolution---
doEvolution                        off                               #evolution on/off (bool)
thePopulationSize                  50                                 #number of individuals per population (int)
theSelectionSize                   15                                 #number of individuals of selection (int)
theInitGenerationType              "PROTOTYPE_GAUSS"                  #how to init the first population (string)
theInitGaussianVariance            0.050000                           #gaussian variance at init with gauss (double)
min                                -2.600000                          #lower border of gene (double)
max                                2.600000                           #upper border of gene (double)
theSelectionType                   "NBEST"                            #how to select the selection (string)
theFitnessWeight                   1.000000                           #weight of individuals fitness at SELECT_PROBABILITY (double)
theCrossoverType                   "CROSSOVER"                        #filling of selection: crossover or copies (string)
theIndividualMutationProbability   0.500000                           #probability of mutation for one individual (double)
theIndividualMutationType          "PROBABILITY"                      #how to select genes to be mutated for one individual (string)
theMutatationGenNr                 2                                  #number of genes to be mutated (INDIVIDUAL_MUTATE_FIXN) (int)
theGenMutationProbability          0.200000                           #probability of mutation for each gene (INDIVIDUAL_MUTATE_PROBABILITY) (double)
theGenMutationType                 "GAUSS"                            #how to mutate one gene - equipartition or gaussian (string)
theMutationGaussianVariance        0.050000                           #gaussian variance of gene-mutation (GEN_MUTATE_GAUSSIAN) (double)
generationStatLogFile              "generations.log"                  #log for generations statisics (string)
bestLogFile                        "best.log"                         #log for best individuals (string)
lastPopulationFile                 "lastPop.log"                      #save for current population at programs kill (string)