Android NDK (C) এর জন্য ক্লাউড অ্যাঙ্করস ডেভেলপার গাইড

আপনার নিজের অ্যাপে ক্লাউড অ্যাঙ্কর কীভাবে ব্যবহার করবেন তা শিখুন।

পূর্বশর্ত

এগিয়ে যাওয়ার আগে নিশ্চিত করুন যে আপনি মৌলিক AR ধারণা এবং কীভাবে একটি ARCore সেশন কনফিগার করবেন তা বুঝতে পেরেছেন।

আপনি যদি ক্লাউড অ্যাঙ্করগুলিতে নতুন হন তবে নিশ্চিত করুন যে আপনি কীভাবে অ্যাঙ্কর এবং ক্লাউড অ্যাঙ্কর কাজ করে তা বুঝতে পারেন।

ARCore API সক্ষম করুন

আপনার অ্যাপে ক্লাউড অ্যাঙ্কর ব্যবহার করার আগে, আপনাকে প্রথমে আপনার অ্যাপ্লিকেশনে ARCore API সক্ষম করতে হবে।

সেশন কনফিগারেশনে ক্লাউড অ্যাঙ্কর ক্ষমতা সক্ষম করুন

একবার আপনার অ্যাপে ক্লাউড অ্যাঙ্করস কার্যকারিতা সক্ষম হয়ে গেলে, আপনার অ্যাপের এআর সেশন কনফিগারেশনে ক্লাউড অ্যাঙ্করস সক্ষমতাগুলি সক্ষম করুন যাতে এটি ARCore API-এর সাথে যোগাযোগ করতে পারে:

// Create a new ARCore session.
ArSession* session = NULL;
CHECK(ArSession_create(env, context, &session) == AR_SUCCESS);

// Create a session config.
ArConfig* config = NULL;
ArConfig_create(session, &config);
ArSession_getConfig(session, config);

// Enable Cloud Anchor mode.
ArConfig_setCloudAnchorMode(session, config,
                            AR_CLOUD_ANCHOR_MODE_ENABLED);

// Configure the session.
ArSession_configure(session, config);
ArConfig_destroy(config);

একটি ক্লাউড অ্যাঙ্কর হোস্ট করুন

ArSession_hostCloudAnchorAsync() এ একটি কল দিয়ে হোস্টিং শুরু হয়। ARCore ARCore API এ ভিজ্যুয়াল ডেটা, ডিভাইস পোজ এবং অ্যাঙ্কর পোজ আপলোড করবে। API তারপর একটি 3D বৈশিষ্ট্য মানচিত্র তৈরি করতে এই তথ্যটি প্রক্রিয়া করে, অবশেষে ডিভাইসে অ্যাঙ্করের জন্য একটি অনন্য ক্লাউড অ্যাঙ্কর আইডি ফেরত দেয়।

এছাড়াও আপনি ARCore ক্লাউড অ্যাঙ্কর ম্যানেজমেন্ট API ব্যবহার করে হোস্ট করা অ্যাঙ্করের জীবনকাল বাড়িয়ে দিতে পারেন।

একটি ক্লাউড অ্যাঙ্কর হোস্টিং সম্পূর্ণ করতে আপনার অ্যাপের এই পদক্ষেপগুলি অনুসরণ করা উচিত:

  1. ArSession_hostCloudAnchorAsync() কল করুন।
  2. কলব্যাকের জন্য অপেক্ষা করুন, অথবা এটি সম্পন্ন না হওয়া পর্যন্ত ক্রমাগত ভবিষ্যতের অবস্থা পরীক্ষা করুন।
  3. অপারেশন সফল হয়েছে কিনা তা নির্ধারণ করতে ফলাফলের অবস্থা পরীক্ষা করুন , অথবা ব্যর্থ হলে ত্রুটি কোড ব্যাখ্যা করুন।
  4. ফলাফল ক্লাউড অ্যাঙ্কর আইডি অন্যান্য ক্লায়েন্টদের সাথে শেয়ার করুন এবং ArSession_resolveCloudAnchorAsync() এর সাথে ক্লাউড অ্যাঙ্কর সমাধান করতে এটি ব্যবহার করুন।

