User:Mwaandah

From Robin

(Difference between revisions)
Jump to: navigation, search
(Ny side: Plan for master year: Week 38 - Essay delivery Week 39 - Get used to simulator program Week 40 - Get used to simulator program and make first program in it Week 41 - Week 42 - Week 43 - …)
(Change of fitness function)
 
(10 intermediate revisions not shown)
Line 1: Line 1:
 +
Current error on Docker:
 +
[ 65%] Linking CXX shared library libgazebo_physics.so
 +
[ 65%] Built target gazebo_physics
 +
make: *** [all] Error 2
 +
Makefile:160: recipe for target 'all' failed
 +
The command '/bin/sh -c /tmp/build_and_make_gazebo.sh' returned a non-zero code: 2
 +
 +
 +
 +
 +
===Change of fitness function===
 +
 +
def fitness(self):
 +
      """
 +
      Fitness is proportional to both the displacement and absolute
 +
      velocity of the center of mass of the robot, in the formula:
 +
 +
      (1 - d l) * (a dS + b S + c l)
 +
 +
      Where dS is the displacement over a direct line between the
 +
      start and end points of the robot, S is the distance that
 +
      the robot has moved and l is the robot size.
 +
 +
      Since we use an active speed window, we use this formula
 +
      in context of velocities instead. The parameters a, b and c
 +
      are modifyable through config.
 +
      :return:
 +
      """
 +
      age = self.age()
 +
      if age < (0.25 * self.conf.evaluation_time) or age < self.conf.warmup_time:
 +
          # We want at least some data
 +
          return 0.0
 +
 +
      v_fac = self.conf.fitness_velocity_factor
 +
      d_fac = self.conf.fitness_displacement_factor
 +
      s_fac = self.conf.fitness_size_factor
 +
      d = 1.0 - (self.conf.fitness_size_discount * self.size)
 +
      v = d * (d_fac * self.displacement_velocity() + v_fac * self.velocity() + s_fac * self.size)
 +
      return v if v <= self.conf.fitness_limit else 0.0
 +
 +
def displacement_velocity(self):
 +
      """
 +
      Returns the displacement velocity, i.e. the velocity
 +
      between the first and last recorded position of the
 +
      robot in the speed window over a straight line,
 +
      ignoring the path that was taken.
 +
      :return:
 +
      """
 +
      dist, time = self.displacement()
 +
      if time.is_zero():
 +
          return 0.0
 +
 +
      return dist.x / float(time)
 +
      #Old: return np.sqrt(dist.x**2 + dist.y**2) / float(time)
 +
 +
Plan for master year:
Plan for master year:
-
Week 38 - Essay delivery
+
{| {{Prettytable}}
-
Week 39 - Get used to simulator program
+
! Week
-
Week 40 - Get used to simulator program and make first program in it
+
! Plan
-
Week 41 -  
+
|-
-
Week 42 -  
+
|Week 38
-
Week 43 -  
+
|Essay delivery
-
Week 44 -  
+
|-
-
Week 45 -  
+
|Week 39
-
Week 46 -  
+
|Get used to simulator program
-
Week 47 -  
+
|-
-
Week 48 -  
+
|Week 40  
-
Week 49 -  
+
|Get used to simulator program and make first program in it
-
Week 50 - Plan experiment
+
|-
-
Week 51 - 1st experiment
+
|Week 41
-
Week 52 - Christmas
+
|Get used to simulator
 +
|-
 +
|Week 42  
 +
|Plan experiment
 +
|-
 +
|Week 43  
 +
|Plan experiment
 +
|-
 +
|Week 44  
 +
|1st experiment
 +
|-
 +
|Week 45  
 +
|1st experiment
 +
|-
 +
|Week 46
 +
|1st experiment
 +
|-
 +
|Week 47
 +
|2nd experiment
 +
|-
 +
|Week 48  
 +
|2nd experiment
 +
|-
 +
|Week 49  
 +
|2nd experiment
 +
|-
 +
|Week 50  
 +
|3rd experiment
 +
|-
 +
|Week 51  
 +
|3rd experiment
 +
|-
 +
|Week 52  
 +
|Christmas
 +
|-
 +
|Week 1
 +
|3rd experiment
 +
|-
 +
|Week 2
 +
|Write about results
 +
|-
 +
|Week 3
 +
|Write about results
 +
|-
 +
|Week 4
 +
|Discussion
 +
|-
 +
|Week 5
 +
|Discussion
 +
|-
 +
|Week 6
 +
|Discussion
 +
|-
 +
|Week 7
 +
|Proofreading
 +
|-
 +
|Week 8
 +
|Proofreading
 +
|-
 +
|Week 9
 +
|Proofreading
 +
|-
 +
|Week 10
 +
|-
 +
|Week 11
 +
|-
 +
|Week 12
 +
|-
 +
|Week 13
 +
|-
 +
|Week 14
 +
|-
 +
|Week 15 
 +
|Ready for delivery
 +
|-
 +
|Week 16
 +
|-
 +
|Week 17
 +
|-
 +
|Week 18
 +
|Delivery!
 +
 
 +
|}
 +
 
 +
