자율주행 자동차

자율 주행 자동차 장애물 탐지 및 회피 - TEB_Local_Planner

이게될까 2024. 4. 1. 16:55
728x90
728x90

https://wiki.ros.org/teb_local_planner

 

teb_local_planner - ROS Wiki

melodic noetic   Show EOL distros:  EOL distros:   indigo jade kinetic lunar indigo: Documentation generated on June 09, 2019 at 04:06 AM (doc job).jade: Documentation generated on October 24, 2016 at 12:10 PM (doc job).kinetic: Documentation generate

wiki.ros.org

Package Summary

 Released
 Continuous Integration: 3 / 3 
 
 Documented

The teb_local_planner package implements a plugin to the base_local_planner of the 2D navigation stack. The underlying method called Timed Elastic Band locally optimizes the robot's trajectory with respect to trajectory execution time, separation from obstacles and compliance with kinodynamic constraints at runtime.

  • Maintainer status: maintained
  • Maintainer: Christoph Rösmann <christoph.roesmann AT tu-dortmund DOT de>
  • Author: Christoph Rösmann <christoph.roesmann AT tu-dortmund DOT de>
  • License: BSD
  • Source: git https://github.com/rst-tu-dortmund/teb_local_planner.git (branch: noetic-devel)

 

 

Overview

Update: Two tutorials on planning with dynamic obstacles added (click here)

  • 이 패키지는 ROS 탐색 패키지 용 플러그인으로 모바일 로봇의 탐색 및 제어를 위한 온라인 최적의 로컬 궤적 플래너를 구현합니다 .글로벌 플래너가 생성한 초기 궤적은 런타임 동안 최적화되어 궤적 실행 시간을 최소화합니다(시간 최적 목표).장애물로부터의 분리 및 최대 속도 및 가속도 충족과 같은 운동역학적 제약 조건 준수.희소 스칼라화된 다중 목표 최적화 문제를 해결하여 최적의 궤적을 효율적으로 얻습니다. 사용자는 목표가 충돌하는 경우 동작을 지정하기 위해 최적화 문제에 가중치를 제공할 수 있습니다.
    • C. Rösmann, W. Feiten, T. Wösch, F. Hoffmann 및 T. Bertram: 자율 로봇의 동적 제약을 고려한 궤적 수정. 진행 제7차 독일 로봇공학 회의, 독일, 뮌헨, 2012년, pp 74–79.
    • C. Rösmann, W. Feiten, T. Wösch, F. Hoffmann 및 T. Bertram: 희소 모델을 사용한 효율적인 궤적 최적화. 진행 모바일 로봇에 관한 IEEE 유럽 컨퍼런스, 스페인, 바르셀로나, 2013, 페이지 138–143.
    Timed-Elastic-Band와 같은 로컬 계획자는 장애물을 통과할 수 없어 로컬 최적의 궤적에 갇히는 경우가 많기 때문에 확장이 구현됩니다.고유한 토폴로지의 허용 가능한 궤적 하위 집합이 병렬로 최적화됩니다. 로컬 플래너는 후보 세트 중에서 현재 전역적으로 최적인 궤적으로 전환할 수 있습니다. 상동성/호모피 클래스의 개념을 활용하여 독특한 토폴로지를 얻습니다.다음 논문에서는 접근 방식을 설명합니다.
    • C. Rösmann, F. Hoffmann 및 T. Bertram: 독특한 토폴로지의 통합 온라인 궤도 계획 및 최적화, 로봇 공학 및 자율 시스템, Vol. 88, 2017, pp. 142–153.
    • C. Rösmann, F. Hoffmann 및 T. Bertram: 독특한 토폴로지의 다중 로봇 궤적 계획, Proc. 모바일 로봇에 관한 IEEE 유럽 컨퍼런스, 영국, 링컨, 2015년 9월
    자동차와 유사한 로봇의 확장은 다음에서 설명됩니다.
    • C. Rösmann, F. Hoffmann 및 T. Bertram: 자동차형 로봇을 위한 운동역학적 궤적 최적화 및 제어, IEEE/RSJ 지능형 로봇 및 시스템(IROS)에 관한 국제 컨퍼런스, 밴쿠버, BC, 캐나다, 2017년 9월.
  • "Timed-Elastic-Band"라는 접근 방식은 다음과 같습니다.
  • 현재 구현은 비홀로노믹 로봇(차동 구동 및 자동차와 유사한 로봇)의 운동학을 준수합니다. Kinetic부터 홀로노믹 로봇 지원이 포함되었습니다.