বৈশিষ্ট্য পয়েন্ট ম্যাপিং মান পরীক্ষা করুন

ArFeatureMapQuality একটি প্রদত্ত ক্যামেরা পোজ থেকে আগের কয়েক সেকেন্ডে ARCore দ্বারা দেখা বৈশিষ্ট্য পয়েন্টের গুণমান নির্দেশ করে। উচ্চ মানের বৈশিষ্ট্যগুলি ব্যবহার করে হোস্ট করা ক্লাউড অ্যাঙ্করগুলি সাধারণত আরও সঠিকভাবে সমাধান করা হয়। একটি প্রদত্ত ক্যামেরা পোজের জন্য বৈশিষ্ট্য মানচিত্রের গুণমানের জন্য একটি অনুমান পেতে ArSession_estimateFeatureMapQualityForHosting() ব্যবহার করুন৷

মান বর্ণনা
INSUFFICIENT পূর্ববর্তী কয়েক সেকেন্ডে ভঙ্গি থেকে চিহ্নিত বৈশিষ্ট্য পয়েন্টগুলির গুণমান কম। এই অবস্থাটি নির্দেশ করে যে ARCore-এর সম্ভবত ক্লাউড অ্যাঙ্কর সমাধান করতে আরও অসুবিধা হবে৷ ব্যবহারকারীকে ডিভাইসটি সরাতে উত্সাহিত করুন যাতে তারা যে ক্লাউড অ্যাঙ্কর হোস্ট করতে চায় তার পছন্দসই অবস্থানটি বিভিন্ন কোণ থেকে দেখা যায়৷
SUFFICIENT পূর্ববর্তী কয়েক সেকেন্ডে ভঙ্গি থেকে চিহ্নিত বৈশিষ্ট্য পয়েন্টগুলির গুণমান ARCore-এর পক্ষে সফলভাবে একটি ক্লাউড অ্যাঙ্কর সমাধান করার জন্য যথেষ্ট, যদিও সমাধান করা ভঙ্গির যথার্থতা সম্ভবত হ্রাস পাবে। ব্যবহারকারীকে ডিভাইসটি সরাতে উত্সাহিত করুন যাতে তারা যে ক্লাউড অ্যাঙ্কর হোস্ট করতে চায় তার পছন্দসই অবস্থানটি বিভিন্ন কোণ থেকে দেখা যায়৷
GOOD পূর্ববর্তী কয়েক সেকেন্ডে পোজ থেকে চিহ্নিত বৈশিষ্ট্য পয়েন্টগুলির গুণমান ARCore-এর পক্ষে উচ্চ মাত্রার নির্ভুলতার সাথে একটি ক্লাউড অ্যাঙ্কর সফলভাবে সমাধান করার জন্য যথেষ্ট।

পূর্বে হোস্ট করা অ্যাঙ্কর সমাধান করুন

হোস্ট করা ক্লাউড অ্যাঙ্কর সমাধান করতে ArSession_resolveCloudAnchorAsync() কল করুন। ARCore API পর্যায়ক্রমে অ্যাঙ্করের 3D বৈশিষ্ট্য মানচিত্রের সাথে দৃশ্যের ভিজ্যুয়াল বৈশিষ্ট্যগুলিকে অ্যাঙ্করের সাথে তুলনা করে ব্যবহারকারীর অবস্থান এবং অভিযোজন নির্ণয় করে। যখন এটি একটি মিল খুঁজে পায়, তখন API হোস্ট করা ক্লাউড অ্যাঙ্করের ভঙ্গি ফিরিয়ে দেয়।

আপনি ক্রমানুসারে একাধিক ক্লাউড অ্যাঙ্করগুলির জন্য সমাধানগুলি শুরু করতে পারেন৷ এক সময়ে 40টি পর্যন্ত সমবর্তী ক্লাউড অ্যাঙ্কর অপারেশন থাকতে পারে।

একটি অপারেশন বাতিল করুন বা একটি ক্লাউড অ্যাঙ্কর সরান৷

