The code for this section is located in navigation_bot_11 part of an archive. Note that archive includes some additional folders, like maps and worlds, that are used by all projects and therefore are located outside of them. Note also that we use ROS2 Galactic now.
As I have (many times) mentioned, the code in a previous section is not optimal. It has many problems, and the most important one is localization: robot uses odometry that it gets from differential drive, and the error accumulates.
ROS2 has many tools to make odometry more accurate; generally, what we need is to "attach" our coordinates to the world. Yes, it is not going 100% precise, but at least, the error will not accumulate with time.
In this project, we are going to use ROS2 module called AMCL.