Get started by completing the tutorials in the Tutorials section.

Use GitHub to report bugs or submit feature requests. [View active issues]

Video

The following video presents the features of the package and shows examples from simulation and real robot situations. Some spoken explanations are included in the audio track of the video.

https://youtu.be/e1Bw6JOgHME

Features introduced in version 0.2 are presented in the following video (supporting car-like robots and costmap conversion).

https://youtu.be/o5wnRCzdUMo

Node API

Topics

 

Published Topics

~<name>/global_plan (nav_msgs/Path)

    • 현재 현지 기획자가 따르려고 하는 글로벌 계획입니다. 주로 시각화 목적으로 사용됩니다.

~<name>/local_plan (nav_msgs/Path)

    • teb_local_planner가 최적화하고 따르는 로컬 계획 또는 궤적입니다. 주로 시각화 목적으로 사용됩니다.

~<name>/teb_poses (geometry_msgs/PoseArray)

    • 현재 로컬 계획의 개별 포즈 목록(SE2)입니다. 주로 시각화 목적으로 사용됩니다.

~<name>/teb_markers (visualization_msgs/Marker)

  • The teb_local_planner provides additional information of the planning scene via markers with different namespaces. Namespaces PointObstacles and PolyObstacles: visualize all point and polygon obstacles that are currently considered during optimization. Namespace TebContainer: Visualize all found and optimized trajectories that rest in alternative topologies (only if parallel planning is enabled). Some more information is published such as the optimization footprint model.
    • teb_local_planner는 다양한 네임스페이스를 가진 마커를 통해 계획 장면에 대한 추가 정보를 제공합니다. 네임스페이스 PointObstacles  PolyObstacles : 최적화 중에 현재 고려되는 모든 점 및 다각형 장애물을 시각화합니다. Namespace TebContainer : 대체 토폴로지에 있는 발견되고 최적화된 모든 궤적을 시각화합니다(병렬 계획이 활성화된 경우에만). 최적화 공간 모델과 같은 추가 정보가 게시되었습니다.

~<name>/teb_feedback (teb_local_planner/FeedbackMsg)

    • 피드백 메시지에는 속도 프로파일, 시간 정보, 장애물 목록 등 계획된 궤적이 포함됩니다. 주로 평가 및 디버깅에 사용됩니다. ~<name>/publish_feedback 매개 변수 를 활성화해야 합니다.


 

Subscribed Topics

~<name>/odom (nav_msgs/Odometry)

    • 로컬 플래너에게 로봇의 현재 속도를 제공하는 주행 거리 측정 정보입니다. ~<name>/odom_topic 매개변수를 다시 매핑하거나 변경하여 이 주제를 변경합니다 .

~<name>/obstacles (costmap_converter/ObstacleArrayMsg)

    • 점, 선 또는 다각형 모양의 사용자 지정 장애물을 제공합니다(비용 맵 장애물에 추가로 또는 대신).

 

~<name>/via_points (nav_msgs/Path)

  • Provide custom via-points (you need to set ~<name>/global_plan_viapoint_sep to zero or negative)
    • 사용자 정의 경유 지점 제공( ~<name>/global_plan_viapoint_sep을 0 또는 음수로 설정해야 함 )

Parameters