একটি মুলতুবি থাকা ক্লাউড অ্যাঙ্কর অপারেশন বাতিল করতে ArFuture_cancel() এ কল করুন। ট্র্যাকিং বন্ধ করতে এবং ইতিমধ্যেই সমাধান করা ক্লাউড অ্যাঙ্কর ভুলে যেতে ArAnchor_detach() এ কল করুন। অ্যাঙ্করের রেফারেন্স অবশ্যই আলাদাভাবে ArAnchor_release() কল করে প্রকাশ করতে হবে।

ক্লাউড অ্যাঙ্কর অপারেশনের ফলাফলের অবস্থা পরীক্ষা করুন

ত্রুটি সহ হোস্টিং বা সমাধান করার অপারেশনের ফলাফলের স্থিতি পরীক্ষা করতে ArCloudAnchorState ব্যবহার করুন।

মান বর্ণনা
AR_CLOUD_ANCHOR_STATE_ERROR_CLOUD_ID_NOT_FOUND সমাধান করা ব্যর্থ হয়েছে কারণ ARCore API প্রদত্ত ক্লাউড অ্যাঙ্কর আইডি খুঁজে পায়নি।
AR_CLOUD_ANCHOR_STATE_ERROR_HOSTING_DATASET_PROCESSING_FAILED হোস্টিং ব্যর্থ হয়েছে কারণ সার্ভার প্রদত্ত অ্যাঙ্করের জন্য ডেটাসেট সফলভাবে প্রক্রিয়া করতে পারেনি৷ ডিভাইসটি পরিবেশ থেকে আরও ডেটা সংগ্রহ করার পরে আবার চেষ্টা করুন৷
AR_CLOUD_ANCHOR_STATE_ERROR_HOSTING_SERVICE_UNAVAILABLE ARCore API পৌঁছানো যায়নি। এটি বিভিন্ন কারণে ঘটতে পারে। ডিভাইসটি বিমান মোডে থাকতে পারে বা একটি কার্যকরী ইন্টারনেট সংযোগ নাও থাকতে পারে৷ সার্ভারে পাঠানো অনুরোধ কোনো প্রতিক্রিয়া ছাড়াই সময় শেষ হয়ে যেতে পারে। একটি খারাপ নেটওয়ার্ক সংযোগ, DNS অনুপলব্ধতা, ফায়ারওয়াল সমস্যা বা অন্য কিছু হতে পারে যা ARCore API এর সাথে সংযোগ করার ডিভাইসের ক্ষমতাকে প্রভাবিত করতে পারে।
AR_CLOUD_ANCHOR_STATE_ERROR_INTERNAL এই অ্যাঙ্করের জন্য একটি হোস্টিং বা সমাধান করার কাজ একটি অভ্যন্তরীণ ত্রুটির সাথে শেষ হয়েছে৷ অ্যাপটিকে এই ত্রুটি থেকে পুনরুদ্ধার করার চেষ্টা করা উচিত নয়।
AR_CLOUD_ANCHOR_STATE_ERROR_NOT_AUTHORIZED ARCore API অনুমোদনের সাথে সমস্যা সমাধানের সমস্যা দেখুন।
AR_CLOUD_ANCHOR_STATE_ERROR_RESOLVING_SDK_VERSION_TOO_NEW ক্লাউড অ্যাঙ্করটি সমাধান করা যায়নি কারণ অ্যাঙ্করটি সমাধান করতে ব্যবহৃত SDK সংস্করণটি হোস্ট করার জন্য ব্যবহৃত সংস্করণটির চেয়ে নতুন এবং এর সাথে বেমানান৷
AR_CLOUD_ANCHOR_STATE_ERROR_RESOLVING_SDK_VERSION_TOO_OLD ক্লাউড অ্যাঙ্করটি সমাধান করা যায়নি কারণ অ্যাঙ্করটি সমাধান করতে ব্যবহৃত SDK সংস্করণটি হোস্ট করার জন্য ব্যবহৃত সংস্করণের চেয়ে পুরানো এবং এর সাথে সামঞ্জস্যপূর্ণ নয়৷
AR_CLOUD_ANCHOR_STATE_ERROR_RESOURCE_EXHAUSTED প্রদত্ত Google ক্লাউড প্রকল্পে বরাদ্দ করা অনুরোধের কোটা অ্যাপ্লিকেশনটি শেষ করেছে৷ Google Developers Console থেকে আপনার প্রোজেক্টের জন্য ARCore API-এর জন্য অতিরিক্ত কোটার অনুরোধ করা উচিত।
AR_CLOUD_ANCHOR_STATE_SUCCESS এই অ্যাঙ্করের জন্য একটি হোস্টিং বা সমাধান করার কাজ সফলভাবে সম্পন্ন হয়েছে।

