실행법!

  1. 아래 파일들을 다운을 받는다

    obstacle_detector-20210210T044331Z-001.zip

    test_lidar3.py

  2. obstacle detector를 catkin_ws에 넣고 cm 한다. ← 아르마딜로 깔아야 될수도 있음...!!

    (구글에 armadillo 다운받는법 쳐서 깔기!)

  3. 앞서 VLP-16키는 법 참고해서 $roslaunch velodyne_pointcloud VLP16_points.launch

  4. 이후 test_lidar3.py 있는 폴더에서 python3 test_lidar3.py

  5. 다음으로 roslaunch obstacle_detector virtual ~ (tab 치면됨) 실행

  6. rviz 창 나오면서 obstacle 확인 가능하고 rostopic에서 장애물 정보 확인 가능

이번 과정에서 바뀐부분

ObstacleDetector::ObstacleDetector() : nh_(""), nh_local_("~") {
updateParams();if (p_use_scan_)
scan_sub_ = nh_.subscribe("scan", 10, &ObstacleDetector::scanCallback, this);
else if (p_use_pcl_)
pcl_sub_ = nh_.subscribe("lidar_pub", 10, &ObstacleDetector::pclCallback, this);obstacles_pub_ = nh_.advertise<obstacle_detector::Obstacles>("obstacles", 5);ROS_INFO("Obstacle Detector [OK]");
ros::spin();
}

저번 2020-2학기에 진행한 다학년 프로젝트에서 Lidar팀은 Obstacle detection을 수행했다.

points 들의 전체 집합을 모여있는 군집끼리 나누어 부분집합으로 나누었고 이를 별도의 과정을 거쳐 원으로 나타내는 작업이다.

tysik/obstacle_detector

자세한 내용은 위의 github를 참고하시면 됩니다.

이때, 저번 2D Lidar에서는 points들이 scan message로 들어와서 이를 이용해서 진행하였는데 지금은 VLP-16에서 들어온 정보를 가공하여 pointcloud 형식으로 바꿔서 송신했으므로 위의 pcl_sub에서 메세지 이름만 맞추어 주면 된다.