본문 바로가기
ROS Project🦾

jackal_navigation 파라미터 분석하기

by 우직한 사람 2024. 1. 25.
반응형

jackal_navigation 패키지를 보면 아래 사진과 같다

Jackal clear path 공식문서를 살펴보면(링크)

map 없이 navigation을 할 때는 odom_navigation_demo.launch  파일을

map을 만들 때(SLAM)는 gmapping_demo.launch 파일을

제작된 map 위에서 navigation을 하려면 amcl_demo.launch 파일을 map_file:=<경로> 옵션과 함께 실행하면 된다

 

1. base_local_planner_params.yaml

- move_base 패키지에서 사용되는 costmap 관련 설정을 정의한 파일

- 로봇의 센서 데이터를 기반으로 장애물 맵 및 확장 맵을 생성하는데 필요한 매개변수들이 정이되어 있다

TrajectoryPlannerROS:

  # Robot Configuration Parameters
  acc_lim_x: 10.0
  # acc_lim_theta:  20.0
  acc_lim_theta:  10.0
  max_vel_x: 0.5
  min_vel_x: 0.1

  max_vel_theta: 1.0 #1.57
  min_vel_theta: -1.0 #-1.57
  min_in_place_vel_theta: 0.314

  holonomic_robot: false
  escape_vel: -0.5

  # Goal Tolerance Parameters
  yaw_goal_tolerance: 0.1 #0.157
  xy_goal_tolerance: 0.25
  latch_xy_goal_tolerance: false

  # Forward Simulation Parameters
  sim_time: 2.0
  sim_granularity: 0.02
  angular_sim_granularity: 0.02
  vx_samples: 6
  vtheta_samples: 20
  controller_frequency: 20.0

  # Trajectory scoring parameters
  meter_scoring: true # Whether the gdist_scale and pdist_scale parameters should assume that goal_distance and path_distance are expressed in units of meters or cells. Cells are assumed by default (false).
  occdist_scale:  0.1 #The weighting for how much the controller should attempt to avoid obstacles. default 0.01
  pdist_scale: 0.75  #     The weighting for how much the controller should stay close to the path it was given . default 0.6
  gdist_scale: 1.0 #     The weighting for how much the controller should attempt to reach its local goal, also controls speed  default 0.8

  heading_lookahead: 0.325  #How far to look ahead in meters when scoring different in-place-rotation trajectories
  heading_scoring: false  #Whether to score based on the robot's heading to the path or its distance from the path. default false
  heading_scoring_timestep: 0.8   #How far to look ahead in time in seconds along the simulated trajectory when using heading scoring (double, default: 0.8)
  dwa: true #Whether to use the Dynamic Window Approach (DWA)_ or whether to use Trajectory Rollout
  simple_attractor: false
  publish_cost_grid_pc: true

  #Oscillation Prevention Parameters
  oscillation_reset_dist: 0.05 #How far the robot must travel in meters before oscillation flags are reset (double, default: 0.05)
  escape_reset_dist: 0.1
  escape_reset_theta: 0.1

 

[정리]

  1. 로봇 구성 매개 변수 (Robot Configuration Parameters):
    • acc_lim_x: x 방향 가속도 제한 (m/s^2)
    • acc_lim_theta: 각도 방향의 각가속도 제한 (rad/s^2)
    • max_vel_x: x 방향의 최대 속도 (m/s)
    • min_vel_x: x 방향의 최소 속도 (m/s)
    • max_vel_theta: 각도 방향의 최대 회전 속도 (rad/s)
    • min_vel_theta: 각도 방향의 최소 회전 속도 (rad/s)
    • min_in_place_vel_theta: 제자리 회전 시의 최소 회전 속도 (rad/s)
    • holonomic_robot: 차량이 홀로노믹 (Holonomic)인지 여부
    • escape_vel: 회피 동작 시의 속도 (m/s)
  2. 목표 허용성 매개 변수 (Goal Tolerance Parameters):
    • yaw_goal_tolerance: 목표 각도 허용 범위 (rad)
    • xy_goal_tolerance: 목표 위치 허용 범위 (m)
    • latch_xy_goal_tolerance: 목표 위치 허용에 대한 허용 범위를 고정할지 여부
  3. 전방 시뮬레이션 매개 변수 (Forward Simulation Parameters):
    • sim_time: 전방 시뮬레이션에 사용되는 시간 (s)
    • sim_granularity: 시뮬레이션 그리드의 거리 간격 (m)
    • angular_sim_granularity: 회전에 대한 시뮬레이션 그리드의 거리 간격 (rad)
    • vx_samples, vtheta_samples: 시뮬레이션에 사용되는 선형 및 각도 속도 샘플 수
    • controller_frequency: 컨트롤러의 주파수 (Hz)
  4. 궤적 점수화 매개 변수 (Trajectory Scoring Parameters):
    • meter_scoring: 거리 및 비용 스케일을 미터로 사용할지 여부
    • occdist_scale: 장애물 회피 가중치
    • pdist_scale: 경로에 가까이 있을 가중치
    • gdist_scale: 로컬 목표에 도달할 가중치 및 속도 제어
  5. 진행 방향 미리보기 및 진행 방향 점수화 매개 변수:
    • heading_lookahead: 점수 계산에 사용되는 진행 방향 미리보기 거리 (m)
    • heading_scoring: 로봇의 헤딩을 경로에 대한 기준으로 사용할지 여부
    • heading_scoring_timestep: 헤딩 점수 계산에 사용되는 시간 간격 (s)
  6. 기타 매개 변수:
    • dwa: Dynamic Window Approach (DWA)를 사용할지 여부
    • simple_attractor: 간단한 어트랙터 사용 여부
    • publish_cost_grid_pc: 비용 그리드를 퍼블리시할지 여부
  7. 진동 방지 및 탈출 매개 변수:
    • oscillation_reset_dist: 진동 플래그를 리셋하기 위한 이동 거리 (m)
    • escape_reset_dist: 탈출을 리셋하기 위한 이동 거리 (m)
    • escape_reset_theta: 탈출을 리셋하기 위한 회전 각도 (rad)

 

 

 