হোস্ট এবং সমাধানের অনুরোধের জন্য API কোটা

ARCore API-তে অনুরোধ ব্যান্ডউইথের জন্য নিম্নলিখিত কোটা রয়েছে:

কোটার ধরন সর্বোচ্চ সময়কাল প্রযোজ্য
অ্যাঙ্কর সংখ্যা সীমাহীন N/A প্রকল্প
অ্যাঙ্কর হোস্ট অনুরোধ 30 মিনিট আইপি ঠিকানা এবং প্রকল্প
অ্যাঙ্কর সমাধান অনুরোধ 300 মিনিট আইপি ঠিকানা এবং প্রকল্প

একটি ভাল ব্যবহারকারীর অভিজ্ঞতার জন্য সর্বোত্তম অনুশীলন

আপনার অ্যাপে একটি ভাল ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করতে ব্যবহারকারীদের নিম্নলিখিত কাজ করার নির্দেশ দিন:

  • একটি নোঙ্গর হোস্ট করার চেষ্টা করার আগে সেশন শুরু হওয়ার কয়েক সেকেন্ড অপেক্ষা করুন (একটি বস্তু স্থাপন করে)। এটি ট্র্যাকিংকে স্থিতিশীল হতে কিছু সময় দেয়।
  • অ্যাঙ্কর হোস্ট করার জন্য একটি অবস্থান নির্বাচন করার সময়, ভিজ্যুয়াল বৈশিষ্ট্য সহ একটি এলাকা খুঁজে বের করার চেষ্টা করুন যা একে অপরের থেকে সহজেই আলাদা করা যায়। সর্বোত্তম ফলাফলের জন্য, প্রতিফলিত পৃষ্ঠ বা পৃষ্ঠগুলি এড়িয়ে চলুন যেখানে চাক্ষুষ বৈশিষ্ট্য নেই, যেমন ফাঁকা সাদা দেয়াল।
  • ক্যামেরাটিকে আগ্রহের কেন্দ্রে প্রশিক্ষিত রাখুন এবং ডিভাইসটিকে বিভিন্ন কোণ থেকে পরিবেশের মানচিত্র করতে আগ্রহের কেন্দ্রের চারপাশে সরান, আপনার মতো মোটামুটি একই শারীরিক দূরত্ব বজায় রেখে। এটি আরও ভিজ্যুয়াল ডেটা ক্যাপচার করতে এবং সমাধানকে আরও শক্তিশালী করতে সহায়তা করবে।

  • ক্লাউড অ্যাঙ্কর হোস্টিং এবং সমাধান করার সময় বাস্তব-জীবনের পরিবেশে পর্যাপ্ত আলো রয়েছে তা নিশ্চিত করুন।

অবচয় নীতি

  • ARCore SDK 1.12.0 বা উচ্চতর দিয়ে তৈরি অ্যাপ ক্লাউড অ্যাঙ্কর এপিআই অবচয় নীতির আওতায় রয়েছে।
  • ARCore SDK 1.11.0 বা তার কম সংস্করণের সাথে তৈরি অ্যাপগুলি SDK-এর একটি পুরানো, বাতিল ARCore API ব্যবহার করার কারণে ক্লাউড অ্যাঙ্কর হোস্ট বা সমাধান করতে অক্ষম।

এরপর কি