ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Phần mềm thiết kế nội thất bằng AR
Sử dụng công nghệ ARcore
Môn: Đồán2
Thành viên: NguyễnQuốc Nam Sang – 17520976
Giảngviênhướngdẫn:ThSi.HoàngVănHà
Lớp: SE122.L11
Tp Hồ Chí Minh,Tháng 1 năm 2021
1
MỤC LỤC
1.
Giới thiệu đề tài.................................................................................................................4
2.
Các kiến thức/công nghệ nền tảng............................................................................5
3.
Xây dựng ứng dụng.........................................................................................................7
3.1.
Tổng quan khảo sát các ứng dụng liên quan................................................7
3.2.
Phân tích, thiết kế, cài đặt phần mềm............................................................7
3.2.1.1. Phân tích, thiết kế yêu cầu phần mềm........................................................7
3.2.2.1. Các bên liên quan – Stakeholders.................................................................9
3.2.2.2. Các actors và mục tiêu....................................................................................10
3.2.2.3. Các usecase.........................................................................................................10
Mô tả tổng quan.....................................................................................10
3.2.2.3.1. Sơ đồ Use Case.......................................................................12
3.2.2.3.2. Đặc tả Use Cases....................................................................13
3.2.2.4. Sơ đồ Sequence..................................................................................................19
3.2.2.4.1. Sơ đồ Sequence cho UC-2 – Tìm kiếm mặt phẳng..................19
3.2.2.4.2. Sơ đồ Sequence cho UC-3 – Thay đổi danh mục.....................20
3.2.2.4.3. Sơ đồ Sequence cho UC-5 – Xóa nội thất đã đặt.....................21
3.2.2.4.4. Sơ đồ Sequence cho UC-6 – Chụp màn hình...........................22
3.2.2.5. Sơ đồ Activity.......................................................................................................23
3.2.2.5.1. Sơ đồ Activity cho UC-2 – Tìm kiếm mặt phẳng......................23
3.2.2.5.2. Sơ đồ Activity cho UC-2 – Thay đổi danh mục........................24
3.2.2.5.3. Sơ đồ Activity cho UC-2 – Chọn nội thất.................................25
3.2.2.5.4. Sơ đồ Activity cho UC-2 – Xóa nột thất đã đặt........................26
3.2.2.5.5. Sơ đồ Activity cho UC-2 – Chụp màn hình...............................27
3.3.
Các áp dụng chính của Arcore và unity........................................................27
2
4.
Thiết kế Kiểm thử...........................................................................................................28
5.
Kết luận và hướng phát triển.....................................................................................29
6.
Tài liệu tham khảo..........................................................................................................30
3
1. GIỚI THIỆU ĐỀ TÀI
Tên đềtài: Phầnmềmthiếtkếnộithấtbằng AR sửdụng công nghệARcore
Lído chọnđềtài:
Vớisựpháttriển cơng nghệ liên tục như hiện nay thìthịtrườngnàocũngphải liên
tụcápdụng cơng nghệmớiđểcạnh tranh vàpháttriển, làmchủthịtrường.
Vàcơng nghệ AR chínhlàmộtmỏvàng chưa được khai thác,
nếpdụngvàođờisốngsẽcórấtnhiều cơng dụngmạnhmẽ,
giúpcảithiệncuộcsốngxãhội, tạonhiều cơ hội kinh doanh hơn cho các công ty
biếttậndụng công nghệmớilạ, mạnhmẽnày
Vớiphầnmềmthiếtkếnộithấtbằng AR của em sẽgiúp cho các cơng ty
designhoặccáccửahàngbánhàngnộithấtápdụng cơng nghệđểtriển khai
nhữngsảnphẩmcủamình cho kháchhàng ngay
tạinhà\phịngcủahọchỉbằngcácthiếtbịMobilecótíchhợp cơng nghệ AR trong
camera.
Tổng quan cácvấnđềchính:
Bàitốn: Sửdụng cơng nghệ AR đểthiếtkếmộtphầnmềmcótínhứngdụng
trong cuộcsốnghoặc cho xãhội.
Giớihạn/phạm vi: Những quy trìnhứngdụng,
nghiệpvụcủaphầnmềmđượctìmhiểutừnhữngphầnmềm trên
thịtrườngvàtự suy diễn ra với tư cáchlàmộtngườidùngsảnphẩm
Cácnội dung nghiên cứu/thựchiện: Nghiên cứucác quy
trìnhnghiệpvụvàápdụng cơng nghệARvàcác cơng nghệ liên quan
khácđểtriển khai đượcmộtphầnmềmhồnchỉnh
Kếtquảhướngtới: Mộtphầnmềmvàcógiátrịsửdụng khi triển khai.
4
2. CÁC KIẾN THỨC/CÔNG NGHỆ NỀN TẢNG
1. ARcore Introduction
ARcorelàmột thư việnopensourcecủagooglenhằmgiúp cho
cácdevelopercóthểtriển khai cơng nghệ AR vàoứngdụngcủamìnhmà khơng
phải nghiên cứu khoa họcvàcáchọcthuật liên quan khác.Thư viên
nàygiúpcácdevelopercóthểtìmhiểu hơn vềcác ngun lýthiếtkế AR
vàcáchướng liên quan đếnAR.Khisửdụng thư
việnthìbắtbuộcphảixàicácframework như UE hoặcUnity, bạncóthểtùybiến
thư việnđểsửdụng trên frameworkcủamình nhưng
sẽphảitựtìmhiểutừđầunhững nguyên lýcủa AR đểtriển khai trên
enginehoặcframeworkcủabản thân
2. ARcore
ARcorelàmộtthưviệngiúpcác Developer tíchhợp AR vơphầnmềmcủamình.
Vìnólàthưviện open source
nênsẽkhơngcócácchứcnăngcụthểmàchỉcócácchứcnăngđadụngđểcóthểtriển
khai AR trêncácnềntảngkhácnhau.
CáctínhnănghiệntạimàARcorecungcấpcho developer:
Anchor: Khi ARcore update mơitrườngxungquanhthìnhững object
sẽcóhiệuứngtrơiđivà anchor giúpgiữ object
tạichỗtrongvịtrítươngđốivớithếgiớihiệntại.Chúng ta dùng anchor
đểđảmbảotrảinghiệmchongườidùngvàtínhchânthậtcủaphầnmềmcủa
chúng ta.
Camera Config: hỗtrợ Developer chỉnhsửa camera, cungcấpcácthơng
tin như CPU vàGPU.Lớpnàygiúp Developer
điềuchỉnhkhảnăngnhậnbiếtchiềusâucủa camera, FPS củacamera,…
Config: cho Developer
khảnăngchỉnhlạicáchiệunăngkhácnhaucủaARcorenhưPlaneFindingMo
de(phươngpháptìmkiếmmặtphẳng),UpdateMode(chỉnhsửahành vi
củaSession.Update()),…
Plane:Lớpmặtphẳng do ARcoretạo ra để Developer
sửdụngđịnhnghĩamặtphẳngngoàiđờithực qua Camera.
3. Unity
5
Unity là một “cross- flatform game engine” tạmhiểu là công cụ pháttriển
game đanềntảngđượcpháttriểnbởi Unity Technologies. Game engine
nàyđượcsử dụngđể pháttrển game trên PC, consoles, thiết bị di độngvà
trên websites.
Chứcnăngcốtlõiđadạng bao gồm: cungcấpcơngcụdựnghình (kếtxuấtđồhọa)
chocáchìnhảnh 2D hoặc 3D, cơngcụvậtlý (tínhtốnvàpháthiệnvachạm),
âmthanh, mãnguồn, hìnhảnhđộng, trítuệnhântạo, phânluồng, tạodị ng
dữliệuxửlý, quảnlýbộnhớ, dựngảnhđồthịvàkếtnốimạng. Nhờcócác engine
màcơngviệclàm game trởnêníttốnkémvàđơngiảnhơn.
Hỗtrợđanềntảng: Mộttrongcácthếmạnhcủa Unity3D
chínhlàkhảnănghỗtrợgầnnhưtồnbộcácnềntảnghiệncó bao gồm:
PlayStation 3, Xbox 360, Wii U, iOS, Android, Windows, Blackberry 10, OS
X, Linux, trìnhduyệt Web vàcả Flash. Nóicáchkhác, chỉvớimộtgói engine,
các studio cóthểlàm game chobấtkỳhệđiềuhànhnàovàdễdàng convert
chúng sang nhữnghệđiềuhànhkhácnhau. Đồngthời,
đâycũnglàgiảiphápchocác game online đanềntảng –
cóthểchơiđồngthờitrênnhiềuhệđiềuhành, phầncứngkhácnhaunhư Web, PC,
Mobile, Tablet….
Dễsửdụng: Unity3D được built trongmộtmơitrườngpháttriểntíchhợp,
cungcấpmộtPhầnmềmtồndiệnchocáclậptrìnhviên, từsoạnthảomãnguồn,
xâydựngcơngcụtựđộnghóađếntrìnhsửalỗi. Do
đượchướngđếnđồngthờicảlậptrìnhviênkhơngchunvà studio
chunnghiệp, nên Unity3D khádễsửdụng. Hơnnữa, đâylàmộttrongnhững
engine phổbiếnnhấttrênthếgiới,
ngườidùngcóthểdễdàngtìmkiếmkinhnghiệmsửdụngcủa “tiềnbối” trêncác
forum cơngnghệ.
Tínhkinhtếcao: Unity Technologies hiệncungcấpbảnmiễnphí engine
Unity3D chongườidùngcánhânvàcácdoanhnghiệpcódoanhthudưới 100.000
USD/năm. Vớibản Pro, ngườidùngphảitrả 1.500 USD/năm – một con
sốrấtkhiêmtốn so vớinhữnggì engine nàymanglại.
6
3. XÂY DỰNG ỨNG DỤNG
3.1. Tổng quan khảosátcácứngdụng liên quan
1.
Khảosát AppStore
Trên thịtrườngthìchỉcóphầnmềmthiếtkếbằng AR của IKEA
làsửdụngđượcvànóvẫn chưa phổbiếnvớingườidùngphổ thơng khi
cóqítngườibiếtđếnnó.
Mục tiêu của em làphầnmềmnàysẽtạocảmgiác ai
cũngdùngđượcvàdễtiếpcậnđểmởrộngtiềm năng
vàthịtrườngcủabánhàngonline
3.1.2 KhảosátcáccửahàngonlinenhưShoppee, Tiki,…
Cáccủahàng online
đasốkhơngcódanhmụcđồnộithấthoặccónhưngrấtít,
doanhthutừviệcbánđồnộithấtgầnnhưkhơngđángkể
Hiệntạingườidùngvẫndựadẩmvàocácthợthủcơnghoặc ra
cửahàngđểchọnlựasảnphẩmchomìnhchứkhơngđặtmuađồnộithất
qua Phầnmềm online
3.2. Phântích, thiếtkế, càiđặtphầnmềm
3.2.1.1. Phân tích, thiếtkế yêu cầuphầnmềm
3.2.1.2. ucầuchứcnăng
u cầu
REQ-1
REQ-2
REQ-3
Trọngsố ưu tiên
Mơ tả
6
Phầnmềm cho
phépkháchhànglựamónđồnộithấtcầnthiết
6
Phầnmềm cho
phépkháchhàngpháthiệnmặtphẳngcần
trang tríđồnộithất
5
Phầnmềm cho
phépngườidùngđặtmónđồnộithấtmuốn
trang trí lên mặtphẳngxuấthiện
7
REQ-4
REQ-5
REQ-6
REQ-7
REQ-8
REQ-9
8
Phầnmềm cho phépkháchhàng xem danh
sáchcácmónđồnộithấthiệncó
7
Phầnmềm cho phépkháchhàngthay
đổitừnộithấtdướiđất sang trên tường
7
Phầnmềm cho
phépkháchhàngđiềuchỉnhvịtrícủanộithất
7
Phầnmềm cho
phépkháchhàngđiềuchỉnhhướngcủanộithất
7
Phầnmềm cho phépkháchhàngxóa đi
nộithấtthiếtkế khơng như mong muốn
6
Phầnmềm cho
phépkháchhàngchụplạimànhình sau khi
đãthiếtkế
3.2.1.3. Yêu cầu phi chức năng
Yêu cầu
REQ-10
REQ-11
Trọngsố ưu tiên
Mô tả
7
Ngườidùngcầncómộtthiếtbị tương thíchvới
AR
8
Ngườidùngphảicómạngđểtảiphầnmềmtừap
pstore
3.2.1.4. ucầugiaodiện
u cầu
Trọngsố ưu tiên
Mơ tả
8
REQ-12
REQ-13
REQ-14
REQ-15
2.
8
Phầnmềmcócácnútđểđổi sang
mónnộithấtcầnthiếtkế
8
Phầnmềmcónútđểxóamónnộithấtthiếtkế
khơng như mong muốn
7
Phầnmềmphảicónútchụplạimànhìnhđãthiết
kế
7
MànhìnhphảicónútđểđổithiếtkếgiữaMặtđất
vàMặttường
Đặctả u cầuphầnmềm
3.2.2.1. Các bên liên quan – Stakeholders
Các bên liên quan (stakeholders) lànhữngngườicó liên quan
vàảnhhướngtớicácyếutốhìnhthành nên dựán. Các bên liên quan đếnđềtài bao
gồm:
Kháchhàng
3.2.2.2. Cácactors vàmụctiêu
Actors
Mục tiêu
Usecases
Kháchhàng
Bậtphầnmềmvàcấpquyềncamera
UC-1
Kháchhàng
Tìmkiếmmặtphẳngđểthiếtkếnộithất
UC-2
Kháchhàng
Thayđổidanhmụcnhữngmónđồnộithấttừmặt
đất sang mặttường
UC-3
Kháchhàng
Chọnnộithấtđểthiếtkế trong khơng gian thực UC-4
Kháchhàng
Thiếtkế khơng ưng ý vàmuốnxóavậtđãđặt
trên mặtphẳng khơng gian thực
UC-5
Kháchhàng
Thiếtkếưng ý
UC-6
9
vàlưulạithiếtkếbằngcáchchụpmànhình
3.2.2.3. Cácusecase
Mơ tảtổng quan
UC-1: Cấpquyềncamera – bắtđầusửdụngphầnmềm
UC-2: Tìmkiếmmặtphẳngđểthiếtkếnộithất– đểbắtđầuthiếtkếnộithất
UC-3: Thay đổi danh mụcnhữngmónđồnộithấttừmặtđất sang mặttường–
đểkháchhàngcóthểchọnđịahìnhthiếtkế
UC-4: Chọnnộithấtđểthiếtkế trong khơng gian thực–
đểkháchhàngcóthểchọnvàthiếtkếcácsảnphẩmmìnhthích
UC-5: Thiếtkế khơng ưng ý vàmuốnxóavậtđãđặt trên mặtphẳng khơng
gian thực– đểthiếtkếlại
UC-6: Thiếtkế ưng ý và lưu lạithiếtkếbằngcáchchụpmànhình- đểlưu
lạithiếtkếbằngcáchchụpmànhình
10
3.2.2.3.1.
Sơ đồUseCase
3.2.2.3.2. ĐặctảUseCases
Usecase “Cấpquyền camera”
TênUseCase
UC-1: Cấpquyền camera
11
Tómtắt
Chứcnăngcấpquyền camera
Dịngsựkiệnchính
1. Phầnmềmhiểnthịpopup địiquyền camera
2. Ngườidùngchấpnhận cho quyền camera
3. Phầnmềmkiểm tra vàchạychươngtrình
(Dịngsựkiệnkhác: Khơngchoquyền
camera).
4. Phầnmềmkhơng hoạtđộng
Dịngsựkiệnkhác
1. Khơngchoquyền camera
Phầnmềmhiểnthịlỗivàđịilạiquyền.
Các u cầuđặcbiệt
Khơngcó
TrạngtháiPhầnmềmtrướckhi
thựcthiện use case
Actor: Kháchhàng
TrạngtháiPhầnmềmsaukhith
ựchiện use case
Ngườidùngchophépquyềnvàcóthểtiếnhànhs
ửdụngphầnmềm
Điềukiện: khơngcó
Usecase “Tìmkiếmmặtphẳng”
TênUseCase
UC-2: Tìmkiếmmặtphẳng
Tómtắt
ChứcnăngTìmkiếmmặtphẳng
Dịngsựkiệnchính
1.
Phầnmềmqtcácđiểmấntượngtrênmặtphẳngcầ
nthiếtkế
2.Phầnmềmhiện UI đãpháthiệnđượcmặtphẳng
3.
Phầnmềmchophépngườidùngđặtđồlênmặtphẳn
gđãpháthiện
(Dịngsựkiệnkhác: Khơngkiếmđượcmặtphẳng).
4. Phầnmềmkhơngchophépngườidùngđặtđồvật
Dịngsựkiệnkhác
1.: Khơngkiếmđượcmặtphẳng.
Phầnmềmkhơngchophépngườidùngđặtđồvật
Các u cầuđặcbiệt
Khơngcó
TrạngtháiPhầnmềmtrước
khithựcthiện use case
Actor: Kháchhàng
TrạngtháiPhầnmềmsauk
hithựchiện use case
Ngườidùngpháthiệnmặtphẳngthànhcơngvàchop
hépđặtđồvậtlênmặtphẳng
Điềukiện: cấpquyền camera
12
Usecase “Thayđổidanhmụcnộithất”
TênUseCase
UC-3: Thay đổi danh mụcnộithất
Tómtắt
Kháchhàngcóthểthay đổi danh
mụcnộithất
Dịngsựkiệnchính
1.Ngườidùngchọngiữahaidanhmụctường
vàmặtđất
2. Ngườidùngtiếptụcthiếtkế
Dịngsựkiệnkhác
Các u cầuđặcbiệt
Khơngcó
TrạngtháiPhầnmềmtrướckhithự
cthiện use case
Actor: Kháchhàng
TrạngtháiPhầnmềmsaukhithực
hiện use case
Ngườidùngcóthểthay đổi danh
mụcnộithất
Điểmmởrộng
Khơngcó
Điềukiện: Khơngcó
Usecase “Chọnnộithất”
TênUseCase
UC-4: Chọnnộithất
Tómtắt
Kháchhàngcóthểchọnnộithấtđểthiếtkế
Dịngsựkiệnchính
1. Kháchhàngchọnnộithấtđểthiếtkếtrên
UI
2.
Ngườidùngcóthểđặtnộithấtmìnhđãchọn
(Dịngsựkiệnkhác: Phầnmềm khơng thể
truy cập cơ sởdữliệu.)
Dịngsựkiệnkhác
1. Phầnmềm khơng thể truy cập cơ
sởdữliệu: Lỗitronglúcchọn
13
=>ucầungườidùngnênliênhệvớinhóm
pháttriển.
Các u cầuđặcbiệt
Khơngcó
TrạngtháiPhầnmềmtrướckhithự
cthiện use case
Actor: Kháchhàng
TrạngtháiPhầnmềmsaukhithực
hiện use case
Ngườidùngthiếtkếvớiđồvậtđãchọn
Điểmmởrộng
Khơngcó
Điềukiện: Khơngcó
Usecase “Xóanộithấtđãthiếtkế”
TênUseCase
UC-5: Xóanộithấtđãthiếtkế
Tómtắt
Ngườidùngcóthểxóanộithấtđãthiếtkế
Dịngsựkiệnchính
1. Ngườidùngbấmvào UI xóanộithấtđãthiếtkế
2. Phầnmềmxóanộithấtđãthiếtkếgần
nhất
đây
Dịngsựkiệnkhác
Các u cầuđặcbiệt
Khơngcó
TrạngtháiPhầnmềmtrướckh
ithựcthiện use case
Actor: Kháchhàng
TrạngtháiPhầnmềmsaukhit
hựchiện use case
Ngườidùngxóavậtđặtsaihoặckhơngđúngmong
muốntrênmànhình
Điểmmởrộng
Khơngcó
Điềukiện: Khơngcó
14
Usecase “Chụpmànhìnhsaukhithiếtkế”
TênUseCase
UC-6:Chụpmànhìnhsaukhithiếtkế
Tómtắt
Kháchhàngcóthểchụpmànhìnhsaukhithiết
kế
Dịngsựkiệnchính
1. Kháchhàngbấmnútchụpmànhình
2.
Phầnmềmsẽchụpmànhìnhvàlưuvàomáycủ
akháchhàng
3.Khách hàngcóthể xem mànhìnhđãchụp
ở trong foldercủamáymình
Dịngsựkiệnkhác
Các u cầuđặcbiệt
Khơngcó
TrạngtháiPhầnmềmtrướckhith
ựcthiện use case
Actor: Kháchhàng
TrạngtháiPhầnmềmsaukhithự
chiện use case
Kháchhàngchụpmànhìnhvàcómànhìnhđót
rong folder củakháchhàng
Điểmmởrộng
Khơngcó
Điềukiện: đãcấpquyền
3.2.2.4. Sơ đồSequence
Các sơ đồsequence cho mộtsốUseCase quan trọng
15
3.2.2.4.1.
Sơ đồSequence cho UC-2 –Tìmkiếmmặtphẳng
16
3.2.2.4.2.
Sơ đồSequence cho UC-3 – Thayđổidanhmục
17
3.2.2.4.3.
Sơ đồSequence cho UC-5 – Xóanộithấtđãđặt
18
3.2.2.4.4.
Sơ đồSequence cho UC-6 – Chụpmànhình
19
3.2.2.5. Sơ đồActivity
3.2.2.5.1.
Sơ đồActivity cho UC-2 –Tìmkiếmmặtphẳng
20
3.2.2.5.2.
Sơ đồActivity cho UC-2 –Thayđổidanhmục
21
3.2.2.5.3.
Sơ đồActivity cho UC-2 –Chọnnộithất
22
3.2.2.5.4.
Sơ đồActivity cho UC-2 –Xóanộtthấtđãđặt
23
3.2.2.5.5.
Sơ đồActivity cho UC-2 –Chụpmànhình
3.3. CácápdụngchínhcủaArcore và unity
3.3.1.1. Arcore
SửdụngArcore plane finding
đểtìmkiếmmặtphẳngđểxửlýquytrìnhcủaphầnmềm
Arcore anchor
đểđảmbảonhữngvậtđượcđặtgiữvịtríđúngtheothờigianvàkhơngg
ianthực
Arcore session config đểđiềuchỉnh camera
vàứngdụngtheoucầu
Arcore Depth API đểnhậndiệnchiềusâucủakhơnggian
24
3.3.1.2. Unity
Đồánsửdụng Unity đểxâydựngmộtphầnmềm android
sửdụngđươccôngnghệ AR trênđiệnthoạicủangườidùng
Cáccôngnghệcủa unity như Canvas đểthiếtkế UI, Camera
control,cáchệthống scripting của unity, hệthốngquảnlý object
tồntạitrong scene vàcáccôngnghệkháccủa unity
nhằmphụcvụviệcpháttriểnphầnmềm
4. THIẾT KẾ KIỂM THỬ
4.1.
1.
2.
4.2.
4.3.
Môitrườngkiểmthử
Test laptop:
Unity editor 2020.1.17f
Internet LAN
Windows 10, chrome web
Ram 16gb, chip I7-7700HQ
Test Mobile:
Samsung S10e cóhỗtrợ AR
Camera trướckhơngcólỗi
Phầnmềm
Kếtquảthửnghiệm
Phầnmềmchạyđầyđủcácchứcnăng
Thửnghiệmtheousecasehồntồnkhơngcólỗi
Kếtquảsảnphẩm:
Sảnphẩmtươngđốiđầyđủchứcnăng,
cóthểlàmphânphốinếutiếnhànhthêmvàiquytrìnhthẩmđịnhvàsửach
ứcnăng
UI/UX nhìnđẹpmắt, thờithượng
Phầnmềmchạymượttrênmáy
25