팀 프로젝트 #4 (자율주행로봇) 개발 개요서 | |||
팀 번호 / 팀 명 | 2팀 / 로봇 가족 | ||
프로젝트 주제 | 실내와 실외 자율주행 배송로봇 | ||
프로젝트 기간 | 2023년 2월 14일 ~ 2023년 3월 3일 ( 일) | ||
프로젝트 목표 | Part 1. 자율주행 실외 배송로봇 구현 (엄마로봇) Part 2. 자율주행 실내 배송로봇(아기로봇) 구현과 fleet management 구현 Part 3. (통합) 실내외 통합 인터페이스 구현 |
||
소요 기술 | 딥러닝, ROS2, VIO SLAM, YOLOv5, Fleet Management, Sensor Fusion, Camera Calibration, Robot Control, Unity, AWS MySQL, OpenCV, SLAM | ||
■ 프로젝트 목표 및 주요 기능 ➢ 프로젝트 목표 - AI 로봇 산업에서 가장 주목받는 응용 분야는 당연 배송로봇이다. 배송로봇은 자율주행 기술과 로봇 기술이 융합된 분야로, 실내 배송로봇과 실외 배송로봇으로 나뉜다. 우리는 배송로봇을 직접 구현하면서 현재 기업들이 겪는 어려움을 이해하고, 이에 대한 해결책을 제시하는 것을 목표로한다. ➢ 프로젝트 구체화 - 프로젝트의 스토리는 다음과 같다. 물류창고에서 출발한 엄마로봇(실외택배로봇)이 목적지에 도착하면, 엄마로봇에 탑승하고 있던 2대 이상의 아기로봇(실내택배로봇)이 물건을 들고, 건물 내부의 목적지에 배송을 완료하고 엄마로봇으로 복귀한다. ➢ 프로젝트 구현 - 실외 배송로봇과 실내 배송로봇을 모두 구현하는 것을 목표로 하고 있기 때문에 다른 프로젝트보다 많은 인원이 투입된다. 투입된 인원은 실내와 실외를 구분하지 않고, 각자 원하는 분야나 기술이 있다면 언제든지 합류하여 프로젝트를 진행하도록 한다. - 실외로봇파트(모선, 엄마로봇)의 경우에는 이미지 세그멘테이션과 Visual SLAM 기술을 통해 Localization을 하고, 경로를 생성하여 차로를 따라간다. 신호등이나 보행자 등의 객체는 YOLO를 통해서 검출하고, 이 때 피하거나 정지할 수 있도록 한다. - 실내로봇파트(아기로봇) 같은 경우에는 실내용 SLAM 기술과 Localization 기술을 통해 경로를 생성하며, 실내에서도 장애물을 회피하거나 정지할 수 있어야 한다. 실내배송로봇이 목적지까지 도달하면 다음 목적지로 이동한다. 이동을 마치면 실외배송로봇으로 복귀를 한다. 여기서 중요한건 여러 대의 로봇을 관제하는 Fleet Management (이)다. - 실외로봇과 실내로봇을 관제하는 인터페이스도 필요하다. 이는 APP으로 구현할 수도 있고, 디지털 트윈을 통해 구현할 수도 있을 것이다. APP을 사용한다면 Fluter를, 디지털트윈이라면 Unity를 사용하여 구현한다. |
|||
■ 프로젝트 개발 환경 |
|||
연번 | 구분 | 내용 | |
1 | 운영체계 | Linux(Ubuntu22.04) ,docker | |
2 | 로봇 프레임 워크 | ROS2 Humble & raspberryPi | |
3 | 실외 배송로봇 딥러닝 | YOLO, Image Segmentation Visual SLAM, OpenCV |
|
4 | 실내 배송로봇 | SLAM, Sensor Fusion, Fleet Management, OpenCV |
|
5 | 센서 | Lidar, Ultrasonic Sensor, | |
6 | 카메라 | raspberryPi camera | |
7 | ROBOT | PinkBot(raspberryPi, Arduino), Ubiquity Robot |
|
8 | 개발언어 | 파이썬, Xacro, C++ | |
9 | 데이터 베이스 | AWS, MySQL | |
■ 프로젝트 수행계획 | |||
프로젝트 운영 전략 |
- 실내 파트와 실외 파트를 동시에 진행하기 때문에 8인이 서로 협력하여 프로젝트 진행 - 치밀한 설계를 통해 프로젝트를 구현한다. - 여기서 치밀한 설계라함은 소프트웨어 개발에서 사용되는 설계 방법을 직접 적용한다. 첫 번째, 우리가 고객이 되어 요구사항을 제시한다. 두 번째, 요구사항을 소프트웨어적으로 번역하여 실현가능성을 판가름한다. 세 번째, 하나의 거대한 프로젝트를 여러 태스크로 분할하여 각자 자신있는 태스크를 맡아서 진행한다. - 팀원은 실내나 실외파트 중에 하나를 전담하는 것이 아니라 모든 태스크 중에서 흥미 있는 태스크를 맡아서 진행한다. 또한 다른 사람의 태스크에도 관심을 가지게 되면, 서로 협력하며 진행할 수 있게 한다. - 팀별로 각자의 태스크가 마무리되면, 진행한 태스크를 보고하고, 팀원과 피드백한다. 그리고 새로운 태스크를 선택하여 프로젝트를 진행한다. - 유비쿼티 로봇의 경우 100Kg의 중량을 버틸 수 있게 설계되어 있기 때문에, 유비쿼터 로봇을 사용할 때, 안전사고에 유의하여야 한다. |
||
연번 | 내용 | 수행계획 | 일정 |
■ 예상 프로젝트 결과물 - 강의실의 제약사항으로 인해 모든 과정은 실내에서 진행해야하는 제약이 있다. 그렇기에 강의실을 실내로 하고, 복도를 실외로 본다. 또한 실외에 사용하는 로봇은 모든 것이 실외라 가정하고 진행한다. 이 보고서에서 실외라 함은 복도를 가리키며, 실내라 함은 교실을 가리킨다. - 유비쿼티 로봇(엄마로봇)은 100kg의 하중을 버틸 수 있다. 이 로봇에 PinkBOT(아기로봇)을 2~3대 올린다. 우리는 프로젝트 시연날 복도에 차선이 그려진 장판을 깔고, 아두이노로 만든 LED신호등을 세워둔다. 실외에서는 SLAM을 진행하지 않기 때문에 visual SLAM 기술을 통해 실시간으로 MAP을 생성하고 Image Segmentation을 통해 차로를 따라간다. 중간에 신호등을 탐지(YOLO)하는 순간 신호등의 색을 구별하여 빨간불에 멈추고 초록불에 앞으로 나아간다. 전방에 사람이 있거나 장애물이 나타는 경우 긴급 정지 할 수 있어야하며, 만약 시간이 남는다면, 여러 대의 로봇이 함께 주행하는 환경을 구축할 수도 있을 것이다. - 유비쿼티 로봇(엄마로봇)이 실내로 들어오면 카메라가 아르코마커를 인식하고 정차한 후 유비쿼터 로봇에 탑습한 2~3대의 로봇(아기로봇)이 각각의 목적지를 향해 출발한다. 실내는 미리 SLAM 으로 만든 MAP을 이용하여 경로를 생성하고, 목적지를 향해 이동한다. 목적지는 1곳이 아니며 여러 곳을 목적지를 이동한 후 유비쿼티 로봇으로 복귀한다. 여기서 중요한 점은 Fleet Management이다. 이 부분은 직접 코딩을 구현을 해야하며 여러 로봇의 교통 흐름을 관제한다. - 인터페이스 구현에는 APP이 될 수 있고, Unity를 통한 디지털 트윈이 될 수 있을 것이다. 관제상황을 직접 모니터링할 수 있으며, 교통 흐름에 대한 세팅이 가능하며, 디지털트윈으로 구현할 경우 3D환경에서 로봇들의 움직임을 확인할 수 있을 것이다. ■ 기대효과 - AI 로봇에서 가장 주목받는 분야인 배송로봇의 전반적인 부분을 직접 구현해봄으로써 배송로봇에 대한 이해도 증가. - 실내와 실외를 모두 구현해봄으로써 실내와 실외에서의 배송로봇 구현의 차이점 이해 - 배송로봇 구현에서 기업이 겪고 있는 어려움을 이해하고, 이에 대한 해결책을 고민해보거나 제시 - 로봇과 딥러닝과의 시너지효과를 직접 알아봄으로써 로봇에서 사용되는 딥러닝 기술을 이해 - 실제 소프트웨어 회사가 하나의 거대한 프로젝트를 설계하는 과정을 따라해봄으로써 소프트웨어 설계능력 향상 및 팀원과의 팀워크 향상 - ROS2에 대한 이해도 확립 및 다양한 우분투 개발환경(18.04~22.04까지)에서 발생하는 dependency 를 해결하는 능력 향상 - 팀원들과 함께 어려움을 해결하는 트러블슈팅과정 이해 |
뭐 이렇게 개요서가 작성되었다.
이번 프로젝트에서는 따로 공부했던 UML과 프로젝트 설계에 관한 팁들을 전반적으로 활용하여 진행을 해보고자한다.
일단 우리 프로젝트에 사용되는 로봇은
이전 글에서도 언급한 적이 있는거 같은데
이렇게 생긴 로봇과
Ubiquity Robotics | Accelerate Your Robot Application Today
강사님께서 소유하고 있으시다는 유비쿼티 로봇을 흔쾌히 빌려주셨다.
유비쿼티 로봇은 최대 100kg의 하중을 버틸 수 있게 설계되어있다고 한다.
그래서 노트북을 올리고 직접 딥러닝을 시킬까도 고민중..
여튼 작동 과정을 그림으로 설명하면 이런 Flow를 보여준다.
물어보니까 교실밖으로 나가면 출석을 안한 것으로 처리한다는 뭐시기 규정이 있다고 해서
밖으로 나갈 수가 없다. 그래서 복도를 실외라고 치는 것이다.
거기다가 복도옆에는 또 강의실이 있어서 이것도 조금 문제가 되는데
이건 뭐.. 어떻게든 되겠지
그래서 복도를 달리는 로봇은 실외
강의실을 달리는 로봇은 실내로봇이 된다.
대충 복도는 저렇게 그림을 그린 장판같은것을깔아서 이동을 시킬 예정이고
중간에 신호등도 만나고, 사람도 나타나고 할 예정이다. 쨋든 목적지에만 안전하게 도착하는게 목적이되는거니까
학원밖 복도에서 해도 괜찮지 않을까 싶기도한데
모선(엄마로봇)이 아기로봇을 대리고 자율주행을 한다는 컨셉이다.
강의실에서는 아기로봇이라 이름을 붙였는데
조그마한 로봇이 된다.
이 상태에서 번호가 적힌 책상으로 물품을 배달하고
2대 이상의 로봇이 돌아다니는 과정을
Fleet Management 로 관제하는 것을 목표로 한다.
문제는 또 있지..
이를 인터페이스로 어떻게 나타낼 것인가?
뭐 일단 이런 느낌의 프로젝트를 기획하게 되었다.
원래 나의 계획은 무인 카트 였는데
그에 대한 구상은 나중에 알려 주도록 하고
다들 배송로봇에 대한 이해관계가 딱 맞아 떨어져서 바로 배송로봇으로 낙찰?되었다.
근데 문제는 인원이 너무 많다는 점과 효율적으로 팀을 분리해야한다는 점
거기다가 주제가 겹치니 누구는 실내를 하고 누구는 실외를 하면서 주제를 좀 다양화해야하지 않겠느냐는 점이였는데
그냥 하나로 합쳐서 원하는 부분에 투입되는 과정으로 구현을 해보자. 이렇게 되버리고
강사님도 차라리 뒤에 프로젝트를 이거랑 합쳐서 시간을 오래 가져가자고 하셔서
그래 뭐 그러면 해봐 하고 8인이 2가지 주제를 한 번에 구현하는 프로젝트를 진행하게 되었다.
모두의 니즈를 맞출 수 있는게 미래형 택배시장에서 모선에서 여러대의 자그마한 로봇들이 배송을 하는 모습이 있었는데
이를 한 번 구현해보는 걸 목표로 잡았다.
딥러닝도 들어가고, 뭐시기도 들어가고 하니까 모두의 니즈가 맞아떨어졌다.
설계 책에서 배운건 팀원과 책상으로 회의를 해보라고 해서 책상을 활용했는데
생각보다 방향성 잡기도 쉽고, 힘든건 바로바로 그 자리에서 논의할 수 있어서 좋았다.
다음에는 프로젝트 구현전략에 대해 이야기 해보면서 어떤 일이 있는지 한 번 알아보도록 하겠습니다.
'ㅇ 프로젝트 > TEAM_실내외배송로봇' 카테고리의 다른 글
6. 터틀봇 4도 포기하게 되었다. / 핑크봇을 위한 맵을 만들었다. (0) | 2023.03.06 |
---|---|
5. 터틀봇 4를 움직여보자 (0) | 2023.02.27 |
4. 터틀봇 4 초기 구동하기 (2) | 2023.02.23 |
3. 프로젝트 진행 1일차 진행상황 정리 (0) | 2023.02.15 |
2. 프로젝트 요구사항 설계 및 소프트웨어적 해석 (0) | 2023.02.07 |