.. Cover Letter

공부#Robotics#자율주행/autoware

2. Planning simulation

BrainKimDu 2023. 4. 11. 17:44

 

 

Planning simulation - Autoware Documentation

Planning simulation Preparation Download and unpack a sample map. You can also download the map manually. gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1499_nsbUbIeturZaDj7jhUownh5fvXHd' unzip -d ~/autoware_map ~/autoware_map/samp

autowarefoundation.github.io

Preparation

docker 입장

sudo rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map --  autoware_build:0.1

참고

  • 저장을 합니다. 새로운 터미널을 열고 컨테이너 ID에 맞춰서 저장합니다.
sudo docker ps
sudo docker commit 1ce72113dec4 autoware_build:0.1
  • 컨테이너에 대한 접근은 다음을 통해 가능합니다.
sudo rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map --  autoware_build:0.1
  • 혹시나 이미지를 제거한다면 다음의 명령어를 사용합니다.
sudo docker rmi -f 이미지주소

docker 안에서 다음을 다운로드 합니다.

gdown -O ~/autoware_map/ 'https://docs.google.com/uc?export=download&id=1499_nsbUbIeturZaDj7jhUownh5fvXHd'
sudo apt-get install unzip
unzip -d ~/autoware_map ~/autoware_map/sample-map-planning.zip

Basic simulations

autoware를 실행합니다.

도커로 설치한 저희는 조금 다릅니다. 그 후 다음을 입력하여 Autoware를 실행합니다.

source install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit

자동차의 초기 위치를 지정합니다.

  1. 2D Pose estimate 버튼을 클릭하거나 P버튼을 누릅니다.
  2. 왼쪽버튼을 홀드해서 드래그해서 자동차가 바라보는 방향으로 지정시킬 수 있습니다.
  3. 주의 사항으로는 자동차가 바라보는 방향이 도로의 방향과 일치해야한다고 합니다. 우리가 사용하는 맵은 좌측통행인거 같습니다.
 

자동차를 목표지점까지 보냅시다.

  1. 2D Goal Pose 버튼을 클릭하거나 G 버튼을 클릭합니다.
  2. 왼쪽버튼으로 홀드해서 도착하면 바라볼 방향까지 지정합니다.
  • 자동차가 보기에 갈 수 있어야 경로가 생성됩니다.

자동차를 움직입니다.

자동차를 움직이는 방법은 두 가지가 있습니다. ros2 명령어를 통해서 보내거나, AUTO버튼을 클릭하거나 두 가지 입니다.

AUTO 버튼을 눌러서 움직이게 하기

  • AUTO버튼은 왼쪽 Operation Mode에 있습니다.

이번에는 ROS명령어를 통해서 움직이게 해보겠습니다. 사전 세팅

  1. 우선 autoware를 종료합니다.
  2. Docker 상에서 bashrc를 수정하면 됩니다.
sudo apt update
apt-cache search nano
sudo apt install nano
nano ~/.bashrc
  1. 다음을 추가합니다. X는 자신의 숫자로 변경합니다.
alias sb="source ~/.bashrc; echo \"bashrc is reloaded.\""
export ROS_DOMAIN_ID=X

3. 다음을 입력합니다.

source ~/.bashrc

4. 우선 서로 ROS상에서 연결되었는지 확인해야합니다. Docker 터미널에서는 autoware를 실행합니다. 그리고 새로운 터미널(Local)에서 foxy(20.04기준) ros2 topic list로 확인합니다.

 

서로 연결되었습니다. 현재까지의 상황을 이미지로 저장해주면 편리합니다. 우선 autoware를 종료합니다.

  • 저장을 합니다. 새로운 터미널을 열고 컨테이너 ID에 맞춰서 저장합니다.
sudo docker ps
sudo docker commit 1ce72113dec4 autoware_build:0.버전에 맞게 
  • 컨테이너에 대한 접근은 다음을 통해 가능합니다.
sudo rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map --  autoware_build:0.1
  • 혹시나 용량 부족 문제가 발생한다면 이전의 이미지를 제거할 수 있습니다.
sudo docker images
sudo docker rmi -f 이미지주소

Error response from daemon: conflict: unable to delete b38b062ea19a (cannot be forced) - image has dependent child images 오류가 뜨는데,

아무래도 docker상에서도 용량 조절을 위해서 조치를 취하는 것 같습니다.

다시 ROS2로 이동 명령을 내려봅시다.

  1. 자동차의 초기 위치를 지정하고 목적지를 설정합니다.
     

sudo rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map --  autoware_build:0.3
source install/setup.bash
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode {}

새로운 터미널 docker로 접속하고 다음의 명령어를 입력합니다.

  • 정상 작동합니다.

주차 시나리오

  1. 자동차의 목적지를 주차구역으로 지정합니다.

2. 자동차를 움직입니다.

자기가 알아서 주차까지 합니다.

Advanced Simulations

장애물을 놓는 경우

  • 2D Dummy ~~ 버튼을 누르면 장애물을 원하는 곳곳에 놓을 수 있습니다.
  • 속도를 setting할 수 있습니다. Tool Properties → 2D Dummy Car/Pedestrian 패널에서 속도 매개 변수를 변경하면 매개 변수를 변경한 후 배치된 개체에만 영향을 줍니다.
  1. 우선 자동차와 목적지를 설정합니다

2. 속도를 0으로 지정한채로 배치하면 자동차를 제자리에 배치할 수 있습니다.

 

3. 그 후에 다음 버튼을 클릭하고 위치시킵니다.

 

 

4. 움직이는 자동차는 velocity를 수정하고 배치합니다.

 

 

5. 삭제는 다음을 참고합니다.

근데 삭제가 안됩니다.

  • 이런식으로 차가 가리게 할 수도 있습니다.

 

보행자가 다가온 상황인데.. 보행자는 차를발견하면 안멈추네요. 이런 부분도 설정을 해야하는 것 같습니다.

3. Interactive 버튼에 대해서는 documentation설명이 이상합니다. 조금 어려움이 있습니다.

신호등 설정하기

  1. Panels->Add new Panel 하고 TrafficLightPublishPanel을 클릭

 

밑에 다음과 같은게 생성됩니다.

2. TrafficLightPublishPanel에서 ID나 신호등의 색을 지정할 수 있습니다. 신호등은 맵에서 각각 고유의 ID를 가지고 있습니다. 402번 신호등이 이번 루트에 있는 신호등 같습니다.

3. set버튼을 눌러봅니다.

4. publishing 하면 다음처럼 변경됩니다.

 

5. 현재는 신호등의 ID가 나타나지 않습니다. 다음처럼 합니다. Map > Lanelet2VectorMap > Namespaces

다음을 체크하고 MAP을 체크했다 해제하면 ID가 나오게 됩니다.

'공부#Robotics#자율주행 > autoware' 카테고리의 다른 글

3. Rosbag replay simulation  (0) 2023.04.11
1. autoware 듀토리얼  (0) 2023.04.11
ubuntu 20.04, 22.04 autoware 설치하기  (0) 2023.03.28