Mobile Robot

Localization

The localization of robot in the map is required to use the naviation stack in proper way. It can be made by publishing a pose on the topic

Mapping

For creating a map, we use the slam_toolbox.

Creating map

  1. Stop all the running nodes with

sudo systemctl stop ibt_ros2_bringup.service
  1. Run the mapping bringup node, which enable only the mobile base, without navigation:

sudo systemctl start ibt_ros2_mapping.service

Warning

Do not close this service until saving the map.

  1. After starting the mapping, in the RViz or Foxglove, the initial stripes of the maps can be found

  2. Navigate the robot around the environment with the joystick, in order to further build the map.

Saving map

To save the map, use the following command

ros2 service call /slam_toolbox/save_map slam_toolbox/srv/SaveMap "name: data: '~/ibt'"
In the home dir will be appears
  1. ibt.pgm

  2. ibt.yaml

Warning

The default name of the map is ibt. If you want to save the map with a different name, change the name field in the launch file ibt_ros2_bringup/launch/neo.launch.py or simply do a replacement with the command above.

Restarting the navigation

After saving the map, you can restart the navigation stack with the following command:

  1. Stop the mapping service:

sudo systemctl stop ibt_ros2_mapping.service
  1. Start the navigation service:

sudo systemctl start ibt_ros2_bringup.service

It will be loaded the saved map with filename ibt.yaml and will start the navigation stack.

Battery state

The information about the battery state can be obtained from

Publisher

Docking

Work in progress

Safety areas

You can select the safety areas in accordance with the environment, where the robot will be allowed to move.

Services server