The goal of this lab is for you to develop a ROS node that estimates robot odometry on the Duckiebot. This odometry will not be exact because the robot will not do exactly what we tell it to do, but let’s try to get close. In this lab, you should:
Submit a PDF to Blackboard with the following information.
Answers to the questions:
For ALL videos: screen recordings do not need to be synced with external recordings, but PLEASE cut the video to the relevant portion. Outside of extenuating circumstances, each video should be approximately one minute or less in length.
Post in #demonstrations on slack and also turn in:
There are two ways to complete this lab, depending on if you have a DB18 or a DB19:
DB18: Assume that the vehicle is performing the commands exactly as ordered and integrate the wheel velocities provided by the topic
wheels_driver_node/wheels_cmd. This approach can also be done on the DB19, it is your choice. You will need to perform some experiments to determine the correspondence between the numbers given here and the actual speed of the wheels.
DB19: Use the wheel encoder data provided by left_wheel_encoder_node/tick and right_wheel_encoder_node/tick. You will need to find the correspondence of ticks to each wheel movement in real-life. You will then need to record each tick as they come in and, likely using a timer, calculate odometry using both.
Find the correspondence between the data from the Duckiebot (using either method) and real-world measurements. Drive your robot around and record how the values change. You may find that the size of your wheels and the baseline distance between the wheels is important. You can use keyboard control or directly publish to the command topic to make your vehicle drive at a constant speed.
When you complete your node, test it thoroughly. You may find that the robot has a consistent bias in one direction or another. You may need to add a scaling factor to one or more components of the input or output. You are free to do this, as long as the same scaling factors are present in all trials.