- 자율주행 실험을 실제 도로에서 하기 힘드므로 시뮬레이터를 이용하여 실제와 유사한 환경에서 자율주행 알고리즘을 테스트 가능
- 가상 카메라, 가상 라이다 등 모든 센서와 액추에이터, 자동차모델, 도로맵 등 라이브러리제공 -> 실제 고가의 센서 및 로봇이 필요없이 가상공간에서 맘대로 실험해볼수 있음
- ROS bridge기능 제공하여 ROS에서도 바로 제어가능 -> 0.10.0버전부터 ROS 토픽 생성기능 내장되어 ROS bridge 필요없음
- 실제와 거의 같은 환경에서 다양한 알고리즘 테스트 가능
1. Carla
https://carla.org/
2. Three Methods of Vehicle Lateral Control: Pure Pursuit, Stanley and MPC Theory
https://dingyan89.medium.com/three-methods-of-vehicle-lateral-control-pure-pursuit-stanley-and-mpc-db8cc1d32081
https://www.shuffleai.blog/blog/Three_Methods_of_Vehicle_Lateral_Control.html
github
https://github.com/casper-auto/carla_trajectory_controller
Youtube
https://www.youtube.com/watch?v=O5npCPhOF-s
3. carla 0.10.0 설치방법
carla 0.10.0 버전 설치 -> UE5 사용한 최신 버전 -> map의 화질 대폭개선됨
https://carla-ue5.readthedocs.io/en/latest/start_quickstart/
4. carla example code실행방법
carla server 실행 -> python generate_traffic.py(차량, 보행자 생성해줌) -> 원하는 예제코드실행
rtx 3070에서 약 7~9fps 처리속도 나옴
rtx 4070 ti super에서 30fps 이상 나옴
5. camera 영상을 파일로 저장하는 예제
예제코드에서 카메라 프레임을 jpg로 저장(my_automatic_control.py) -> 여러개의 jpg를 mp4로 변환저장(my_jpgs2mp4.py) -> 영상또는 동영상을 실습에 사용
6. lidar 데이터를 파일로 저장하는 예제
3d point cloud 데이터 처리를 위해 open3d 사용
https://www.open3d.org/
7. Data collection tools for CARLA Simulator.
carla 시뮬레이터에서 다양한 센서로부터 훈련용 데이터를 수집하는 소스코드들
예를 들어, carla lidar 센서에서 측정된 데이터를 KITTI dataset 포맷으로 저장해주는 예제 등
https://github.com/KevinLADLee/carla_dataset_tools
https://github.com/SIAT-INVS/CarlaFLCAV
https://wandb.ai/makaveli/3D-Perception-Results/reports/3D-Perception-in-Carla-Simulator--VmlldzoyNTYwMTcy
8. Carla 라이브러리
https://carla-ue5.readthedocs.io/en/latest/python_api/#carla.BoundingBox
-> Carla 환경의 모든 객체의 3차원 바운딩 박스정보를 알수있음(로컬좌표계 또는 월드좌표계)
https://carla-ue5.readthedocs.io/en/latest/ref_sensors/#semantic-lidar-sensor
-> 라이다 시멘틱 라이다 정보를 제공, 여기서 라이다센서의 위치와 포인트클라우드 데이터를 얻을수 있음
-> 위의 3차원 바운딩박스정보를 이용하여 월드좌표계와 라이다좌표계의 사이의 좌표변환을 이용하면 라이다좌표계에서 객체의 3d 바운딩 박스정보를 얻을수 있음
-> 포인트 클라우드 데이터의 3d bbox label(ground truth)을 얻을수 있음
비슷한 방식으로 carla 라이브러리를 이용하면 신호등의 바운딩박스정보와 신호등 상태정보를 얻을수 있을것 같음