human
I am working on the file ".ipynb_checkpoints/Rover_Project_Test_Notebook-checkpoint.ipynb".
The first task is:
Read in saved data and ground truth map of the world
The next cell is all setup to read data saved from rover sensors into a pandas dataframe.  Here we'll also read in a "ground truth" map of the world, where white pixels (pixel value = 1) represent navigable terrain.  
After that, we'll define a class to store telemetry data and pathnames to images.  When the class (data = SensorData()) is instantiated, we'll have a global variable called data that can be referenced for telemetry and to map data within the process_image() function in the following cell.
Can you write Python code for it?
 ... Give me a the Python code you requested?
assistant
#Here is the Python code you requested.

import pandas as pd

# Change the path below to your data directory
# If you are in a locale (e.g., Europe) that uses ',' as the decimal separator
# change the '.' to ','

# Read in csv log file as dataframe
df = pd.read_csv('../test_dataset_2/robot_log.csv', delimiter=';', decimal='.')
csv_img_list = df["Path"].tolist()  # Create list of image pathnames

# Read in ground truth map and create a 3-channel image with it
ground_truth = mpimg.imread('../calibration_images/map_bw.png')
ground_truth_3d = np.dstack(
    (ground_truth*0,
     ground_truth*255,
     ground_truth*0)
).astype(np.float)

class SensorData():
    """
    Create a class to be a container of rover sensor data from sim.

    Reads in saved data from csv sensor log file generated by sim which
    includes saved locations of front camera snapshots and corresponding
    rover position and yaw values in world coordinate frame

    """

    def __init__(self):
        """
        Initialize a SensorData instance unique to a single simulation run.

        worldmap instance variable is instantiated with a size of 200 square
        grids corresponding to a 200 square meters space which is same size as
        the 200 square pixels ground_truth variable allowing full range
        of output position values in x and y from the sim

        """
        self.images = csv_img_list
        self.xpos = df["X_Position"].values
        self.ypos = df["Y_Position"].values
        self.yaw = df["Yaw"].values
        # running index set to -1 as hack because moviepy
        # (below) seems to run one extra iteration
        self.count = -1
        self.worldmap = np.zeros((200, 200, 3)).astype(np.float)
        self.ground_truth = ground_truth_3d  # Ground truth worldmap

# Instantiate a SensorData().. this will be a global variable/object
# that can be referenced in the process_image() function below
data = SensorData()