Capstone Design | Agile mode switching through vehicle self-determination :: 2.본론_하드웨어

Final Report

Agile mode switching through vehicle
self-determination

Ⅰ. 본론

   1. 하드웨어

– TurtleBot3

실제 자동차를 이용하여 프로젝트를 진행하는 것은 비용 및 시간적인 측면에서 어렵다고 판단하였다. 이에 이번 프로젝트를 위해 하드웨어로 ‘TurtleBot3 Waffle Pi’를 사용하였다.

– SBC

SBC로는 Raspberry Pi 3 B+를 사용하였다. 프로젝트 시작 전 SBC의 성능이 가장 많이 걱정했던 부분 중 하나였다. 그러나 TurtleBot과의 비용, 호환성 등을 고려하여 기존의 SBC를 활용하는 것으로 결정하였다.
자율주행 프로젝트를 진행하며 Lane detection과 같은 기능 구현을 위해서는 여러가지 소프트웨어의 설치가 필요했다. 이에 시간이 지날수록 SBC의 속도가 급격히 저하되어 불편함을 겪었다. 프로젝트 중 SBC가 죽는 상황도 종종 발생했다. 이 때문에 초기화 후 다시 운영체제를 깔아줘야 했고, 작업의 효율성이 떨어졌다.
또한 성능이 부족하여 여러 가지 오픈소스코드나 딥러닝 알고리즘을 활용해보는 것에 한계가 있었다. 사용할 수 있는 딥러닝 프레임워크 역시 굉장히 제한적이어서 아쉬움이 남는다.
이를 통해 프로젝트 진행 시 SBC와 같은 핵심부품의 성능이 프로젝트 진행의 효율성, 결과물의 질 등에 꽤나 많은 영향을 줄 수 있음을 느꼈다.

  1.1 Sensor setup

– Dynamixel setup

터틀봇 waffle pi의 경우 3개의 층으로 이루어져 있다. Actuator의 경우 터틀봇의 가장 하단인 1층에 위치하여 세팅 작업에 다소 불편함을 느꼈다. 또한 Actuator 사용을 위해서는 여러 가지 설정들을 해주어야 했는데, 처음이라 조금 헷갈리는 부분도 있었다. 아래는 Actuator 세팅과정에 대한 설명이다.

    1.1.1 Actuator사용을 위한 Set up과정

1) Install Arduino zip file
2) Extract zip file
3) Create folder for Arduino file. (Move the Arduino file into created folder)
4) cd ~/tools/Arduino-1.8.10
5) $ ./install.sh
6) gedit ~/.bashrc
7) export PATH=$PATH:$HOME/tools/Arduino-1.8.10
8) $ arduino

Dynamixel을 못 찾고 있는 상태
Dynamixel을 못 찾고 있는 상태
성공적으로 Dynamixel을 찾은 상태
성공적으로 Dynamixel을 찾은 상태

마커스라는 Launch 파일을 통해 모터를 움직여보며 Dynamixel setting이 제대로 되었는지 확인하는 과정을 거쳤다.

– Lidar setup

[Turtlebo3]
$ roslaunch turtlebot3_bringup turtlebot3_lidar.launch

[Remote PC]
$ export TURTLEBOT3_MODEL=waffle_pi
$ roslaunch turtlebot3_bringup turtlebot3_remote.launch
$ rosrun rviz rviz -d `rospack find turtlebot3_description`/rviz/model.rviz

Lidar setting 성공
Lidar setting 성공
– Camera

Raspberry Pi Camera Module v2.1 카메라의 초점을 맞추기 위해 렌즈 부분을 직접 돌려주었다. 카메라 부분이 굉장히 작았기 때문에 수동으로 초점을 맞추는 작업은 불편함이 있었다.

– LDS

LiDAR의 경우 장애물이 인식되지 않는 상황에도 멈춰서는 경우가 발생했다. 이는 LiDAR성능에 따라 인식할 수 있는 거리에 한계가 있기 때문이었다. 장애물이 일정 거리 이내에 들어와야 인식이 가능했고, 이에 코드 수정을 통해 이러한 문제상황을 해결했다.

– Arduino, OpenCR

터틀봇과 실제 자동차 간의 축척을 활용하여 도로 환경을 구성하였다. 이를 통해 가능한 실제와 유사하고, 안전하게 프로젝트를 진행하였다.

  1.2 도로환경 구상과정

도로환경 구상과정 회의내용

1.실제 자동차
– 차폭
⦁ 중형: 약 190 cm
⦁ 대형 차, 대형 버스: 약 249cm
– 차선 폭: 5 ~ 20cm
– 주행 도로 폭
⦁ 최소: 300cm
⦁ 평균: 350cm
– 도로 비율
⦁ 차선 폭 : 차폭의 0.08배 (차선 폭 20cm, 차 폭 250cm 기준)
⦁ 주행 도로 폭 : 차폭의 1.4배 (도로 주행 폭 350cm, 차 폭 250cm 기준)
– 교통 표지판 실측: 약 60cm

2. 터틀 봇
– 차폭: 약 30cm
– 차선 폭: 30 * 0.03 = 3.36cm → 3.5cm
– 주행 도로 폭: 30 * 1.4 = 42cm
– 교통표지판 예상크기: 약 7.5cm ~ 10cm

3. 신호등 규격
– 3색 신호등폭: 106.5cm
– 신호등 예상규격
⦁ 1.78배(중형차 기준) = 53.4 cm
⦁ 2.33배(대형차 기준) = 69.9cm
⦁ 2.3.3 신호등 희망 높이(카메라 인식가능 거리 기준) = 15cm ~ 18cm(max)

  1.3 하드웨어 제작과정

    1.3.1층 제작

– 1층 구성

: 배터리, 바퀴, Actuator

    1.3.2 2층 제작

– 2층 구성

: OpenCR, Arduino

    1.3.3 3층 제작
– 3층 구성

: Lidar, Camera

Leave a Reply

Your email address will not be published. Required fields are marked *