2. costmap_common_params.yaml

map_type: costmap
origin_z: 0.0
z_resolution: 1
z_voxels: 2

obstacle_range: 2.5
raytrace_range: 3.0

publish_voxel_map: true
transform_tolerance: 0.2
meter_scoring: true

footprint: [[-0.21, -0.165], [-0.21, 0.165], [0.21, 0.165], [0.21, -0.165]]
footprint_padding: 0.1

plugins:
- {name: obstacles_layer, type: "costmap_2d::ObstacleLayer"}
- {name: inflater_layer, type: "costmap_2d::InflationLayer"}

obstacles_layer:
  observation_sources: scan
  scan: {sensor_frame: front_laser, data_type: LaserScan, topic: front/scan, marking: true, clearing: true, min_obstacle_height: -2.0, max_obstacle_height: 2.0, obstacle_range: 2.5, raytrace_range: 3.0, origin: [0.12, 0.00]}

inflater_layer:
 inflation_radius: 0.3
 

 

  1. 맵 유형 및 해상도 관련 매개 변수:
    • map_type: 맵의 유형 (여기서는 costmap).
    • origin_z: 맵의 원점에서의 높이 (z 좌표).
    • z_resolution: 맵의 높이 해상도.
    • z_voxels: 맵의 높이 차원 크기.
  2. 장애물 및 레이트레이스 범위 관련 매개 변수:
    • obstacle_range: 장애물로 간주되는 최대 거리 (미터).
    • raytrace_range: 레이트레이스를 수행하는 최대 거리 (미터).
  3. 맵 퍼블리싱 관련 매개 변수:
    • publish_voxel_map: Voxmap을 퍼블리시할지 여부.
    • transform_tolerance: 변환 허용 오차 (미터).
  4. 거리 및 비용 스케일 관련 매개 변수:
    • meter_scoring: 거리 및 비용 스케일을 미터로 사용할지 여부.
  5. 로봇 발자국과 패딩 관련 매개 변수:
    • footprint: 로봇의 발자국을 정의하는 좌표들.
    • footprint_padding: 발자국 주변에 추가할 패딩의 크기 (미터).
  6. 플러그인과 레이어 관련 매개 변수:
    • plugins: 사용할 costmap 레이어 플러그인들의 목록.
      • obstacles_layer: 장애물 레이어에 대한 설정.
      • inflater_layer: 확장 레이어에 대한 설정.
  7. 장애물 레이어 관련 매개 변수:
    • observation_sources: 센서 데이터를 제공하는 소스들의 목록.
    • scan: 스캔 데이터에 대한 설정.
  8. 확장 레이어 관련 매개 변수:
    • inflater_layer: 확장 반경 (패딩) 설정.

 

3. move_base_params.yaml

shutdown_costmaps: false

controller_frequency: 20.0
controller_patience: 15.0

planner_frequency: 20.0
planner_patience: 5.0

oscillation_timeout: 0.0
oscillation_distance: 0.5

recovery_behavior_enabled: true
clearing_rotation_allowed: true

 

  1. 코스트맵 종료 (Shutdown Costmaps):
    • shutdown_costmaps: 로봇이 목표에 도달하면 코스트맵을 종료할지 여부. 여기서는 비활성화 상태로 설정되어 있음.
  2. 컨트롤러 주파수 및 인내 관련 매개 변수:
    • controller_frequency: 컨트롤러의 동작 주파수 (Hz).
    • controller_patience: 목표에 도달했을 때 몇 초간 컨트롤러를 유지할지 지정하는 시간 (초).
  3. 플래너 주파수 및 인내 관련 매개 변수:
    • planner_frequency: 경로 플래닝 주파수 (Hz).
    • planner_patience: 목표 경로를 계획하는 데 얼마나 오래 기다릴지 지정하는 시간 (초).
  4. 진동 타임아웃 및 거리 관련 매개 변수:
    • oscillation_timeout: 진동 탐지를 위한 타임아웃 (초). 여기서는 0.0으로 설정되어 있어 타임아웃이 없음을 의미.
    • oscillation_distance: 진동으로 간주하는 거리 (미터).
  5. 회복 행동 활성화 관련 매개 변수:
    • recovery_behavior_enabled: 회복 행동 활성화 여부. 여기서는 활성화 상태로 설정되어 있음.
  6. 클리어링 회전 허용 관련 매개 변수:
    • clearing_rotation_allowed: 클리어링(장애물 제거) 중에 로봇이 회전할 수 있는지 여부.

 

<reference>

https://www.clearpathrobotics.com/assets/guides/noetic/jackal/navigation.html

 

Navigating with Jackal — Jackal Tutorials 0.6.0 documentation

Below are the example launch files for three different configurations for navigating Jackal: If you’re using simulation, bring up Jackal with the front laser enabled for the following demos: If you’re working with a real Jackal, it’s suggested to con

www.clearpathrobotics.com

 

반응형