Robotics: From Basic Terminology to Monte Carlo Localization

31
Robotics: From Basic Terminology to Monte Carlo Localization Todd W. Neller Figures © S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach or S. Thrun. Probabilistic Robitics except where otherwise noted.

Transcript of Robotics: From Basic Terminology to Monte Carlo Localization

Page 1: Robotics: From Basic Terminology to Monte Carlo Localization

Robotics From Basic Terminology to Monte Carlo Localization

Todd W Neller

Figures copy S Russell P Norvig Artificial Intelligence A Modern Approach or S Thrun Probabilistic Robitics except where otherwise noted

Robotics

bull Robot ndash physical agent that performs tasks by sensing and manipulating the physical world ndash Sensors ndash input sensor data from environment for state

estimation ndash Effectors ndash output control actions for actuating effectors to

change state andor environment ndash Maximizing expected utility ndash generate and execute control

outputs that affect change so as to maximize rewards

bull Environment complexity partially observable stochastic people acting in environment (prediction needed) continuous state and action spaces sometimes high-dimensional real-time

Localization

bull Given

ndash Initial pose (state)

ndash Environment map

ndash Sensormeasurement model

ndash Motion model

bull Keep track of the most likely current state as the robot moves and senses in the environment

Monte Carlo Localization

bull Monte Carlo Localization

ndash Initial set of random hypotheses about possible poses (ie states particles)

ndash As the robot moves and senses a Darwinian survival-of-the-fittest process tends to multiply the most likely hypotheses and tends to kill off the least likely

ndash Evolution of a cloud of hypotheses where the center ie average is the most likely robot pose

MCL Algorithm

Motion Model

bull ut ndash motion control command at time t - 1 to affect time t

bull xt-1 ndash pose at time t - 1

bull xt ndash pose at time t

bull Model p(xt | ut xt-1) ndash the probability of the pose being xt given prior motion control command ut and prior pose xt-1

Example 2D Robot with Rotation

bull Simple resting pose (state) (x y θ)T

bull Control translational and rotational velocities (v ω)T

bull Error parameters α1 α2 α3 α4 α5 α6

Motion Model Based on Velocity Command

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Turning radius circle position and radius

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 2: Robotics: From Basic Terminology to Monte Carlo Localization

Robotics

bull Robot ndash physical agent that performs tasks by sensing and manipulating the physical world ndash Sensors ndash input sensor data from environment for state

estimation ndash Effectors ndash output control actions for actuating effectors to

change state andor environment ndash Maximizing expected utility ndash generate and execute control

outputs that affect change so as to maximize rewards

bull Environment complexity partially observable stochastic people acting in environment (prediction needed) continuous state and action spaces sometimes high-dimensional real-time

Localization

bull Given

ndash Initial pose (state)

ndash Environment map

ndash Sensormeasurement model

ndash Motion model

bull Keep track of the most likely current state as the robot moves and senses in the environment

Monte Carlo Localization

bull Monte Carlo Localization

ndash Initial set of random hypotheses about possible poses (ie states particles)

ndash As the robot moves and senses a Darwinian survival-of-the-fittest process tends to multiply the most likely hypotheses and tends to kill off the least likely

ndash Evolution of a cloud of hypotheses where the center ie average is the most likely robot pose

MCL Algorithm

Motion Model

bull ut ndash motion control command at time t - 1 to affect time t

bull xt-1 ndash pose at time t - 1

bull xt ndash pose at time t

bull Model p(xt | ut xt-1) ndash the probability of the pose being xt given prior motion control command ut and prior pose xt-1

Example 2D Robot with Rotation

bull Simple resting pose (state) (x y θ)T

bull Control translational and rotational velocities (v ω)T

bull Error parameters α1 α2 α3 α4 α5 α6

Motion Model Based on Velocity Command

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Turning radius circle position and radius

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 3: Robotics: From Basic Terminology to Monte Carlo Localization

Localization

bull Given

ndash Initial pose (state)

ndash Environment map

ndash Sensormeasurement model

ndash Motion model

bull Keep track of the most likely current state as the robot moves and senses in the environment

Monte Carlo Localization

bull Monte Carlo Localization

ndash Initial set of random hypotheses about possible poses (ie states particles)

ndash As the robot moves and senses a Darwinian survival-of-the-fittest process tends to multiply the most likely hypotheses and tends to kill off the least likely

ndash Evolution of a cloud of hypotheses where the center ie average is the most likely robot pose

MCL Algorithm

Motion Model

bull ut ndash motion control command at time t - 1 to affect time t

bull xt-1 ndash pose at time t - 1

bull xt ndash pose at time t