teb_local_planner 패키지를 사용하면 사용자가 동작을 사용자 정의하기 위해 매개변수를 설정할 수 있습니다. 이러한 매개변수는 로봇 구성, 목표 허용오차, 궤적 구성, 장애물, 최적화, 고유한 토폴로지 계획 및 기타 매개변수 등 여러 범주로 그룹화됩니다. 그 중 일부는 base_local_planner를 준수하도록 선택되었습니다 . rqt_reconfigure 를 사용하면 런타임 시 많은(전부는 아님) 매개변수를 수정할 수 있습니다 .

Robot Configuration Parameters

~<name>/acc_lim_x (double, default: 0.5)

    • 미터/초^2 단위의 로봇의 최대 병진 가속도

~<name>/acc_lim_theta (double, default: 0.5)

    • 로봇의 최대 각가속도(라디안/초^2)

~<name>/max_vel_x (double, default: 0.4)

    • 미터/초 단위의 로봇의 최대 병진 속도

~<name>/max_vel_x_backwards (double, default: 0.2)

    • 미터/초 단위로 뒤로 이동하는 동안 로봇의 최대 절대 병진 속도입니다. 최적화 매개변수 Weight_kinematics_forward_drive를 참조하세요.

~<name>/max_vel_theta (double, default: 0.3)

    • 로봇의 최대 각속도(라디안/초)

The following parameters are relevant only for carlike robots:

다음 매개변수는 자동차와 유사한 로봇에만 관련됩니다.

~<name>/min_turning_radius (double, default: 0.0)

    • 자동차와 유사한 로봇의 최소 회전 반경(차동 구동 로봇의 경우 0으로 설정)

~<name>/wheelbase (double, default: 1.0)

  • The distance between the rear axle and the front axle. The value might be negative for back-wheeled robots (only required if ~<name>/cmd_angle_instead_rotvelis set to true).
    • 리어 액슬과 프론트 액슬 사이의 거리입니다. 후륜 로봇의 경우 값이 음수일 수 있습니다( ~<name>/cmd_angle_instead_rotvel 이 true 로 설정된 경우에만 필요함 ).

~<name>/cmd_angle_instead_rotvel (bool, default: false)

  • Substitute the rotational velocity in the commanded velocity message by the corresponding steering angle [-pi/2,pi/2]. Note, changing the semantics of yaw rate depending on the application is not preferable. Here, it just complies with the inputs required by the stage simulator. Datatypes in ackermann_msgs are more appropriate, but are not supported by move_base. The local planner is not intended to send commands by itself.
    • 명령된 속도 메시지의 회전 속도를 해당 조향 각도 [-pi/2,pi/2]로 대체합니다. 애플리케이션에 따라 요율의 의미를 변경하는 것은 바람직하지 않습니다. 여기서는 스테이지 시뮬레이터에 필요한 입력만 준수합니다. ackermann_msgs 의 데이터 유형이 더 적합하지만 move_base에서는 지원되지 않습니다. 로컬 플래너는 자체적으로 명령을 보내도록 설계되지 않았습니다.

 

The following parameters are relevant only for holonomic robots: New in ROS kinetic

Note, reduce ~<name>/weight_kinematics_nh significantly in order to adjust the tradeoff between compliant longitudinal motion and non-compliant lateral motion (strafing).

참고로 , 순응하는 세로 운동과 비순응적인 측면 운동(스트레이핑) 사이의 균형을 조정하려면 ~<name>/weight_kinematics_nh를 크게 줄이세요 .

~<name>/max_vel_y (double, default: 0.0)

  • Maximum strafing velocity of the robot (should be zero for non-holonomic robots!)
    • 로봇의 최대 기총 발사 속도(비홀로노믹 로봇의 경우 0이어야 합니다!)
~<name>/acc_lim_y (double, default: 0.5)
  • Maximum strafing acceleration of the robot
    • 로봇의 최대 기총 가속도

The following parameters are relevant for the footprint model used for optimization (see Tutorial Obstacle Avoidance and Robot Footprint Model). New in version 0.3

