// it's for Latex

pages

[SLAM] #11. How to 2D LRF SLAM with erle-copter

erle-copter를 원격조종할 수 있는 환경을 획득했다.
이제 이를 이용해 LRF를 이용한 간단한 2D SLAM을 해 볼 것이다.


SLAM 작업환경 [Labtop]
OS : Ubuntu 16.06 LTS
ROS version : Kinetic
Compiler : catkin
Depth Camera : Intel realsene D435

Simulation 작업환경 [Desktop]
OS: Ubuntu 14.04 LTS
ROS version : Indigo
Compiler : catkin
Depth Camera : Kinect Sensor


먼저 hector_slam package를 설치해야 한다.

먼저 다음 내용은 아래 사이트를 참고하였다.
http://docs.erlerobotics.com/simulation/vehicles/erle_rover/tutorial_4

위 사이트에서는 erle-rover의 hector_slam 방법에 대하여 이야기 하지만 erle-copter의 sonar-sensor 구성도 erle-rover와 크게 다르지 않기 때문에 내용을 그대로 따라하면 된다.

1. Download hector_slam package

$ cd ~/simulation/ros_catkin_ws/src
$ git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam
$ cd ~/simulation/ros_catkin_ws
$ source devel/setup.bash
$ catkin_make --pkg hector_mapping
 

2. Edit the file 


1번에서 Download한 hector_slam package에 들어가면 다음과 같은 경로를 갖는 파일이 존재한다.
hector_mapping/launch/mapping_default.launch
 
위 launch 파일이 우리가 SLAM을 이용할 때 사용하게 될 launch 파일이다.
위 파일 내부 코드를 다음과 같이 수정해야 한다. 

<arg name="base_frame" default="base_footprint"/>
<arg name="odom_frame" default="nav"/>
 
위 내용을 다음과 같이 수정한다.
 
<arg name="base_frame" default="sonar2_link"/>
<arg name="odom_frame" default="sonar2_link"/>
 
slam algorithm에서는 sonar sensor의 data를 이용해서 slam을 진행하기 때문에
base_frame과 odom_frame을 위와 같이 sonar2_link로 바꿔주어야 한다.
 



이제 [SLAM] #07. gazebo erle-copter teleoperation (원격조종) / solving yaw rotation problem 을 참고하여 erle-copter gazebo 원격조종 환경을 구성해준다.
이후에 slam을 실행하고 rviz를 실행하여 실제로 slam이 동작하는지 확인할 것이다.

1. Launch ArduCopter

(Ref. http://docs.erlerobotics.com/simulation/vehicles/erle_copter/tutorial_1)
 
$ source ~/simulation/ros_catkin_ws/devel/setup.bash
$ cd ~/simulation/ardupilot/ArduCopter
$ ../Tools/autotest/sim_vehicle.sh -j 4 -f Gazebo 

2. Launch Spawn

(Ref. http://docs.erlerobotics.com/simulation/vehicles/erle_copter/tutorial_1)
 
$ source ~/simulation/ros_catkin_ws/devel/setup.bash
$ roslaunch ardupilot_sitl_gazebo_plugin erlecopter_spawn.launch 
 

3. Launch mavlink_bridge.launch

$ source ~/simulation/ros_catkin_ws/devel/setup.bash
$ roslaunch mavros mavlink_bridge.launch 
 

4. Run Teleoperation

$ source ~/simulation/ros_catkin_ws/devel/setup.bash
$ rosrun ros_erle_teleoperation ros_erle_teleoperation
 

5. Run SLAM

$ source ~/simulation/ros_catkin_ws/devel/setup.bash
$ roslaunch hector_mapping mapping_default.launch 

6. Run rviz

$ rosrun rviz rviz

이후에 rviz에서 fixed frame을 sonar2_link로 맞추어주고 add를 클릭하여 map을 추가해주면 slam이 동작하는 것을 확인할 수 있다.









 

댓글 없음:

댓글 쓰기