Hector Mapping создает исходную карту, но не обновляет ее - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь создать карту с отображением гектора и просто лидаром (RPLiDar A3M1). Лазерное сканирование topi c правильно создает облако точек из моего офиса. Изображение из RVIZ

rosrun tf viewframes

приводит к this .

Мой файл запуска сейчас выглядит так:

<launch>
  <!--<include file="$(find rplidar_ros)/launch/rplidar_a3.launch" />-->
  <node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen">
      <param name="serial_port"         type="string" value="/dev/ttyUSB0"/>
      <param name="serial_baudrate"     type="int"    value="256000"/><!--A3 -->
      <param name="frame_id"            type="string" value="laser"/>
      <param name="inverted"            type="bool"   value="false"/>
      <param name="angle_compensate"    type="bool"   value="true"/>
      <param name="scan_mode"           type="string" value="Sensitivity"/>
  </node>
  <node pkg="tf" type="static_transform_publisher" name="map_to_odom" args="0.0 0.0 0.0 0 0 0.0 /map /odom 100" />
  <node pkg="tf" type="static_transform_publisher" name="odom_to_basefootprint" args="0.0 0.0 0.0 0 0 0.0 /odom /base_footprint 100" />
  <node pkg="tf" type="static_transform_publisher" name="base_footprint_to_base_link" args="0.0 0.0 0.0 0 0 0.0 /base_footprint /base_link 100" />
  <node pkg="tf" type="static_transform_publisher" name="base_link_to_laser" args="0.2245 0.0 0.2 0.0 0.0 0.0 /base_link /laser 100" />
  <include file="$(find hector_mapping)/launch/mapping_default.launch" />
  <node name="rviz" pkg="rviz" type="rviz" args="-d $(find rplidar_ros)/rviz/rplidar.rviz" />
  <include file="$(find hector_geotiff)/launch/geotiff_mapper.launch" />
</launch>

После начала следует ERROR печатается пару десятков раз

Requested time 1585549080.917921589 but the latest data is at time 1585549080.825638829, when looking up transform from frame [base_footprint] to frame [nav]

При выполнении следующего INFO печатается повторно

lookupTransform base_footprint to laser timed out. Could not transform laser scan into base_frame.

После закрытия WARNING вызывается

Warning: class_loader.ClassLoader: SEVERE WARNING!!! Attempting to unload library while objects created by this loader exist in the heap! You should delete your objects before attempting to unload the library or destroying the ClassLoader. The library will NOT be unloaded.
         at line 122 in /tmp/binarydeb/ros-melodic-class-loader-0.4.1/src/class_loader.cpp

Я попытался изменить nav на odom, в hector_mapping.launch, который удаляет все, кроме одного экземпляра сообщения ERROR, но оставшиеся предупреждения и информация все еще остаются.

Что я пытаюсь сделать get - это карта из моего лидара, которая корректно генерируется при запуске (уже выполнена), а затем поддерживается или добавляется при перемещении лидара через офис (в настоящее время не работает).

Edit1: я думаю, что это неявно показано, но я использую ROS Melodi c и Ubuntu 18.04. Lidar подключен к моему ноутбуку, и никакие другие устройства или машины не используются.

Edit2: Я получил немного дальше Я, к сожалению, сейчас не уверен, что это было за изменение. Я добавил use_sim_time = true в файл запуска и изменил все значения tf stati c на «0 0 0 ..». Отмена их не меняет этого, однако. Так что кажется, что несколько перезагрузок что-то решили. Но, как видно из новой картинки , отображение не совсем правильное. Офис не показан с правильными углами, так как комната внизу отображается несколько раз под разными углами, а верхний левый должен быть параллелен правому.

Ссылки: https://github.com/robopeak/rplidar_ros

...