다음 매개변수는 최적화에 사용되는 발자국 모델과 관련이 있습니다( 튜토리얼 장애물 회피 및 로봇 발자국 모델 참조 ). 버전 0.3의 새로운 기능

~<name>/footprint_model/type (string, default: "point")

    • 최적화에 사용되는 로봇 발자국 모델 유형을 지정합니다. 다양한 유형에는 "점", "원형", "선", "two_circles" 및 "다각형"이 있습니다. 모델 유형은 필요한 계산 시간에 큰 영향을 미칩니다.

~<name>/footprint_model/radius (double, default: 0.2)

    • 이 매개변수는 "원형" 유형에만 해당됩니다. 여기에는 원의 반경이 포함됩니다. 원의 중심은 로봇의 회전축에 위치합니다.

~<name>/footprint_model/line_start (double[2], default: [-0.3, 0.0])

    • 이 매개변수는 "line" 유형에만 관련됩니다. 여기에는 선분의 ​​시작 좌표가 포함됩니다.

~<name>/footprint_model/line_end (double[2], default: [0.3, 0.0])

    • 이 매개변수는 "line" 유형에만 관련됩니다. 여기에는 선분의 ​​끝 좌표가 포함됩니다.

~<name>/footprint_model/front_offset (double, default: 0.2)

    • 이 매개변수는 "two_circles" 유형에만 관련됩니다. 로봇의 x축을 따라 앞쪽 원의 중심이 얼마나 이동했는지를 나타냅니다. 로봇의 회전축은 [0,0]에 있다고 가정합니다.

~<name>/footprint_model/front_radius (double, default: 0.2)

    • 이 매개변수는 "two_circles" 유형에만 관련됩니다. 앞쪽 원의 반경을 포함합니다.

~<name>/footprint_model/rear_offset (double, default: 0.2)

    • 이 매개변수는 "two_circles" 유형에만 관련됩니다. 이는 로봇의 음의 x축을 따라 뒤쪽 원의 중심이 얼마나 이동하는지를 나타냅니다. 로봇의 회전축은 [0,0]에 있다고 가정합니다.

~<name>/footprint_model/rear_radius (double, default: 0.2)

    • 이 매개변수는 "two_circles" 유형에만 관련됩니다. 뒤쪽 원의 반경을 포함합니다.

~<name>/footprint_model/vertices (double[], default: [ [0.25,-0.05], [...], ...])

    • 이 매개변수는 "다각형" 유형에만 관련됩니다. 여기에는 다각형 정점(각각 2D 좌표) 목록이 포함됩니다. 다각형은 항상 닫혀 있습니다. 끝에 첫 번째 꼭지점을 반복하지 마세요.

~<name>/is_footprint_dynamic (bool, default: false)

    • true인 경우 궤도 타당성을 확인하기 전에 발자국을 업데이트합니다.

Goal Tolerance Parameters

~<name>/xy_goal_tolerance (double, default: 0.2)

    • 목표 위치까지 허용된 최종 유클리드 거리(미터)

~<name>/yaw_goal_tolerance (double, default: 0.2)

    • 라디안 단위로 허용되는 최종 방향 오류

~<name>/free_goal_vel (bool, default: false)

    • 로봇이 최대 속도로 목표에 도달할 수 있도록 목표 속도 제약을 제거합니다.

Trajectory Configuration Parameters

