아래 글을 참고하였습니다.
[Gmapping] RPLidar를 이용한 Gmapping
$ sudo apt install ros-melodic-slam-gmapping ros-melodic-gmapping
앞 장부터 그대로 따라했으면 이미 설치되어있을 것입니다.
remote 환경이 제대로 설정되어야합니다. 3장 2.2절을 참고하세요. remote환경이 되지 않으면 아래 명령어를 모두 Jetson에서 실행하세요.
# 터미널 #1, rpliar, imu, arduino 동작
$ roslaunch jessicar2_slam jessicar2p_gmapping.launch
#terminal #2, 지도를 그리기 위해 운전을 해야합니다.
roslaunch jessicar2_teleop jessicar2_teleop_key.launch
# or
roslaunch jessicar2_teleop jessicar2_teleop_joy.launch
#terminal #3, PC에서 실행하는게 좋습니다.
roslaunch jessicar2_slam jessicar2_gmapping_rviz.launch
map을 저장하기 위해서는 아래 명령을 사용해주세요
$ rosrun map_server map_saver -f <name_of_map>
zeta@changwhan-asus:~/gcamp_ws/src/jessicar2$ rosrun map_server map_saver -f myroom
[ INFO] [1670653853.301568507]: Waiting for the map
[ INFO] [1670653866.798017584]: Received a 1984 X 1984 map @ 0.050 m/pix
[ INFO] [1670653866.798047083]: Writing map occupancy data to myroom.pgm
[ INFO] [1670653866.874186108]: Writing map occupancy data to myroom.yaml
[ INFO] [1670653866.874261897]: Done
jessicar2Mapping.launch만 실행하면 bringup(아두이노 + imu + RPliar)와 ekf Pose까지 모두 동작시킵니다.
jetson@jp4512G:~/catkin_ws$ roslaunch jessicar2_slam jessicar2_gmapping.launch
... logging to /home/jetson/.ros/log/26c96836-93d0-11ed-b9aa-f2c0a8c83755/roslaunch-jp4512G-10535.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server <http://192.168.55.1:40981/>
SUMMARY
========
PARAMETERS
* /imu_node/frame_id: imu_link
* /odom_pub/initialPoseRecieved: True
* /pwmConstants: [75, 42, 50, 80]
* /robot_pose_ekf/base_footprint_frame: base_footprint
* /robot_pose_ekf/debug: False
* /robot_pose_ekf/freq: 30.0
* /robot_pose_ekf/gps_used: False
* /robot_pose_ekf/imu_used: False
* /robot_pose_ekf/odom_used: True
* /robot_pose_ekf/output_frame: odom
* /robot_pose_ekf/self_diagnose: False
* /robot_pose_ekf/sensor_timeout: 1.0
* /robot_pose_ekf/vo_used: False
* /rosdistro: melodic
* /rosversion: 1.14.13
* /rplidarNode/angle_compensate: True
* /rplidarNode/frame_id: laser_link
* /rplidarNode/inverted: False
* /rplidarNode/serial_baudrate: 115200
* /rplidarNode/serial_port: /dev/rplidar
* /serial_node/baud: 115200
* /serial_node/port: /dev/arduinoNano
* /slam_gmapping/angularUpdate: 0.5
* /slam_gmapping/astep: 0.05
* /slam_gmapping/delta: 0.05
* /slam_gmapping/iterations: 5
* /slam_gmapping/kernelSize: 1
* /slam_gmapping/lasamplerange: 0.005
* /slam_gmapping/lasamplestep: 0.005
* /slam_gmapping/linearUpdate: 1.0
* /slam_gmapping/llsamplerange: 0.01
* /slam_gmapping/llsamplestep: 0.01
* /slam_gmapping/lsigma: 0.075
* /slam_gmapping/lskip: 0
* /slam_gmapping/lstep: 0.05
* /slam_gmapping/map_update_interval: 5.0
* /slam_gmapping/maxUrange: 16.0
* /slam_gmapping/ogain: 3.0
* /slam_gmapping/particles: 30
* /slam_gmapping/resampleThreshold: 0.5
* /slam_gmapping/sigma: 0.05
* /slam_gmapping/srr: 0.1
* /slam_gmapping/srt: 0.2
* /slam_gmapping/str: 0.1
* /slam_gmapping/stt: 0.2
* /slam_gmapping/temporalUpdate: 3.0
* /slam_gmapping/xmax: 50.0
* /slam_gmapping/xmin: -50.0
* /slam_gmapping/ymax: 50.0
* /slam_gmapping/ymin: -50.0
NODES
/
basefootprint_to_baselink (tf/static_transform_publisher)
baselink_to_imulink (tf/static_transform_publisher)
baselink_to_laserlink (tf/static_transform_publisher)
imu_node (mpu_6050_driver/imu_node.py)
odom_pub (jessicar2_localization/odom_pub)
robot_pose_ekf (robot_pose_ekf/robot_pose_ekf)
rplidarNode (rplidar_ros/rplidarNode)
rviz_click_to_2d (jessicar2_localization/rviz_click_to_2d)
serial_node (rosserial_python/serial_node.py)
slam_gmapping (gmapping/slam_gmapping)
auto-starting new master
process[master]: started with pid [10547]
ROS_MASTER_URI=http://192.168.55.1:11311
setting /run_id to 26c96836-93d0-11ed-b9aa-f2c0a8c83755
process[rosout-1]: started with pid [10561]
started core service [/rosout]
process[baselink_to_laserlink-2]: started with pid [10578]
process[basefootprint_to_baselink-3]: started with pid [10579]
process[serial_node-4]: started with pid [10582]
process[rplidarNode-5]: started with pid [10596]
process[baselink_to_imulink-6]: started with pid [10602]
process[imu_node-7]: started with pid [10604]
process[rviz_click_to_2d-8]: started with pid [10615]
process[odom_pub-9]: started with pid [10621]
process[robot_pose_ekf-10]: started with pid [10625]
process[slam_gmapping-11]: started with pid [10632]
[ WARN] [1673675776.597727845]: InitPose 1
[ INFO] [1673675776.726135942]: RPLIDAR running on ROS package rplidar_ros, SDK Version:2.0.0
[ INFO] [1673675776.805757640]: RPLIDAR MODE:A1M8
[ INFO] [1673675776.806918915]: RPLIDAR S/N: 6DB3EDF9C7E29BD1A7E39EF2FD60431B
[ INFO] [1673675776.806976574]: Firmware Ver: 1.29
[ INFO] [1673675776.807018322]: Hardware Rev: 7
[ INFO] [1673675776.858388684]: RPLidar health status : OK.
[ INFO] [1673675777.119668637]: current scan mode: Sensitivity, sample rate: 8 Khz, max_distance: 12.0 m, scan frequency:10.0 Hz,
[ INFO] [1673675778.781022949]: Laser is mounted upwards.
rqt_graph를 실행하여 아래 그래프를 구할 수 있습니다.
$ rosrun tf view_frames
$ evince frames.pdf