(12th-March-2020)
• This layer of the controller maintains no internal belief state, so the belief state transition function is vacuous. The command function specifies the robot's steering direction as a function of its inputs and whether the robot has arrived.
• The robot has arrived if its current position is close to the previous target position. Thus, arrived is assigned a value that is a function of the robot position and previous target position, and a threshold constant:
arrived ←distance(previous_target_pos,robot_pos)<threshold
where ← means assignment, distance is the Euclidean distance, and threshold is a distance in the appropriate units.
• The robot steers left if the whisker sensor is on; otherwise it heads toward the target position. This can be achieved by assigning the appropriate value to the steer variable:
if whisker_sensor=on
then steer←left
else if straight_ahead(robot_pos,robot_dir,current_target_pos)
then steer←straight
else if left_of(robot_position,robot_dir,current_target_pos)
then steer←left
else steer←right
end if
where straight_ahead(robot_pos,robot_dir,current_target_pos) is true when the robot is at robot_pos, facing the direction robot_dir, and when the current target position, current_target_pos, is straight ahead of the robot with some threshold (for later examples, this threshold is 11o of straight ahead). The function left_of tests if the target is to the left of the robot.
Comments