===Old fitness function(generation 19(blue) and 9989(green))===
-
Week 1 - 1st experiment
+
[[Fil:robot19-and-9989.png|500px]]]
-
Week 2 - 2nd experiment
+
-
Week 3 - 2nd experiment
+
-
Week 4 - 3rd experiment
+
-
Week 5 - 3rd experiment
+
-
Week 6 - 3rd experiment
+
-
Week 7 - Analysis
+
-
Week 8 - Analysis
+
-
Week 9 - Discussion/results
+
-
Week 10 - Discussion/results
+
-
Week 11 - Discussion/results
+
-
Week 12 - Proof reading
+
-
Week 13 -Proof reading
+
-
Week 14 - Proof reading
+
-
Week 15 - Ready for delivery
+
-
Week 16 -
+
-
Week 17 -
+
-
Week 18 - Delivery!
+
-
Get known to simulator program
+
===New fitness function(generation 19(dark green) and 9992(light green))===
-
Plan experiment
+
[[Fil:newfitnessrobot19androbot9992.png|500px]]

Current revision as of 12:49, 8 March 2019

Current error on Docker: [ 65%] Linking CXX shared library libgazebo_physics.so [ 65%] Built target gazebo_physics make: *** [all] Error 2 Makefile:160: recipe for target 'all' failed The command '/bin/sh -c /tmp/build_and_make_gazebo.sh' returned a non-zero code: 2



Change of fitness function

def fitness(self):

      """
      Fitness is proportional to both the displacement and absolute
      velocity of the center of mass of the robot, in the formula:
      (1 - d l) * (a dS + b S + c l)
      Where dS is the displacement over a direct line between the
      start and end points of the robot, S is the distance that
      the robot has moved and l is the robot size.
      Since we use an active speed window, we use this formula
      in context of velocities instead. The parameters a, b and c
      are modifyable through config.
      :return:
      """
      age = self.age()
      if age < (0.25 * self.conf.evaluation_time) or age < self.conf.warmup_time:
          # We want at least some data
          return 0.0
      v_fac = self.conf.fitness_velocity_factor
      d_fac = self.conf.fitness_displacement_factor
      s_fac = self.conf.fitness_size_factor
      d = 1.0 - (self.conf.fitness_size_discount * self.size)
      v = d * (d_fac * self.displacement_velocity() + v_fac * self.velocity() + s_fac * self.size)
      return v if v <= self.conf.fitness_limit else 0.0

def displacement_velocity(self):

      """
      Returns the displacement velocity, i.e. the velocity
      between the first and last recorded position of the
      robot in the speed window over a straight line,
      ignoring the path that was taken.
      :return:
      """
      dist, time = self.displacement()
      if time.is_zero():
          return 0.0
      return dist.x / float(time)
      #Old: return np.sqrt(dist.x**2 + dist.y**2) / float(time)


Plan for master year:

Week Plan
Week 38 Essay delivery
Week 39 Get used to simulator program
Week 40 Get used to simulator program and make first program in it
Week 41 Get used to simulator
Week 42 Plan experiment
Week 43 Plan experiment
Week 44 1st experiment
Week 45 1st experiment
Week 46 1st experiment
Week 47 2nd experiment
Week 48 2nd experiment
Week 49 2nd experiment
Week 50 3rd experiment
Week 51 3rd experiment
Week 52 Christmas
Week 1 3rd experiment
Week 2 Write about results
Week 3 Write about results
Week 4 Discussion
Week 5 Discussion
Week 6 Discussion
Week 7 Proofreading
Week 8 Proofreading
Week 9 Proofreading
Week 10
Week 11
Week 12
Week 13
Week 14
Week 15 Ready for delivery
Week 16
Week 17
Week 18 Delivery!

Old fitness function(generation 19(blue) and 9989(green))

500px]

New fitness function(generation 19(dark green) and 9992(light green))

500px

Personal tools
Front page