~<name>/dt_ref (double, default: 0.3)

  • Desired temporal resolution of the trajectory (the trajectory is not fixed to dt_ref since the temporal resolution is part of the optimization, but the trajectory will be resized between iterations if dt_ref +-dt_hysteresis is violated.
    • 궤적의 원하는 시간적 해상도( 시간적 해상도는 최적화의 일부이므로 궤적은 dt_ref 에 고정되지 않지만, dt_ref +-dt_hysteresis 가 위반되면 반복 간에 궤적의 크기가 조정됩니다.

~<name>/dt_hysteresis (double, default: 0.1)

    • 현재 시간적 해상도에 따라 자동 크기 조정을 위한 히스테리시스(일반적으로 약) dt_ref 의 10% 가 권장됩니다.

~<name>/min_samples (int, default: 3)

    • 최소 샘플 수(항상 2보다 커야 함)

~<name>/global_plan_overwrite_orientation (bool, default: true)

    • 글로벌 플래너가 제공한 로컬 하위 목표의 방향 덮어쓰기(종종 2D 경로만 제공하므로)

~<name>/global_plan_viapoint_sep (double, default: -0.1 (disabled))

    • 양수이면 경유점이 전역 계획(경로 따르기 모드)에서 추출됩니다. 값은 참조 경로의 해상도를 결정합니다(글로벌 계획을 따라 연속된 두 경유점 각각 사이의 최소 분리, 음수인 경우: 비활성화됨). 강도 조정은 Weight_viapoint 매개변수를 참조하세요 . 버전 0.4의 새로운 기능

~<name>/max_global_plan_lookahead_dist (double, default: 3.0)

    • 최적화를 위해 고려되는 글로벌 계획 하위 집합의 최대 길이(누적 유클리드 거리)를 지정합니다. 실제 길이는 로컬 비용 맵 크기와 이 최대 한계의 논리적 결합에 의해 결정됩니다. 이 제한을 비활성화하려면 0 또는 음수로 설정하십시오.

~<name>/force_reinit_new_goal_dist (double, default: 1.0)

    • 이전 목표가 지정된 값(미터) 이상으로 업데이트되면 궤적을 다시 초기화합니다(핫 스타트 건너뛰기).

~<name>/feasibility_check_no_poses (int, default: 4)

    • 매 샘플링 간격마다 타당성을 확인해야 하는 예측 계획의 어느 포즈까지 지정합니다.

~<name>/publish_feedback (bool, default: false)

    • 전체 궤적과 활성 장애물 목록이 포함된 플래너 피드백을 게시합니다(평가 또는 디버깅용으로만 활성화해야 함). 위의 출판사 목록을 참조하세요.

~<name>/shrink_horizon_backup (bool, default: true)

    • 자동으로 감지된 문제(예: 실행 불가능)의 경우 계획자가 일시적으로 기간(50%)을 축소할 수 있습니다. Shrink_horizon_min_duration 매개변수도 참조하세요 .

 

~<name>/allow_init_with_backwards_motion (bool, default: false)

    • true인 경우 목표가 로컬 비용 맵 내에서 시작보다 뒤에 있는 경우 기본 궤적이 뒤로 동작으로 초기화될 수 있습니다(이는 로봇에 후방 센서가 장착된 경우에만 권장됩니다).
~<name>/exact_arc_length (bool, default: false)
    • true인 경우 플래너는 속도, 가속도 및 회전율 계산에 정확한 호 길이를 사용하고(-> CPU 시간 증가), 그렇지 않으면 유클리드 근사가 사용됩니다.
~<name>/shrink_horizon_min_duration (double, default: 10.0)
    • 실현 불가능한 궤적이 감지된 경우 축소된 지평선의 최소 기간을 지정합니다( 축소된 지평선 모드를 활성화하려면 shrink_horizon_backup 매개변수 참조).

Obstacle Parameters

~<name>/min_obstacle_dist (double, default: 0.5)

    • 장애물로부터 원하는 최소 거리(미터)

~<name>/include_costmap_obstacles (bool, default: true)

    • 로컬 비용 맵의 장애물을 고려해야 하는지 여부를 지정합니다. 장애물로 표시된 각 셀은 포인트 장애물로 간주됩니다. 따라서 계산 시간이 늘어나므로 비용 맵의 매우 작은 해상도를 선택하지 마십시오. 향후 릴리스에서는 이러한 상황을 해결하고 동적 장애물에 대한 추가 API를 제공할 예정입니다.

~<name>/costmap_obstacles_behind_robot_dist (double, default: 1.0)

    • 로봇 뒤의 계획을 고려하여 점유된 로컬 비용 지도 장애물을 제한합니다(거리를 미터 단위로 지정).

~<name>/obstacle_poses_affected (int, default: 30)

    • 각 장애물 위치는 거리를 유지하기 위해 궤적에서 가장 가까운 포즈에 부착됩니다. 추가 이웃도 고려할 수 있습니다. 장애물 연관 전략이 inetic+에서 수정되었기 때문에 이 매개변수는 향후 버전에서 제거될 수 있습니다. Legacy_obstacle_association 의 매개변수 설명을 참조하세요 .

~<name>/inflation_dist (double, default: pre kinetic: 0.0, kinetic+: 0.6)

    • 페널티 비용이 0이 아닌 장애물 주변의 완충 구역입니다( 효과를 얻으려면 min_obstacle_dist 보다 커야 함). 무게 Weight_inflation 도 참조하세요 .

 

~<name>/include_dynamic_obstacles (bool, default: false)

    • 이 매개변수가 true로 설정되면 속도가 0이 아닌 장애물의 모션( ~/obstacles 주제에 대한 사용자 제공 장애물을 통해 제공되거나 costmap_converter 에서 얻음 )이 등속 모델을 통해 최적화 중에 예측되고 고려됩니다. 새로운
~<name>/legacy_obstacle_association (bool, default: false)
    • 최적화를 위해 궤적 포즈와 장애물을 연결하는 전략이 수정되었습니다(변경 로그 참조). 이 매개변수를 true 로 설정하면 이전/이전 전략으로 전환할 수 있습니다 . 기존 전략: 각 장애물에 대해 가장 가까운 TEB 포즈를 찾습니다. 새로운 전략: 각 테브 포즈에 대해 "관련된" 장애물만 찾습니다.
~<name>/obstacle_association_force_inclusion_factor (double, default: 1.5)
    • 비레거시 장애물 연관 전략은 최적화 중에 이산화된 궤적과 관련된 장애물만 연결하려고 시도합니다. 그러나 지정된 거리 내의 모든 장애물은 강제로 포함됩니다( min_obstacle_dist 의 배수로 ). 예를 들어 반경 2.0* min_obstacle_dist 내의 장애물을 고려 하려면 2.0을 선택합니다 . [이 매개변수는 Legacy_obstacle_association 매개변수가 false  경우에만 사용됩니다 .]
~<name>/obstacle_association_cutoff_factor (double, default: 5)
    • 장애물_association_force_inclusion_factor 를 참조하세요 . 그러나 [value]* min_obstacle_dist 배수 를 초과하는 모든 장애물은 최적화 중에 무시됩니다. 매개 변수 장애물_association_force_inclusion_factor 가 먼저 처리됩니다. [이 매개변수는 Legacy_obstacle_association 매개변수가 false  경우에만 사용됩니다 .]

The following parameters are relevant only if costmap_converter plugins are desired (see tutorial):

~<name>/costmap_converter_plugin (string, default: "")

    • 비용 맵 셀을 포인트/라인/다각형으로 변환하려면 플러그인 이름을 정의하세요. 모든 셀이 포인트 장애물로 처리되도록 변환을 비활성화하려면 빈 문자열을 설정하십시오.

~<name>/costmap_converter_spin_thread (bool, default: true)

    • true로 설정된 경우 비용 맵 변환기는 다른 스레드에서 콜백 대기열을 호출합니다.

~<name>/costmap_converter_rate (double, default: 5.0)

    • costmap_converter 플러그인이 현재 비용 맵을 처리하는 빈도를 정의하는 속도입니다(값은 비용 맵 업데이트 속도보다 훨씬 높으면 안 됩니다)[Hz].

Optimization Parameters

~<name>/no_inner_iterations (int, default: 5)

    • 각 외부 루프 반복 에서 호출되는 실제 솔버 반복 횟수입니다 . 매개변수 no_outer_iterations 를 참조하세요 .

~<name>/no_outer_iterations (int, default: 4)

    • 각 외부 루프 반복은 원하는 시간 해상도 dt_ref 에 따라 궤적의 크기를 자동으로 조정하고 내부 최적화 프로그램( no_inner_iterations 수행 )을 호출합니다. 따라서 각 계획 주기의 총 솔버 반복 횟수는 두 값의 곱입니다.

~<name>/penalty_epsilon (double, default: 0.1)

    • 엄격한 제약 조건 근사를 위해 페널티 함수에 작은 안전 여유를 추가합니다.

~<name>/weight_max_vel_x (double, default: 2.0)

    • 최대 허용 병진 속도를 만족시키기 위한 최적화 가중치

~<name>/weight_max_vel_theta (double, default: 1.0)

    • 최대 허용 각속도를 만족시키기 위한 최적화 가중치

~<name>/weight_acc_lim_x (double, default: 1.0)

    • 최대 허용 병진 가속도를 만족하기 위한 최적화 가중치

~<name>/weight_acc_lim_theta (double, default: 1.0)

    • 최대 허용 각가속도를 만족시키기 위한 최적화 가중치

~<name>/weight_kinematics_nh (double, default: 1000.0)

    • 비홀로노믹 기구학을 만족시키기 위한 최적화 가중치(기구학 방정식이 등식 제약 조건을 구성하므로 이 매개변수는 높아야 하며, 값이 1000이라고 해도 다른 비용에 비해 '원시' 비용 값이 작기 때문에 나쁜 행렬 조건을 의미하지는 않습니다.) .

~<name>/weight_kinematics_forward_drive (double, default: 1.0)

    • 로봇이 순방향(양의 이동 속도)만 선택하도록 강제하는 최적화 가중치입니다. 작은 가중치(예: 1.0)를 사용하면 여전히 뒤로 이동할 수 있습니다. 1000 정도의 값은 후진을 거의 방지합니다(그러나 보장할 수는 없습니다).

~<name>/weight_kinematics_turning_radius (double, default: 1.0)

    • 최소 회전 반경을 적용하기 위한 최적화 가중치(자동차형 로봇에만 해당)

~<name>/weight_optimaltime (double, default: 1.0)

    • 전환/실행 시간에 따른 궤적 축소를 위한 최적화 가중치

~<name>/weight_obstacle (double, default: 50.0)

    • 장애물과의 최소 거리를 유지하기 위한 최적화 가중치

~<name>/weight_viapoint (double, default: 1.0)

    • 경유 지점(각각 참조 경로)까지의 거리를 최소화하기 위한 최적화 가중치입니다. 버전 0.4의 새로운 기능

~<name>/weight_inflation (double, default: 0.1)

    • 인플레이션 페널티에 대한 최적화 가중치(작아야 함)

 

~<name>/weight_adapt_factor (double, default: 2.0)

    • 일부 특수 가중치(현재 Weight_obstacle )는 각 외부 TEB 반복(weight_new = Weight_old*factor)에서 이 계수에 의해 반복적으로 크기가 조정됩니다. 선험적으로 큰 값을 설정하는 대신 반복적으로 가중치를 늘리면 기본 최적화 문제의 수치 조건이 더 좋아집니다.

고유한 토폴로지의 병렬 계획

~<이름>/enable_homotopy_class_planning ( bool , 기본값: true)

  • 고유한 토폴로지에서 병렬 계획 활성화(여러 궤적이 동시에 최적화되므로 훨씬 더 많은 CPU 리소스 필요)

~<이름>/enable_multithreading ( bool , 기본값: true)

  • 서로 다른 스레드에서 각 궤적을 계획하려면 다중 스레딩을 활성화하세요.

~<이름>/max_number_classes ( int , 기본값: 4)

  • 고려되는 고유한 궤적의 최대 수를 지정합니다(계산 노력 제한).

~<이름>/selection_cost_hysteresis ( double , 기본값: 1.0)

  • 새 후보가 선택되기 위해 이전에 선택한 궤적을 작성해야 하는 궤적 비용을 지정합니다(new_cost < old_cost*factor인 경우 선택).

~<이름>/selection_obst_cost_scale ( double , 기본값: 100.0)

  • '최상의' 후보를 선택하기 위한 장애물 비용 조건의 추가 확장입니다.

~<이름>/selection_viapoint_cost_scale ( double , 기본값: 1.0)

  • '최상의' 후보를 선택하기 위한 경유지 비용 조건의 추가 확장입니다. 버전 0.4의 새로운 기능

~<이름>/selection_alternative_time_cost ( bool , 기본값: false)

  • true인 경우 시간 비용(시간 차이 제곱의 합계)이 총 전환 시간(시간 차이의 합계)으로 대체됩니다.

~<이름>/roadmap_graph_no_samples ( int , 기본값: 15)

  • 로드맵 그래프 생성을 위해 생성된 샘플 수를 지정합니다.

~<이름>/roadmap_graph_area_width ( double , 기본값: 6)

  • 무작위 키포인트/경유지는 시작과 목표 사이의 직사각형 영역에서 샘플링됩니다. 해당 지역의 너비를 미터 단위로 지정합니다.

~<이름>/h_signature_prescaler ( double , 기본값: 1.0)

  • 호모토피 클래스를 구별하는 데 사용되는 스케일 내부 매개변수( H-signature )입니다. 경고: 이 매개변수만 줄이세요. 로컬 비용 맵에 장애물이 너무 많아 문제가 관찰되는 경우 너무 낮게 선택하지 마세요. 그렇지 않으면 장애물을 서로 구별할 수 없습니다(0.2<  <=1).

~<이름>/h_signature_threshold ( double , 기본값: 0.1)

  • 실수 부분과 복소 부분의 차이가 모두 지정된 임계값보다 작은 경우 두 개의 H-서명은 동일한 것으로 간주됩니다.

~<이름>/obstacle_heading_threshold ( double , 기본값: 1.0)

  • 탐색 시 장애물(장애물)을 고려하기 위해 장애물 방향과 목표 방향 사이의 스칼라 곱 값을 지정합니다.

~<이름>/visualize_hc_graph ( bool , 기본값: false)

  • 독특한 궤적 탐색을 위해 생성된 그래프 시각화(rviz의 마커 메시지 확인)

~<이름>/viapoints_all_candidates ( bool , 기본값: true)

  • true인 경우 서로 다른 토폴로지의 모든 궤적이 경유지 세트에 연결되고, 그렇지 않으면 초기/글로벌 계획과 동일한 토폴로지를 공유하는 궤적만 연결됩니다( test_optim_node 에는 영향을 주지 않음 ). 버전 0.4의 새로운 기능

 

~<이름>/switching_blocking_기간 ( double , 기본값: 0.0)

  • 새 동등 클래스로의 전환이 허용되기 전에 만료되어야 하는 기간(초)을 지정하십시오.

기타 매개변수

~<이름>/odom_topic ( 문자열 , 기본값: "odom")

  • 로봇 드라이버 또는 시뮬레이터에서 제공하는 주행 거리 측정 메시지의 주제 이름입니다.

~<이름>/map_frame ( 문자열 , 기본값: "odom")

  • 글로벌 계획 프레임(정적 지도의 경우 이 매개변수는 일반적으로 "/map"으로 변경되어야 합니다.

로드맵

현재 미래에 계획된 일부 기능 및 개선 사항입니다. 기여를 환영합니다!

  • 피할 수 없는 장애물이 있는 경우(예: 목표에 매우 가까운 장애물)에 대한 안전 기능을 추가하고 개선합니다.
  • 적절한 탈출 동작 구현.
  • 플래너가 여러 로컬 최적 솔루션 사이를 오가는 경우(토폴로지 기반이 아니라 노이즈 발생 등으로 인해)에 대한 개선/솔루션입니다.
728x90