본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
오늘은 smoother server의 parameter를 알아보았다.
[오늘의 수강 영상]
[오늘의 실습]
smoother server란?
로봇의 경로를 보다 부드럽게 만드는 데 사용되는 server이다.
이를 사용하면 로봇이 목표 지점으로 이동할 때
경로의 급격한 회전이나 불규칙한 움직임을 최소화하여
더욱 자연스럽고 효율적으로 움직일 수 있게 한다.
이는 경로의 평활화(Path smoothing), 경로 최적화(Path Optimization),
안전성 확보(Safety Assurance)를 목적으로 한다.
아래 영상을 보면 커브를 할 때 global path가
계단식이었다가 자연스러운 곡선 형태로 변하는 것을 볼 수 있는데
이것이 smoother server가 하는 일이다.
Smoother server의 parameter는 아래와 같다.
1. costmap_topic
costmap_topic란?
경로 상의 충돌 여부를 확인하기 위한
Costmap 데이터의 ROS 토픽 이름이다.
이는 string으로 표현되며 기본값은 global_costmap/costmap_raw이다.
아래 이미지에 하늘색으로 있는 게 global costmap,
로봇 주변에 진한 하늘색으로 있는게 local costmap이다.
2. footprint_topic
footprint_topic란?
로봇의 footprint(차체 외곽 형태)를 제공하는 토픽 이름이다.
이 footprint는 costmap 상에서 충돌 여부를 판단하는 데 사용된다.
이는 string으로 표현되며 기본값은 global_costmap/published_footprint이다.
3. transform_tolerance
transform_tolerance란?
TF(Transform) 프레임 간 변환 정보의 허용 오차 시간(초)이다.
변환이 지연되어도 이 시간 내에 수신되면 유효한 것으로 간주된다.
이는 double로 표현되며 기본값은 0.1이다.
4. smoother_plugins
smoother_plugins란?
경로를 부드럽게 만들기 위해 사용하는
경로 스무딩 알고리즘 플러그인들의 매핑된 이름이다.
이는 vector<string>으로 표현되며 기본값은 simple_smoother이다.
사용되는 plugin에는 Simple Smoother가 있다.
Simple Smoother란?
입력 경로를 받아 간단하고 빠른 스무딩 기법을
사용하여 경로를 부드럽게 만드는 것이다.
이는 초기 경로 포인트와 평활화(smoothing)된
경로 포인트에 가중치를 부여하여,
경로가 기존 특성을 유지하면서 진동이나 들쭉날쭉한 부분을
줄이는 균형 잡힌 결과를 생성한다.
이 plugin의 파라미터에는 아래와 같은 것들이 있다.
1) tolerance
tolerance란?
알고리즘이 수렴했다고 판단하는 기준 허용 오차이다.
경로의 변화량이 이 값보다 작아지면
더 이상 계산을 수행하지 않는다.
값이 작을수록 정밀한 경로 생성 가능하지만 연산량 증가하며
클수록 빠르게 수렴하지만 정밀도가 낮아질 수 있다.
이는 double로 나타내며 기본값은 1.0e-10이다.
2) do_refinement
do_refinement란?
초기 평활화 이후 경로 세부 조정을
추가로 수행할지 여부를 설정한다.
값이 True이면 평활화 후 refinement 반복 수행하고
False이면 초기 평활화만 수행한다.
이는 bool로 나타내며 기본값은 True이다.
3) refinement_num
refinement_num란?
do_refinement이 True일 때, refinement 반복 횟수를 설정한다.
횟수가 많을수록 경로가 더 정밀하게 다듬어지지만
연산 시간도 그만큼 증가하게 된다.
이는 int로 나타내며 기본값은 2이다.
4) max_its
max_its란?
알고리즘의 최대 반복 횟수이다.
이 값을 초과하면 수렴 여부에 관계없이 계산을 중단하게 된다.
이때 이 값이 너무 높으면 계산시간이 불필요하게 늘 수 있다.
이는 int로 나타나며 기본값은 1000이다.
5) w_data
w_data란?
원래 경로 유지 정도를 조절하는 가중치이다.
값이 높을수록 원래 경로에서 크게 벗어나지 않고
낮을수록 부드러운 경로를 생성할 수 있지만 경로의 정확성이 떨어질 수 있다.
이는 double로 나타나며 기본값은 0.2이다.
6) w_smooth
w_smooth란?
경로의 부드러움 정도를 조절하는 가중치이다.
이 값이 높을수록 경로가 더 부드럽게 조정되지만
너무 높으면 경로가 불필요하게 휘어질 수 있다.
이는 double로 나타내며 기본값은 0.3이다.
smoother server의 파라미터들을 배우면서
알고리즘의 반복 횟수와 같은 세세한 부분들까지
고려해서 코드를 작성했다는 사실들이 놀랍게 다가왔다.
#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
커리어 성장을 위한 최고의 실무교육 아카데미 | 패스트캠퍼스
성인 교육 서비스 기업, 패스트캠퍼스는 개인과 조직의 실질적인 '업(業)'의 성장을 돕고자 모든 종류의 교육 콘텐츠 서비스를 제공하는 대한민국 No. 1 교육 서비스 회사입니다.
fastcampus.co.kr