Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
338,95 KB
Nội dung
ĐẠ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 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 năm 2021 MỤC LỤC Giới thiệu đề tài .4 Các kiến thức/công nghệ tảng Xây dựng ứng dụng .7 3.1 Tổng quan khảo sát ứng dụng liên quan 3.2 Phân tích, thiết kế, cài đặt phần mềm 3.2.1.1 Phân tích, thiết kế yêu cầu phần mềm 3.2.2.1 Các bên liên quan – Stakeholders .9 3.2.2.2 Các actors 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 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 hình .27 3.3 Các áp dụng Arcore unity 27 Thiết kế Kiểm thử 28 Kết luận hướng phát triển 29 Tài liệu tham khảo 30 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 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 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 hội kinh doanh cho 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 em sẽgiúp cho 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 tạinhà\phịngcủahọchỉbằngcácthiếtbịMobilecótíchhợp cơng nghệ AR 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 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 thịtrườngvàtự suy diễn 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 triển khai CÁC KIẾN THỨC/CÔNG NGHỆ NỀN TẢNG 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 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 UE hoặcUnity, bạncóthểtùybiến thư việnđểsửdụng frameworkcủamình sẽphảitựtìmhiểutừđầunhững nguyên lýcủa AR đểtriển khai enginehoặcframeworkcủabản thân 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 Camera Config: hỗtrợ Developer chỉnhsửa camera, cungcấpcácthông tin 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 ARcoretạo để Developer sửdụngđịnhnghĩamặtphẳngngoàiđờithực qua Camera Unity Unity “cross- flatform game engine” tạmhiểu 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 PC, consoles, thiết bị di độngvà 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 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, 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 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 – sốrấtkhiêmtốn so vớinhữnggì engine nàymanglại XÂY DỰNG ỨNG DỤNG 3.1 Tổng quan khảosátcácứngdụng liên quan Khảosát AppStore Trên thịtrườngthìchỉcóphầnmềmthiếtkếbằng AR IKEA làsửdụngđượcvànóvẫn chưa phổbiếnvớingườidùngphổ thơng cóqítngườibiếtđếnnó Mục tiêu em làphầnmềmnàysẽtạocảmgiác cũngdùngđượcvàdễtiếpcậnđểmởrộngtiềm 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 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 Yêucầuchứcnăng Yêu cầu REQ-1 REQ-2 REQ-3 Trọngsố ưu tiên Mô tả Phầnmềm cho phépkháchhànglựamónđồnộithấtcầnthiết Phầnmềm cho phépkháchhàngpháthiệnmặtphẳngcần trang tríđồnộithất Phầnmềm cho phépngườidùngđặtmónđồnộithấtmuốn trang trí lên mặtphẳngxuấthiện REQ-4 REQ-5 REQ-6 REQ-7 REQ-8 REQ-9 Phầnmềm cho phépkháchhàng xem danh sáchcácmónđồnộithấthiệncó Phầnmềm cho phépkháchhàngthay đổitừnộithấtdướiđất sang tường Phầnmềm cho phépkháchhàngđiềuchỉnhvịtrícủanộithất Phầnmềm cho phépkháchhàngđiềuchỉnhhướngcủanộithất Phầnmềm cho phépkháchhàngxóa nộithấtthiếtkế khơng mong muốn Phầnmềm cho phépkháchhàngchụplạimànhình sau đãthiếtkế 3.2.1.3 Yêu cầu phi chức Yêu cầu REQ-10 REQ-11 Trọngsố ưu tiên Mô tả Ngườidùngcầncómộtthiếtbị tương thíchvới AR Ngườidùngphảicómạngđểtảiphầnmềmtừap pstore 3.2.1.4 Yêucầugiaodiện Yêu cầu Trọngsố ưu tiên Mô tả REQ-12 REQ-13 REQ-14 REQ-15 Phầnmềmcócácnútđểđổi sang mónnộithấtcầnthiếtkế Phầnmềmcónútđểxóamónnộithấtthiếtkế khơng mong muốn Phầnmềmphảicónútchụplạimànhìnhđãthiết kế MànhìnhphảicónútđểđổithiếtkếgiữaMặtđất vàMặttường Đặctả yê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ế không gian thực UC-4 Kháchhàng Thiếtkế không ưng ý vàmuốnxóavậtđãđặt mặtphẳng khơng gian thực UC-5 Kháchhàng Thiếtkếưng ý UC-6 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ế 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 mặtphẳng khơng gian thực– đểthiếtkếlại UC-6: Thiếtkế ưng ý lưu lạithiếtkếbằngcáchchụpmànhình- đểlưu lạithiếtkếbằngcáchchụpmànhình 10 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 Ngườidùngtiếptụcthiếtkế Dòngsựkiệnkhác Các yê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 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 Kháchhàngchọnnộithấtđểthiếtkếtrên UI Ngườidùngcóthểđặtnộithấtmìnhđãchọn (Dịngsựkiệnkhác: Phầnmềm khơng thể truy cập sởdữliệu.) Dịngsựkiệnkhác Phầnmềm khơng thể truy cập 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 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 Ngườidùngbấmvào UI xóanộithấtđãthiếtkế Phầnmềmxóanộithấtđãthiếtkếgần 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 Kháchhàngbấmnútchụpmànhình 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 ở 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 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ụngtheoyêucầ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 Canvas đểthiếtkế UI, Camera control,cáchệthống scripting 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 THIẾT KẾ KIỂM THỬ 4.1 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 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kếtquảđạtđược HọctậpđượccáchsửdụngARcore Họctậpđượccác nguyên lýthiếtkếmộtphầnmềm AR Họctậpđượccác công nghệUnityđểpháttriểnmộtphầnmềmandroid Phầnmềmcógiátrịsửdụngkểcả cho ngườimới 5.1.1.1 Hạnchế Khơng cóđủthời gian đểpháttriển thêm Khơng cóđồngđộiđểbànbạc, có ý kiếnkhách quan Khơng cótàiliệuphổ thơng cácnghiệpvụkhác Khơng deploy lên Appstorevì khơng đủkhả chi phí Phầnmềmcịn tương đối sơ sài chưa thểgọilàhoànchỉnh 5.1.1.2 Hướngpháttriển Pháttriểncácchức phụgiúpcảithiệntrảinghiệmcủangườidung Hồnthiệncácchức chínhđểđảmbảochấtlượngsảnphẩm Thêm thắtcácmodelnộithấtđể đa dạnghóasảnphẩm TÀI LIỆU THAM KHẢO 6.1 6.2 Arcore: https://www.developers.google.com/ar/ https://developers.google.com/ar/develop/unity/quickstartandroid Unity: https://unity.com/ https://docs.unity3d.com/Manual/index.html https://assetstore.unity.com/ 26 27 ... 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ế... REQ-14 REQ-15 Phầnmềmcócácnútđểđổi sang mónnộithấtcầnthiếtkế Phầnmềmcónútđểxóamónnộithấtthiếtkế khơng mong muốn Phầnmềmphảicónútchụplạimànhìnhđ? ?thiết kế MànhìnhphảicónútđểđổithiếtkếgiữaMặtđất... đổitừnộithấtdướiđất sang tường Phầnmềm cho phépkháchhàngđiềuchỉnhvịtrícủanộithất Phầnmềm cho phépkháchhàngđiềuchỉnhhướngcủanộithất Phầnmềm cho phépkháchhàngxóa nộithấtthiếtkế khơng mong muốn Phầnmềm