본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
오늘은 Behavior Server의 파라미터를
실습을 통해 수행해 보았다.
[오늘의 수강 영상]
[오늘의 실습]
Behavior Server란?
특정 상황이나 요구 사항에 따라 로봇의 동작(Behaviro)을
제어하고 관리하는 기능을 제공한다.
Behavior Server는 다양한 복구 동작과 일반적인 행동을
일관되고 통합된 방식으로 관리하기 위해서
기존에 사용되던 Recovery에서 Behavior로 통합되었다.
Behavior Server의 parameter에는
아래와 같은 것들이 있다.
1. cycle_frequency
cycle_frequency란?
Behavior Server의 주기적인 실행 빈도를
설정한다.
이는 double로 나타내며 기본값은 10.0으로 설정한다.
2. behavior_plugins
behavior_plugins란?
행동(behavior)을 모듈화 하여 정의하고 실행하기 위해
사용하는 plugin 시스템이다.
이는 특정 상황에서 필요한 행동이 있다면
해당 행동을 plugin 목록에 추가하여 사용할 수 있다.
vector <string>으로 나타내며
기본값은 spin, backup, drive on heading, wait로 설정한다.
1) spin
spin은 로봇이 제자리에서 회전하는 행동으로
장애물을 감지하고 회피하면서
충돌을 최소화하기 위해서 사용된다.
2) backup
backup은 로봇이 후진하는 행동으로
로봇이 장애물에 막혔을 때 후진하여
장애물에서 벗어나는데 사용된다.
3) drive on heading
drive on heading은 특정 방향으로 직진하는 행동으로
로봇이 특정 방향으로 이동해야 할 때 사용된다.
4) wait
wait는 일정 시간 동안 대기하는 행동으로
특정 조건이 충족될 때까지
로봇이 대기해야 할 때 사용된다.
5) asisted teleop
asisted teleop은 원격 조작을 보조하는 행동으로
로봇을 원격으로 제어해야 할 때 사용된다.
기본값으로는 사용되지 않지만
해당 상황에서 사용할 수 있다.
behavior_plugin에서 사용되는 parameter는 아래와 같다.
1. simulate_ahead_time
simulate_ahead_time이란?
로봇의 행동을 예측하고 시뮬레이션하는
시간 범위를 나타낸다.
이는 double로 나타내며 기본값은 2.0으로 설정하며
spin, backup, drive on heading에서 사용된다.
2. max_rotational_vel
max_rotational_vel이란?
로봇의 최대 회전 속도이다.
이는 double로 나타내며 기본값은 1.0으로 설정하며
spin에서 사용된다.
3. min_rotational_vel
min_rotational_vel이란?
로봇의 최대 회전속도이다.
이는 double로 나타내며 기본값은 0.4로 설정하며
spin에서 사용된다.
4. rotational_acc_lim
rotational_acc_lim이란?
로봇의 회전 가속도를 제한하는데 사용한다.
로봇이 부드럽게 회전할 수 있도록 설정하고
로봇의 회전 특성에 맞게 값을 조정해야 한다.
이는 double로 나타내며 기본값은 3.2로 설정하며
spin에서 사용된다.
5. enable_stamped_cmd_vel
enable_stamped_cmd_vel이란?
cmd_vel 명령에 Timestamp를 포함할지 여부를 설정한다.
이는 bool로 나타내며 기본값은 false로 설정하며
spin, backup, drive on heading, assisted teleop에서 사용된다.
6. bond_heartbeat_period
bond_heartbeat_period란?
Bond 메커니즘에서 주기적으로 특정 행동이 실행 중임을
나타내기 위해 보내는 신호의 간격을 설정한다.
이는 double로 나타내며 기본값은 0.1로 설정하며
drive on heading에서 사용된다.
이때 Bond는 두 노두 간의 연결 상태를 모니터링하고
연결이 끊어지거나 노드가 죽으면 이를 감지하는 메커니즘을 나타낸다.
7. projection_time
projection_time이란?
로봇이 미래에 어느 지점에 있을지를
예측하기 위해 사용하는 시간이다.
로봇의 현재 속도를 기반으로
로봇의 미래 위치를 예측하며,
원격 조작을 보다 원활하게 만들기 위해 사용하며
시간을 짧게 설정하면 더 즉각적인 반응을 제공하지만,
원격 조작의 예측이 덜 정확해질 수 있다.
이는 double로 나타내며 기본값은 1.0으로 설정하며
assisted teleop에서 사용된다.
8. simulation_time_step
simulation_time_step이란?
로봇의 상태를 시뮬레이션할 때 사용되며
로봇의 움직임을 얼마나 자주 update 할 것인지를 제어하는 시간 간격이다.
시간을 짧게 설정하면 시뮬레이션의 정확성을 높일 수 있지만
계산 부하가 증가하게 된다.
이는 string으로 나타내며 기본값은 0.1로 설정하며
assisted teleop에서 사용된다.
9. cmd_vel_teleop
cmd_vel_teleop란?
원격 조작 명령을 받을 토픽의 이름이다.
이는 string으로 나타내며 기본값은 cmd_vel_teleop로 설정하며
assisted teleop에서 사용된다.
오늘 실습을 진행해 보며
하나의 코드에 모든 행동을 수행하도록
하는 것이 아닌 behavior server를
사용해서 원하는 행동을 수행하도록
해야겠다고 생각하였다.
#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
🚨5월 1일 00시 강의 가격 대폭 인상! | 패스트캠퍼스
4월 30일 이후 비싸집니다. 가격 인상 전 지금이 4월 마지막 기회! 지금 바로 시작하세요.
fastcampus.co.kr