.. Cover Letter

ㅇ 프로젝트/TEAM_Carla-Autoware-bridge

3. (CARLA Autoware Bridge) Carla에서 차를 움직였을때 Autoware에 표시 되도록 연결하기

BrainKimDu 2023. 4. 30. 05:25

이 프로젝트는 CARLA-Autoware Bridge의 완성을 적는 것이 아니라, 이렇게 만들면 Bridge가 가능하다라는 것을 증명하는 프로젝트임을 알립니다.

 

해당 코드의 converting 과정

carla_autoware_bridge/getting-started.md at master · Robotics010/carla_autoware_bridge · GitHub

CARLA에서 전송하는 토픽

  • Carla의 자동차(ego_vehicle)의 Odometry 정보를 구독하여 /carla/ego_vehicle/velocity_status 토픽으로 발행한다.
    • 다음의 topic은 자동차의 속도에 관한 정보를 담고 있습니다.
  • Carla의 자동차(ego_vehicle)의 status 정보를 구독하여 /carla/ego_vehicle/steering_status 토픽으로 발행한다
    • 다음의 topic은 자동차의 steering에 대한 정보를 담고 있습니다. (조향각? 헨들)
  • 자동차의 lidar 정보
    • 해당 topic을 autoware에 맞게 가공하는 것인데, 작동하지 않습니다.

Autoware에서 전송하는 토픽

  • Carla의 자동차(ego_vehicle)를 움직이는 토픽을 발행합니다. topic의 이름은 /carla/ego_vehicle/vehicle_control_cmd입니다.

 

들어가기 전

 

Carla_Autoware_Bridge

  • Workspace 폴더를 하나 만듭니다. 저는 bridgews라고 이름 지었습니다.
  • 폴더 내부에 src폴더를 만듭니다. 그 내부에 3가지 패키지를 다운로드 해야합니다.
git clone https://github.com/autowarefoundation/autoware_msgs
git clone https://github.com/carla-simulator/ros-bridge.git
git clone https://github.com/Robotics010/carla_autoware_bridge.git

 

Autoware의 경우 추가적으로 세팅을 해주어야합니다.

bridge의 documentation의 지시대로 다음을 따라합니다.

sudo rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map --  autoware_build:0.2
cd src/universe/autoware.universe/launch/tier4_planning_launch/launch/scenario_planning/
nano lane_driving.launch.xml
cd src/universe/autoware.universe/launch/tier4_control_launch/launch/
nano control.launch.py

실행

  • 이제 터미널이 6개 필요합니다.
  • 주의 사항으로는 하나하나 로딩이 완료된 후 진행합니다.

Carla실행

터미널 A

cd /opt/carla-simulator
./CarlaUE4.sh

터미널 B

car_ros_bridge
# bashrc에서 지금의 bridge로 경로를 변경하십쇼
ros2 launch carla_autoware_bridge carla_ros_bridge.launch.py

터미널 C

car_ros_bridge
ros2 launch carla_autoware_bridge carla_autoware_ego_vehicle.launch.py

터미널 D

car_ros_bridge
ros2 launch carla_manual_control carla_manual_control.launch.py

터미널 E

car_ros_bridge
ros2 run carla_autoware_bridge carla_autoware_bridge

Autoware실행

ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/carla-town01 vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

 

Rviz(Autoware) 세팅

 

  • LiDAR를 연결합니다. converting과정이 있었는데, 작동을 하지 않습니다. 그래서 carla에서 보내는 lidar 토픽을 구독해보았는데, 생각보다 잘 나옵니다.
  • Add를 눌러서 By topic에서 rgb_view의 camera를 추가하면 camera정보를 받아올 수 있으며

radar_front를 추가하면 전방 radar에 대한 값을 받아올 수 있습니다.

 

  • Views에서 Target Frame을 ego_vehicle로 변경합니다.

 

  • 그러면 연결이 완료됩니다. 우선 이상태로 ctrl + S 눌러 저장을 해주고 autoware를 끄고 저장을 합니다.
  • Container ID를 알아내야합니다. 새로운 터미널에서

다음으로 저장합니다.

sudo docker commit 1ce72113dec4 autoware_build:0.3

 
 

사용방법

 

  • 이 상태에서 2D Pose Estimate로 자동차의 위치를 맵 아무곳에나 지정합니다.
  •  
    그러면 자동차가 새로운 위치에 스폰됩니다. 그 후에 2D Goal Pose로 움직였으면 하는 곳의 위치를 찍습니다.
  • AUTO 버튼을 누르면 자동차가 이동을 시작합니다.

현재는 수치상의 오류 Github에서 converting 하는 과정에서의 오차가 있는 것으로 보입니다. 속도와 steering은 모두 carla와 autoware에 정상적으로 나타나나 우선은 carla와 autoware의 연결을 증명하고, 이 수치를 조정하는 것은 이 이후에 정밀하게 조정을 하면 될 것으로 보입니다.

또한 라이다는 이상없이 작동하는 것으로 보이나, 육안으로만 확인한 결과이기 때문에 부정확할 수 있습니다. 전방 레이더는 문제없이 작동하는 것으로 보입니다.