반응형
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
[정리]
- 로봇 구성 매개 변수 (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)
- 목표 허용성 매개 변수 (Goal Tolerance Parameters):
- yaw_goal_tolerance: 목표 각도 허용 범위 (rad)
- xy_goal_tolerance: 목표 위치 허용 범위 (m)
- latch_xy_goal_tolerance: 목표 위치 허용에 대한 허용 범위를 고정할지 여부
- 전방 시뮬레이션 매개 변수 (Forward Simulation Parameters):
- sim_time: 전방 시뮬레이션에 사용되는 시간 (s)
- sim_granularity: 시뮬레이션 그리드의 거리 간격 (m)
- angular_sim_granularity: 회전에 대한 시뮬레이션 그리드의 거리 간격 (rad)
- vx_samples, vtheta_samples: 시뮬레이션에 사용되는 선형 및 각도 속도 샘플 수
- controller_frequency: 컨트롤러의 주파수 (Hz)
- 궤적 점수화 매개 변수 (Trajectory Scoring Parameters):
- meter_scoring: 거리 및 비용 스케일을 미터로 사용할지 여부
- occdist_scale: 장애물 회피 가중치
- pdist_scale: 경로에 가까이 있을 가중치
- gdist_scale: 로컬 목표에 도달할 가중치 및 속도 제어
- 진행 방향 미리보기 및 진행 방향 점수화 매개 변수:
- heading_lookahead: 점수 계산에 사용되는 진행 방향 미리보기 거리 (m)
- heading_scoring: 로봇의 헤딩을 경로에 대한 기준으로 사용할지 여부
- heading_scoring_timestep: 헤딩 점수 계산에 사용되는 시간 간격 (s)
- 기타 매개 변수:
- dwa: Dynamic Window Approach (DWA)를 사용할지 여부
- simple_attractor: 간단한 어트랙터 사용 여부
- publish_cost_grid_pc: 비용 그리드를 퍼블리시할지 여부
- 진동 방지 및 탈출 매개 변수:
- 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
- 맵 유형 및 해상도 관련 매개 변수:
- map_type: 맵의 유형 (여기서는 costmap).
- origin_z: 맵의 원점에서의 높이 (z 좌표).
- z_resolution: 맵의 높이 해상도.
- z_voxels: 맵의 높이 차원 크기.
- 장애물 및 레이트레이스 범위 관련 매개 변수:
- obstacle_range: 장애물로 간주되는 최대 거리 (미터).
- raytrace_range: 레이트레이스를 수행하는 최대 거리 (미터).
- 맵 퍼블리싱 관련 매개 변수:
- publish_voxel_map: Voxmap을 퍼블리시할지 여부.
- transform_tolerance: 변환 허용 오차 (미터).
- 거리 및 비용 스케일 관련 매개 변수:
- meter_scoring: 거리 및 비용 스케일을 미터로 사용할지 여부.
- 로봇 발자국과 패딩 관련 매개 변수:
- footprint: 로봇의 발자국을 정의하는 좌표들.
- footprint_padding: 발자국 주변에 추가할 패딩의 크기 (미터).
- 플러그인과 레이어 관련 매개 변수:
- plugins: 사용할 costmap 레이어 플러그인들의 목록.
- obstacles_layer: 장애물 레이어에 대한 설정.
- inflater_layer: 확장 레이어에 대한 설정.
- plugins: 사용할 costmap 레이어 플러그인들의 목록.
- 장애물 레이어 관련 매개 변수:
- observation_sources: 센서 데이터를 제공하는 소스들의 목록.
- scan: 스캔 데이터에 대한 설정.
- 확장 레이어 관련 매개 변수:
- 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
- 코스트맵 종료 (Shutdown Costmaps):
- shutdown_costmaps: 로봇이 목표에 도달하면 코스트맵을 종료할지 여부. 여기서는 비활성화 상태로 설정되어 있음.
- 컨트롤러 주파수 및 인내 관련 매개 변수:
- controller_frequency: 컨트롤러의 동작 주파수 (Hz).
- controller_patience: 목표에 도달했을 때 몇 초간 컨트롤러를 유지할지 지정하는 시간 (초).
- 플래너 주파수 및 인내 관련 매개 변수:
- planner_frequency: 경로 플래닝 주파수 (Hz).
- planner_patience: 목표 경로를 계획하는 데 얼마나 오래 기다릴지 지정하는 시간 (초).
- 진동 타임아웃 및 거리 관련 매개 변수:
- oscillation_timeout: 진동 탐지를 위한 타임아웃 (초). 여기서는 0.0으로 설정되어 있어 타임아웃이 없음을 의미.
- oscillation_distance: 진동으로 간주하는 거리 (미터).
- 회복 행동 활성화 관련 매개 변수:
- recovery_behavior_enabled: 회복 행동 활성화 여부. 여기서는 활성화 상태로 설정되어 있음.
- 클리어링 회전 허용 관련 매개 변수:
- clearing_rotation_allowed: 클리어링(장애물 제거) 중에 로봇이 회전할 수 있는지 여부.
<reference>
https://www.clearpathrobotics.com/assets/guides/noetic/jackal/navigation.html
반응형
'ROS Project🦾' 카테고리의 다른 글
ROS QGroundControl 띄우기 [1] (0) | 2024.02.14 |
---|---|
ROS gazebo에서 image 넣기, How to build a world with real image as ground plane (0) | 2024.01.31 |
Jetson AGX Xavier에 Docker ROS image 설치하기 (2) | 2023.09.16 |
ROS 2 설치하기 (Ubuntu 22.04) + Pacakge & colcon error [solved] (0) | 2023.08.19 |
ROS 란 ROS1? ROS2? 특징 살펴보기 [3] (0) | 2023.08.17 |