bull Model p(xt | ut xt-1) ndash the probability of the pose being xt given prior motion control command ut and prior pose xt-1

Example 2D Robot with Rotation

bull Simple resting pose (state) (x y θ)T

bull Control translational and rotational velocities (v ω)T

bull Error parameters α1 α2 α3 α4 α5 α6

Motion Model Based on Velocity Command

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Turning radius circle position and radius

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 4: Robotics: From Basic Terminology to Monte Carlo Localization

Monte Carlo Localization

bull Monte Carlo Localization

ndash Initial set of random hypotheses about possible poses (ie states particles)

ndash As the robot moves and senses a Darwinian survival-of-the-fittest process tends to multiply the most likely hypotheses and tends to kill off the least likely

ndash Evolution of a cloud of hypotheses where the center ie average is the most likely robot pose

MCL Algorithm

Motion Model

bull ut ndash motion control command at time t - 1 to affect time t

bull xt-1 ndash pose at time t - 1

bull xt ndash pose at time t

bull Model p(xt | ut xt-1) ndash the probability of the pose being xt given prior motion control command ut and prior pose xt-1

Example 2D Robot with Rotation

bull Simple resting pose (state) (x y θ)T

bull Control translational and rotational velocities (v ω)T

bull Error parameters α1 α2 α3 α4 α5 α6

Motion Model Based on Velocity Command

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Turning radius circle position and radius

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 5: Robotics: From Basic Terminology to Monte Carlo Localization

MCL Algorithm

Motion Model

bull ut ndash motion control command at time t - 1 to affect time t

bull xt-1 ndash pose at time t - 1

bull xt ndash pose at time t

bull Model p(xt | ut xt-1) ndash the probability of the pose being xt given prior motion control command ut and prior pose xt-1

Example 2D Robot with Rotation

bull Simple resting pose (state) (x y θ)T

bull Control translational and rotational velocities (v ω)T

bull Error parameters α1 α2 α3 α4 α5 α6

Motion Model Based on Velocity Command

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Turning radius circle position and radius

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 6: Robotics: From Basic Terminology to Monte Carlo Localization

Motion Model

bull ut ndash motion control command at time t - 1 to affect time t

bull xt-1 ndash pose at time t - 1

bull xt ndash pose at time t

bull Model p(xt | ut xt-1) ndash the probability of the pose being xt given prior motion control command ut and prior pose xt-1

Example 2D Robot with Rotation

bull Simple resting pose (state) (x y θ)T

bull Control translational and rotational velocities (v ω)T

bull Error parameters α1 α2 α3 α4 α5 α6

Motion Model Based on Velocity Command

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Turning radius circle position and radius

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 7: Robotics: From Basic Terminology to Monte Carlo Localization

Example 2D Robot with Rotation

bull Simple resting pose (state) (x y θ)T

bull Control translational and rotational velocities (v ω)T

bull Error parameters α1 α2 α3 α4 α5 α6

Motion Model Based on Velocity Command

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Turning radius circle position and radius

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 8: Robotics: From Basic Terminology to Monte Carlo Localization

Motion Model Based on Velocity Command

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Turning radius circle position and radius

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 9: Robotics: From Basic Terminology to Monte Carlo Localization

Motion Model Based on Velocity Command

Turning radius circle position and radius

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 10: Robotics: From Basic Terminology to Monte Carlo Localization

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 11: Robotics: From Basic Terminology to Monte Carlo Localization

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 12: Robotics: From Basic Terminology to Monte Carlo Localization

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

Translational and rotational velocity final rotation (error)

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 13: Robotics: From Basic Terminology to Monte Carlo Localization

Motion Model Based on Velocity Command

Change of heading

xt-1 =(x y θ)T

xt =(xrsquo yrsquo θrsquo)T

Turning radius circle position and radius

Probabilities of discrepencies between commanded and computed velocities amp rotation given error parameters times velocity magnitudes

But what is

Translational and rotational velocity final rotation (error)

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 14: Robotics: From Basic Terminology to Monte Carlo Localization

Common Probability Distributions

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 15: Robotics: From Basic Terminology to Monte Carlo Localization

Computing Prob

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 16: Robotics: From Basic Terminology to Monte Carlo Localization

Simulating Particles with Error Sampling

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 17: Robotics: From Basic Terminology to Monte Carlo Localization

Sampling with Normal and Triangular Distributions

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 18: Robotics: From Basic Terminology to Monte Carlo Localization

In General

bullCollect a lot of motion data and use that data to create your motion model

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 19: Robotics: From Basic Terminology to Monte Carlo Localization

Measurement Model

