본문 바로가기

작업 일기

Hector SLAM

 

- 개발 환경 : Raspberry Pi 4B (Ubuntu 18.04 / ROS melodic)

- 준비물 : ydlidar X4

- 참조 : https://www.youtube.com/watch?v=Qrtz0a7HaQ4 

            https://github.com/tu-darmstadt-ros-pkg/hector_slam/tree/melodic-devel

            https://archit0994.wixsite.com/architshah/post/manage-your-blog-from-your-live-site

 

 

lidar

$ cd ~/catkin_ws/src
$ git clone https://github.com/EAIBOT/ydlidar.git
$ cd ..
$ catkin_make

$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

$ cd ~/catkin_ws/src/ydlidar/startup
$ sudo chmod +x initenv.sh
$ sudo sh initenv.sh
$ cd
$ ls /dev/ttyUSB*
lidar의 USB 연결 정보 확인 후 
catkin_ws/src/ydlidar/launch에서 lidar.launch에서
/dev/ttyUSB*수정

 

 

Hector slam

$ cd ~/catkin_ws/src
$ git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git
$ cd ..
$ catkin_make

 

cmake error 발생 시

더보기

https://github.com/tu-darmstadt-ros-pkg/hector_slam/tree/melodic-devel 에서 파일 다운로드 후,

~/catkin_ws/src 폴더로 이동

 

CMake Error at /usr/share/cmake-3.10/Modules/FindQt4.cmake:1320 (message):
  Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x 에러 발생 시,

$ sudo apt install qt4-default

 

No module named 'em' 에러 발생 시,

$ pip3 install empy

 

 

라이다 rivz 실행 및 frame_ID 확인하기

$ cd ~/catkin_ws
$ source ./devel/setup.bash
$ roslaunch ydlidar lidar_view.launch
$ rostopic list
$ rostopic echo /scan

 

파일 수정

$ cd ~/catkin_ws/src/ydlidar/launch
// lidar.launch

  </launch> 윗라인 삭제
  


$ cd ~/catkin_ws/src/hector_slam/hector_mapping/launch
// edit mapping_default.launch

  <!--<arg name="base_frame" default="base_footprint"/>-->
  <arg name="base_frame" default="base_link"/>
  
  <!--<arg name="odom_frame" default="nav"/>-->
  <arg name="odom_frame" default="base_link"/>
  
  <!--<node pkg="tf" type="static_transform_publisher" name="map_nav_broadcaster" args="0 0 0 0 0 0 map nav 100"/>-->
  <node pkg="tf" type="static_transform_publisher" name="base_to_laser_broadcaster" args="0 0 0 0 0 0 base_link laser_frame 100" />


  
$ cd ~/catkin_ws/src/hector_slam/hector_slam_launch/launch
//edit tutorial.launch

  <!--<param name="/use_sim_time" value="true"/>-->
  <param name="/use_sim_time" value="false"/>

 

라이다 및 Hector_slam 실행

$ roslaunch ydlidar lidar.launch

  다른 터미널 열고

$ roslaunch hector_slam_launch tutorial.launch

 

 

 

map save

$ sudo apt-get install ros-melodic-map-server

$ mkdir ~/catkin_ws/maps

$ cd ~/catkin_ws/maps
$ rosrun map_server map_saver -f my map

 

map load

$ cd ~/catkin_ws/maps
$ roscore
$ rosrun map_server map_server my_map.yaml