Starting from:

$30

Lab 4: Grid Localization using Bayes Filter

CSE 468/568: Robotics Algorithms 1
CSE 468/568 Lab 4: Grid Localization using Bayes
Filter
The objective of this assignment is to make you familiar with Grid Localization which
is a variant of discrete Bayes Localization. In addition you will learn how to create your
own messages in ROS and how to use them. Also you will get your hands on working
with rosbag files.
Grid Localization
Grid Localization is a variant of discrete Bayes Localization. In this method, the map
is an occupancy grid. At each time step, the algorithm finds out the probabilities of
the robot presence at every grid cell. The grid cells with maximum probabilities at each
step, characterize the robot’s trajectory. Grid Localization runs in two iterative steps —
Movement and Observation.
After each movement, you should compute if that movement can move the robot between
grid cells. For each observation, you should find the most probable cells where that
measurement could have occurred.
ROSbag files
Rosbag is used for dumping the messages published on certain topics to files. For this
assignment, we have provided a bag file for you which includes the movements and
observation information from one scenario. You need to read the bag file to simulate
your localization algorithm running on a robot executing this scenario. For this purpose,
read through the Rosbag tutorials. After that go through the following steps.
• Create a ROS package named lab4 and create two messages in the package
Motion.msg
int32 timeTag
geometry msgs/Quaterninon rotation1
float64 translation
geometry msgs/Quaternion rotation2
and Observation.msg
int32 timeTag
int32 tagNum
float64 range
geometry msgs/Quaternion bearing
CSE 468/568: Robotics Algorithms 2
• Use rosbag info command to find the required information for the given bag file.
This tutorial may be helpful
• Using the tutorials and acquired information, write code to read the bag file
Motion Model, Observation Model and Map
For localization, you need a map. There are six landmarks in the robot map, and they
are at the following locations:
• Tag 0: x=1.25m, y=5.25m
• Tag 1: x=1.25m, y=3.25m
• Tag 2: x=1.25m, y=1.25m
• Tag 3: x=4.25m, y=1.25m
• Tag 4: x=4.25m, y=3.25m
• Tag 5: x=4.25m, y=5.25m
The robot moves in the area within these landmarks, observing some at any given time.
You should make a grid for 7m*7m coverage. Your cell size should be 20cm*20cm. You
also should assume a dimension for the robot’s heading. So your grid is 3 dimensional.
The third dimension covers the robot’s heading. You can discretize that with your desired
value (10 degree, 20 degree or more). The initial pose of your robot within the grid is (12,
28) and the first heading is 200.52 degree. The robot’s first pose in the 3rd dimension
depends on your selected discretization size. For example, if your discretization size is
90 degrees, the cell number in 3rd dimension will be 200.52/90+1 = 3. So the robot’s
initial pose is (12 , 28, 3). (Notice that I have assumed there is no cell with index zero).
As you may have noticed, the motion model of this robot is (rotation, translation, rotation) and the observation model is (range, bearing). In Grid Localization, for the purpose
of moving robot between cells, the motion and observation noise should be adjusted. You
need a translation and rotation noise for movement and range and bearing noise for your
observation. A good selection for this purpose is half the cell size. So for the example
of 20*20 cells and 90 degree discretization, range and translation noises are 10cm, and
bearing and rotation noises are 45 degrees.
CSE 468/568: Robotics Algorithms 3
Submission Instructions
You will submit lab4.tar.gz, a compressed archive file containing the lab4 folder. The
folder should contain a launch file which running it should read the bag
file, run the grid localization algorithm and draw the final trajectory as a marker line
in Rviz. The folder should compile if I drop it into my catkin workspace and call
catkin make. Please take care to follow the instructions carefully so we can script our
tests, and not have to dig into each submission. Problems in running will result in loss
of points. Please use the submit script for submission using the syntax
$ submit cse468 lab4.tar.gz
or
$ submit cse568 lab4.tar.gz
depending on whether you are taking cse468 or cse568 respectively.
Details on the usage of the submit script can be found here.

More products