[ROS/PCL] PointCloud2 샘플데이터 재생 rosbag

How to visualize PointCloud2 on rviz

How to play bag file using rosbag

 

 

 

[블로그 이전 관련!!]

더나은 환경에서 양질의 게시글을 제공하기 위해 블로그를 옮겼습니다

아래쪽 주소로 들어가지면 PointCloud2 샘플 데이터 재생하는 것을 정리해놓았습니다!

https://bigbigpark.github.io/ros/ros-pointcloud2-rosbag/

 

 

 

 

 

 

안녕하세요~ 오늘은 rosbag파일을 재생하면서 rviz에 시각화해보겠습니다!

재생할 bag 파일은 ouster사에서 제공하는 sample data이구요!

 

URL : ouster.com

 

High-resolution digital lidar: autonomous vehicles, robotics, drones

Lidar sensors for high-resolution, long range use in autonomous vehicles, robotics, mapping. Low-cost & reliable for any use case.

ouster.com

 

여기서 다운로드 하실 수 있습니다

 

 

전체적인 컨셉

 

- roscore 실행

- rosbag 실행

- rviz 실행 후 visualization

이 순서로 진행해보겠습니다! 차근차근 따라오시면 됩니다 ㅎㅎ

 

 

$roscore

 

 

 

 

$rosbag play OS1-64_city3.bag -l

 

bag파일을 재생하기 위한 명령어입니다.

$rosbag play [bag파일 이름]

순서로 입력해주시면 되고 끝에 -l무한반복하겠다는 옵션입니다

 

 

$rostopic list

 

rostopic list 를 이용하여 현재 publish/subscribe 중인 토픽 명을 모두 확인할 수 있습니다

 

 

$rosbag info OS1-64_city3.bag

 

 

rosbag info를 통해 bag파일의 정보를 얻을 수 있습니다

간단하게 보시면 파일 경로, duration, size, 토픽들 등을 확인할 수 있습니다.

이 때 저희는 /os1_cloud_node/points  ...   sensor_msgs/PointCloud2에 집중할게요!

 

 

$rviz

 

 

rviz를 실행하셔서 토픽 중 PointCloud2를 선택해주세요!

 

토픽명 설정 -> /os1_cloud_node/points

 

 

이제 global frame_id만 기입하면 되는데 rosbag info에서는 그 정보가 없었습니다.

따라서 rostopic echo를 이용하여 frame_id를 알아내봅시다!

 

 

$rostopic echo /os1_cloud_node/points | grep frame_id

 

 

rostopic echo /os1_cloud_node/points | grep frame_id

 

위의 명령어는 | (리눅스에서는 AND 동작)로 구성이 되어있습니다.

따라서 rostopic echo를 하는데 frame_id라고 출력되는 부분을 grep(잡다)하는 명령어 입니다.

출력 결과물을 보시면 frame_id: "/os1_lidar"라고 출력되는 것을 볼 수 있습니다.

 

따라서 이를 rviz의 global frame에 입력해주시면 pointcloud2 bag파일을 성공적으로 재생할 수 있습니다~

 

 

결과(output)

 

 

 

전체 실행 동영상