1. (CARLA Autoware Bridge) Bridge 제작에 필요한 ROS 세팅
이 프로젝트는 CARLA-Autoware Bridge의 완성을 적는 것이 아니라, 이렇게 만들면 Bridge가 가능하다라는 것을 증명하는 프로젝트임을 알립니다.
Ubuntu 22.04의 경우 어려움이 조금 있어서 20.04를 추천합니다.
제 컴퓨터 사양은 다음과 같으며, 전체적인 소프트웨어 요약은 다음과 같습니다.
System Requirement
Hardware
- RTX 3080
- CPU I7 9700KF
- RAM 32GB
Software
- Ubuntu 20.04
- Nvidia-Driver 530
- CUDA 11.6
- cuDNN 8.7.0
- ROS2 Foxy
- Autoware Universe Docker Humble
- Carla 0.9.13
이를 어떻게 설치하는지는 생략합니다. 따로 찾아서 설치하실 수 있을 것이라 생각됩니다.
(실무리눅스) 12. 우분투 22.04에 ROS2 Humble 설치하고 rviz와 gazebo까지 설치하기 (tistory.com)
(실무리눅스) 13. ubuntu22.04 CUDA, Cudnn설정, Pytoch 다운로드 (tistory.com)
(실무리눅스) 14. 우분투에 docker 설치하기 (tistory.com)
ubuntu 20.04, 22.04 autoware 설치하기 (tistory.com)
(Ubuntu) 우분투에 CARLA 설치하는 방법 및 활용법 (tistory.com)
ROS-CARLA Bridge 사용해보기 (tistory.com)
이 글에서는 CARLA와 Autoware를 ROS에서 사용하기 위해 어떻게 세팅해야하는가를 다룹니다.
ROS-CARLA Bridge Setting
ROS Domain Setting
- CARLA를 ROS와 연결하기 위해서는 CARLA-ROS Bridge가 필요합니다. 설치과정에서 CARLA-ROS Bridge는 이미 설치를 완료했습니다. 또한 Local에 설치했기 때문에 bashrc 파일을 수정해주면 됩니다.
alias foxy="source /opt/ros/foxy/setup.bash; ros_domain; echo \"ROS2 foxy is activated.\""
alias sb="source ~/.bashrc; echo \"bashrc is reloaded.\""
alias ros_domain="export ROS_DOMAIN_ID=13"
alias car_ros_bridge="foxy; source ~/carla-ros-bridge/install/local_setup.bash; echo \"carla-ros-bridge is activated.\""
설치확인
총 5개의 터미널을 준비합니다.
터미널 A : Carla 실행
cd /opt/carla-simulator
./CarlaUE4.sh
터미널 B : ROS-Carla-Bridge 실행
car_ros_bridge
ros2 launch carla_autoware_bridge carla_ros_bridge.launch.py
터미널 C : ego vehicle 생성
car_ros_bridge
ros2 launch carla_spawn_objects carla_spawn_objects.launch.py
터미널 D : carla_manual_control 패키지로 ego vehicle 제어
car_ros_bridge
ros2 launch carla_manual_control carla_manual_control.launch.py
터미널 E : Foxy 환경만 불러와서 Topic을 확인
foxy
ros2 topic list
CARLA가 실행되고 다음처럼 Topic을 잘 받아오는 것을 확인하면 끝입니다.
Autoware-ROS Setting
ROS Domain Setting
- Docker로 autoware에 진입합니다.
sudo rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map -- autoware_build:0.1
설치를 잘 따라왔다면 image이름을 autoware_build:0.1 으로 설정하였을 것입니다.
- docker에서 bashrc를 수정해주어야합니다. 그러기 위해 nano 에디터를 설치해줍시다.
sudo apt update
sudo apt upgrade
sudo apt upgrade 도중 오류 발생합니다. (실행에는 문제가 없습니다) 4월 16일자로 sudo apt upgrade 중 지속적으로 오류가 발행하고 있습니다. 해결 방법을 찾지 못했습니다.
bashrc를 수정합니다.
sudo apt install nano
nano ~/.bashrc
밑처럼 되도록 수정합니다.
export PATH="$PATH:/root/.local/bin"
source /opt/ros/humble/setup.bash
echo "ROS2 Humble is activated."
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
export ROS_DOMAIN_ID=13
source install/setup.bash
echo "autoware is activated."
다음처럼 나오면 됩니다.
source ~/.bashrc
Carla Autoware map Download
- 바로 ROS topic을 확인할 수 있으나 Carla Vector Map을 미리 다운로드 받도록 하겠습니다.Bitbucket다음의 파일을 Git cloen 할 수 있으나 파일이 제대로 다운로드가 되질 않습니다.
- 또한 위의 링크의 lanenet Vector map의 경우 신호등이 없습니다. 그러므로 신호등이 추가되어 있는 파일을 다음의 링크에서 다운로드 합니다. autoware-contents - Google Drive
maps/point_cloud_maps 의 Town01.pcd 파일을 다운로드 받습니다.
maps/vector_maps/lanelet 의 Town01_light.osm 파일을 다운로드 받습니다.
다음과 같이 두 개의 파일을 다운로드 하였다면 carla_map/carla-town01 폴더를 생성하고 파일을 넣은 후에 이름을 변경합니다.
osm파일의 이름은 다음과 같습니다.
lanelet2_map.osm
pcd파일의 이름은 다음과 같습니다.
pointcloud_map.pcd
이제 docker로 전송을 해주어야합니다. 우선 container의 ID값을 알아내야합니다. 새로운 터미널을 열고 다음을 입력합니다.
sudo docker ps
그리고 그 ID로 전송합니다.
sudo docker cp /home/ducar/carla_map/* nifty_lumiere:/root

다음의 위치에 존재하면 됩니다.
여기까지 진행상황을 저장합니다. Container ID를 알아내야합니다.
sudo docker ps
다음으로 저장합니다.
sudo docker commit 1ce72113dec4 autoware_build:0.2
다음에 docker로 들어올 때는 다음을 입력하면 됩니다.
sudo rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map -- autoware_build:0.2
설치확인
autoware를 실행시켜서 carla의 map이 나오는지 확인해봅니다.
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/carla-town01 vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
새로운 터미널에서 ros2 topic이 조회되는지 확인합니다.
- 참고로 Autoware를 종료해도 꺼지지 않는 현상이 있습니다. 그럴때는 터미널을 종료하고 sudo docker ps 를 한 후 직접 종료합니다. (종료하지 않으면 여러 문제를 야기합니다.)
sudo docker stop 494b518c4eb0