# 8.4.2 Сбор и запись данных сканирования

Используете ли вы лазерный сканер или встроенную камеру, стратегия сбора данных сканирования одинакова. Сначала мы запускаем любые файлы запуска, необходимые для управления мобильной базой нашего робота. Затем мы запускаем драйверы для нашего лазерного сканера или искусственного лазера вместе с телеобъективом, чтобы мы могли удаленно управлять роботом. Наконец, мы начинаем записывать данные в файл ROS bag и продолжаем водить робота вокруг целевой области.&#x20;

Если у вас есть TurtleBot, вы можете просто следовать официальному У[чебному пособию по созданию карт TurtleBot](https://wiki.ros.org/turtlebot_navigation/Tutorials/Build%20a%20map%20with%20SLAM). Однако, если вам нужно больше подробностей, вы также можете продолжить изучать информацию, изложенную здесь.

&#x20;Вероятно, это хорошая идея, чтобы начать свою среду ROS с чистого листа. Так что выйдете из всех запущенных файлов запуска и даже из roscore. Затем перезапустите roscore и продолжайте следующим образом. Эти инструкции должны работать с оригинальным TurtleBot с базой iRobot Create.&#x20;

Войдите в ноутбук TurtleBot и запустите:

`$ roslaunch rbx1_bringup turtlebot_minimal_create.launch`

Замените приведенную выше команду соответствующим файлом запуска для вашего собственного робота, если он у вас есть.

&#x20;Затем войдите в TurtleBot, используя другой терминал, и откройте искусственный лазерный сканер, используя файлы запуска freenect или openni2, как описано выше. Если у вас есть настоящий лазерный сканер, вы должны сейчас запустить его файл запуска .&#x20;

Затем запустите файл gmapping\_demo.launch. Вы можете запустить этот файл на своей рабочей станции или ноутбуке робота:

`$ roslaunch rbx1_nav gmapping_demo.launch`

Затем вызовите RViz с подключенным файлом конфигурации gmapping:

`$ rosrun rviz rviz -d rospack find rbx1_nav/gmapping.rviz`

Затем запустите  teleop для клавиатуры или джойстика в зависимости от оборудования:

`$ roslaunch rbx1_nav keyboard_teleop.launch`

или

`$ roslaunch rbx1_nav joystick_teleop.launch`

Джойстик ( если у вас есть беспроводной игровой контроллер) можно подключить либо к ноутбуку робота, либо к вашему рабочему столу. Но помните, что файл joystick\_teleop.launch должен быть запущен на том же компьютере.

&#x20;Проверьте вашу связь с роботом, пытаясь переместить его с помощью клавиатуры или джойстика. По мере движения робота точки сканирования в RViz должны отражать изменяющуюся обстановку рядом с роботом. (Дважды проверьте, установлен ли Fixed Frame в  odom в разделе «Глобальные параметры».)&#x20;

Последний шаг - начать запись данных в bag файл . Вы можете создать файл где угодно, но для этого есть bag\_files в  rbx1\_nav, если вы хотите его использовать:

`$ roscd rbx1_nav/bag_files`

Теперь начните процесс записи:

`$ rosbag record -O my_scan_data /scan /tf`

my\_scan\_data может быть любым именем файла, которое вам нравится. Единственные данные, которые нам нужно записать, - это данные лазерного сканирования и преобразования tf. (Дерево преобразования tf включает в себя преобразование из фрейма / odom в фрейм / base\_link или / base\_footprint, который дает нам необходимые данные одометрии.)

&#x20;Теперь вы готовы вести робота вокруг области, которую вы хотите просканировать. Обязательно двигайте робота медленно, особенно при вращении. Держитесь относительно близко к стенам и мебели, чтобы сканер всегда находился в пределах досягаемости. Наконец, проведите замкнутый контур, вернувшись в начальную точку , чтобы обеспечить качественное объединение между данными начала и конца сканирования.&#x20;

Когда вы закончите сбор и запись данных, введите Ctrl-C в окне терминала rosbag.
