본문 바로가기

Robot/Robot Program - ROS

ROS 라이다 scan 신호를 필터링하고 싶을때 laser filters pkg

주행로봇을 다루다 보면 스캔 scan 토픽을 발행해주는 라이다를 사용할때가 많은데요. 로봇의 기구적 형상과 라이다의 종류나 성능애 따라 적절한 필터를 넣어주어야할 때가 많을 겁니다. 라이다 주변에 기둥이 있다든지 할때 특정 각도를 잘라낸다든지 하는 일들이 생기게 되는거죠. 이럴때 사용하는 것이 하나 있습니다. laseer_filters 패키지입니다.

scan 데이터가 들어오면 하나 이상의 필터를 적용할 수 있습니다~

이렇게 yaml 파일로 필터를 정의해둡니다. 위 필터는 특정각도를 제거하는 필터입니다. (라디안단위입니다)

그리고 gmapping이든 navigation이든 사용할때 laser_filters 패키지의 scan_to_scan_filter_chain을 실행하면서 yaml에 설정된 필터를 적용하면 됩니다.

그리고 gmapping 이라면 그 안에서 scan 데이터를 scan_filtered로 바꿔주면 됩니다.

로보티즈의 터틀봇3 패키지에 포함된 터틀월드를 살짝 가져와서

scan 데이터를 보면 저렇구요~

scan_filtered 토픽을 보면 저렇게 내가 원한 부분을 자르고 나타납니다.^^

이번에는 필터를 연달아 두 개 사용해서 두 군데를 잘라보죠~

그러면 이렇게 원하는 부분만 또 잘 잘려서 나타납니다.^^  위 내용은 동영상으로도 보실 수 있습니다.



반응형