Search

Scrum 1:Steering 및 Accelaration 구현 방향성

Category
Scrum
Status
참여자
상위 테스크
하위 테스크
날짜
2023/07/13
생성 일시
2024/01/04 04:57

 처리한 테스크

차량이 Ackermann Steering을 따른다는 전제 하에 개발 진행
추가적인 내용은 아래 링크 참조
애커만 스티어링에 따른 조향각 연산 필요
애커만 기하학 모델 활용 예
1.wheel_base(WB):자동차의 전륜 초점과 후륜 초점 사이의 거리(수직거리)
2.steer_ratio(SR):자동차의 스티어링 휠 회전에 대한 전륜 회전의 비율
3.radius (R): 차량이 회전하는 원의 반지름
요구사항
from math import atan
atan→역탄젠트 연산자
angle = atan(self.wheel_base / radius) * self.steer_ratio
Python
복사
선속도와 각속도, 현재속도에 대한 관계성 이용
개발 방향성으로 현재 속도와 선속도에 따라 각속도를 수정하고 최대 허용 스티어링 각도기반으로
각속도를 제한
각속도에 해당하는 조향 각도를 계산하고 반환하거나
각속도가 거의 0인 경우 조향 각도를 0으로 설정하여 반환
이 부분이 차량 컨트롤적인 성능적인 부분에 영향을 많이 줄 것이라 예상
차량 스티어링 각도를 자주 게산해서 차량을 최대한 주행 코스에 맞게 운용하는가
혹은 조금 오차를 주더라도 연산량을 줄이는가 등 실제 차량 주행을 통해
제한 범위 수정 요구
선속도(linear_velocity)
차량이 얼마나 빨리 직선 방향으로 움직이는가?
경로 추종을 위해 차량이 도달해야하는 목표 속도
각속도(angular_velocity)
차량이 얼마나 빨리 회전하는가?
차량의 회전 방향 및 속도에 대한 정보를 제공하며,
차량이 목표 지점에 더 정확하게 도달 할 수 있도록 함
현재 속도(curren_velocity)
현재 차량의 속도
실제 속도와 목표 선속도 사이의 차이로 accelaration 구현
현재 속도는 실제 imu를 통해 받아온 현재 차량의 속도를 의미하고
선속도는 차량이 목표하는 속도라 이해
이때 현재 속도와 선속도의 차이에 따라 가속 및 브레이크 값 조정
현재 속도가 낮은 상태에서 복잡한 회전을 수행하는 경우 차량은 더 완만한 차량 회전 속도가 필요한데 현재 속도가 그 역할을 수행하기 위한 장치

 처리 중인 이슈

스티어링과 액셀레이션 개발은 정말 빠르면 1주내에도 끝날 수 있을 것으로 보이나
추후 가상환경에서 제어할 방안을 모색하는것이 필요함
추가적으로 코딩적으로 어려운 부분은 없을거라 예상이 되나 역학을 공부해야하는 아이러니한 상황발생

 공유할만한 내용

라이브러리 설치 명령어
pip install filterpy pip install pid
Python
복사