bull zt ndash sensor inputs at time t

bull xt ndash pose (state) at time t

bull m ndash map of the environment

bull p(zt | xt m) ndash probability of measuring zt given pose xt and map m

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 20: Robotics: From Basic Terminology to Monte Carlo Localization

Distributions for Modeling Different Kinds of Error Expectations

Expected variation around true object range value

Unexpected closer objects

Object missed by range finder and max range returned

General unexplained sensor noise

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 21: Robotics: From Basic Terminology to Monte Carlo Localization

Added togetherhellip

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 22: Robotics: From Basic Terminology to Monte Carlo Localization

hellip To Make a Weighted Average hellip

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 23: Robotics: From Basic Terminology to Monte Carlo Localization

hellip But How Should We Set the Weights

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 24: Robotics: From Basic Terminology to Monte Carlo Localization

Maximum Likelihood Estimation

bull Iteratively tune parameters until the data distribution collected for known distance measurements achieves maximum likelihood

bull (Or manually tune for good match to data)

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 25: Robotics: From Basic Terminology to Monte Carlo Localization

Compute the relative likelihood of each measurement interpretation for each measurement

Think of these as normalized weights for the interpretation of each measurement

Set the new weights for the weighted sum according to their average relative likelihood

Also compute the most likely parameters for our distributions

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 26: Robotics: From Basic Terminology to Monte Carlo Localization

In General

bullCollect a lot of measurement data and use that data to create your measurement model

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 27: Robotics: From Basic Terminology to Monte Carlo Localization

Project Goal Monte Carlo Localization for the Kidnapped Robot Problem

bull Goals ndash Acquire a map of the environment eg FASTSLAM or

other appropriate techniques

ndash Implement Monte Carlo localization

ndash Solve the Kidnapped Robot Problem bull An autonomous robot is transported to an unknown state

and must localize

ndash Optional bull Designate a robot home state

bull Have the robot return home after being kidnapped and successfully localizing

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 28: Robotics: From Basic Terminology to Monte Carlo Localization

Project Tips

bull Set simple goals Follow the KISS Principle (You can always set more ambitious goals if you achieve these early) Example ndash 1D state space

bull Have a fixed robot that can rotate range finder(s) a camera or other localizing sensor to determine state θ

bull When you start the system let initial state θ0 be the ldquohome staterdquo bull Have the system rotate and sense to build a mapping from sensor inputs to

probable locations bull After it has terminated mapping put it in a new mode seeking to return home

when it does not appear to be home bull ldquoKidnaprdquo it by rotating the robot and demonstrate that it can relocalize and

return home

bull Divide labor project lead documentation version control sensor model motor model etc

bull Plan team meeting times in advance Budget for 18 total hours for each over 2 weeks beyond class Log hours

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 29: Robotics: From Basic Terminology to Monte Carlo Localization

Project Platform Lego Mindstorms

bull Prior generations of students focused on Lego Mindstorms line following and line graph navigation ndash httpcsgettysburgedu~tnellercs37112faindexhtm

l (see associated homework) ndash Most programming was in a subset of Java for Lego

robotics called LeJOS (httpwwwlejosorg)

bull Possible Lego project ndash Create a pretend 1D ldquohallwayrdquo with a straight line of

electrical tape on posterboard and have various intersections that branch off at right angles

ndash Put the robot somewhere along this ldquohallwayrdquo initially ndash Have it map sensed intersections moving forward and

backward along the hallway ndash After kidnapping try to have it robustly localize and

return home on different hallways without needing to always move to the hallway end

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 30: Robotics: From Basic Terminology to Monte Carlo Localization

Project Platform Neato Vacuum

bull Past students have made use of a Neato Robot with an onboard Raspberry Pi communicating via Bluetooth to a controlling computer with ROS (httpswwwrosorg) ndash Past documentation

httpcsgettysburgedu~tnellercs37117sphw9html

ndash httpcsgettysburgedu~tnellercs371neato

bull Possible Neato projects 1 Improve upon past student kidnapped robot

problem work adding a ldquoreturn homerdquo functionality

2 Create a new project where the robot is restricted to rotational movement only (as on the previous project tips slide)

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find

Page 31: Robotics: From Basic Terminology to Monte Carlo Localization

Project Platform Anki Cozmo

bull Programming tools ndash Cozmo SDK httpswwwankicomen-

uscozmoSDK ndash cozmo-tools

httpsgithubcomtouretzkydscozmo-tools

bull Possible projects 1 Create a new project where the robot is

restricted to rotational movement only and uses visual camera sensing to localize

2 Find and build upon prior Cozmo 2D localization and mapping work you might find