1"use strict";(self.webpackChunkegoexo_docs=self.webpackChunkegoexo_docs||[]).push([[131],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>h});var r=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function n(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){o(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function s(e,t){if(null==e)return{};var a,r,o=function(e,t){if(null==e)return{};var a,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)a=i[r],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var l=r.createContext({}),c=function(e){var t=r.useContext(l),a=t;return e&&(a="function"==typeof e?e(t):n(n({},t),e)),a},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=c(a),u=o,h=d["".concat(l,".").concat(u)]||d[u]||m[u]||i;return a?r.createElement(h,n(n({ref:t},p),{},{components:a})):r.createElement(h,n({ref:t},p))}));function h(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=a.length,n=new Array(i);n[0]=u;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[d]="string"==typeof e?e:o,n[1]=s;for(var c=2;c<i;c++)n[c]=a[c];return r.createElement.apply(null,n)}return r.createElement.apply(null,a)}u.displayName="MDXCreateElement"},6497:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>m,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var r=a(7462),o=(a(7294),a(3905));const i={title:"MPS",sidebar_position:3},n=void 0,s={unversionedId:"data/mps",id:"data/mps",title:"MPS",description:'MPS stands for "Machine Perception Services" and are a service provided by the',source:"@site/docs/data/mps.md",sourceDirName:"data",slug:"/data/mps",permalink:"/data/mps",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{title:"MPS",sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Takes",permalink:"/data/takes"},next:{title:"Downscaled Takes",permalink:"/data/downscaled_takes"}},l={},c=[{value:"Trajectory",id:"trajectory",level:2},{value:"Point Clouds",id:"point-clouds",level:2},{value:"Eye Gaze",id:"eye-gaze",level:2}],p={toc:c},d="wrapper";
1function m(e){let{components:t,...a}=e;return(0,o.kt)(d,(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,'MPS stands for "Machine Perception Services" and are a service provided by the\nAria device recordings.'),(0,o.kt)("h2",{id:"trajectory"},"Trajectory"),(0,o.kt)("p",null,"Please read the ",(0,o.kt)("a",{parentName:"p",href:"https://facebookresearch.github.io/projectaria_tools/docs/data_formats/mps/mps_trajectory"},"Official Aria Documentation")),(0,o.kt)("p",null,"Trajectory data provides the 3D camera positions of the camera wearer, sampled\nat 1kHZ across the capture & each take. "),(0,o.kt)("p",null,"Here is some basic information about the trajectories:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You can determine if a capture has an associated trajectory by referring to the field ",(0,o.kt)("inlineCode",{parentName:"li"},"has_trajectory"),", or ",(0,o.kt)("inlineCode",{parentName:"li"},"has_trimmed_trajectory")," if there is a take-trimmed counter-part"),(0,o.kt)("li",{parentName:"ul"},"The files related to the trajectory is located in the ",(0,o.kt)("inlineCode",{parentName:"li"},"trajectory")," folder relative to the\ncapture (use the ",(0,o.kt)("inlineCode",{parentName:"li"},"closed_loop_trajectory.csv")," file) or the take; if there is a take-trimmed counter-part (",(0,o.kt)("inlineCode",{parentName:"li"},"has_trimmed_trajectory"),"): use ",(0,o.kt)("inlineCode",{parentName:"li"},"trimmed_trajectory_relative_path")," from the take. "),(0,o.kt)("li",{parentName:"ul"},"The intrinsic parameters are provided in the ",(0,o.kt)("inlineCode",{parentName:"li"},"trajectory")," directory for the exo-centric GoPro cameras\n(",(0,o.kt)("inlineCode",{parentName:"li"},"gopro_calibs.csv"),"); for the aria camera it is provided in the capture, or the take-trimmed, VRS file."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://facebookresearch.github.io/projectaria_tools/docs/data_utilities/core_code_snippets/mps#open-loopclosed-loop-trajectory"},"Here is a code sample")," on how to read the closed loop file.")),(0,o.kt)("h2",{id:"point-clouds"},"Point Clouds"),(0,o.kt)("p",null,"Point clouds are located in the ",(0,o.kt)("inlineCode",{parentName:"p"},"trajectory")," subdirectory for each capture. Please familiarize yourself with the official documentation from ",(0,o.kt)("a",{parentName:"p",href:"https://facebookresearch.github.io/projectaria_tools/docs/data_formats/mps/mps_pointcloud"},"Project Aria"),", as the files referenced in Aria's documentation are present in the ",(0,o.kt)("inlineCode",{parentName:"p"},"trajectory")," folder. "),(0,o.kt)("p",null,"Below is some basic information about point clouds:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Every capture that has trajectory will have a point cloud. Use the\n",(0,o.kt)("inlineCode",{parentName:"li"},"has_trajectory")," field to classify which captures have trajectories & point\nclouds.",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"The files associated to point clouds are: ",(0,o.kt)("a",{parentName:"li",href:"https://facebookresearch.github.io/projectaria_tools/docs/data_formats/mps/mps_pointcloud#point-observations"},(0,o.kt)("inlineCode",{parentName:"a"},"semidense_observations.csv.gz"))," and ",(0,o.kt)("a",{parentName:"li",href:"https://facebookresearch.github.io/projectaria_tools/docs/data_formats/mps/mps_pointcloud#points-in-the-world-coordinate-frame"},(0,o.kt)("inlineCode",{parentName:"a"},"semidense_points.csv.gz"))))),(0,o.kt)("li",{parentName:"ul"},"Point clouds are associated to multiple (arbitrary) timepoints within\nthe video, ",(0,o.kt)("a",{parentName:"li",href:"https://facebookresearch.github.io/projectaria_tools/docs/data_formats/mps/mps_pointcloud#what-are-semi-dense-points"},"please read Aria's\ndocumentation")),(0,o.kt)("li",{parentName:"ul"},"Point clouds are in the same 3D coordinate system as the trajectory data."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://facebookresearch.github.io/projectaria_tools/docs/data_utilities/core_code_snippets/mps#point-cloud"},"Here is a code sample")," on how to read the point cloud data from Project Aria")),(0,o.kt)("h2",{id:"eye-gaze"},"Eye Gaze"),(0,o.kt)("p",null,"Eye gaze data is located in each captures' or takes' ",(0,o.kt)("inlineCode",{parentName:"p"},"eye_gaze")," folder. Please\nfamiliarize yourself with the official documentation from ",(0,o.kt)("a",{parentName:"p",href:"https://facebookresearch.github.io/projectaria_tools/docs/data_formats/mps/mps_eye_gaze"}
1,"Project\nAria"),",\nas the files referenced in Aria's documentation will be present in the\n",(0,o.kt)("inlineCode",{parentName:"p"},"eye_gaze")," folder. "),(0,o.kt)("p",null,"Below is some basic information about eye gaze:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You can determine if a take or capture has eye gaze by using the field ",(0,o.kt)("inlineCode",{parentName:"li"},"has_gaze")," for a capture and ",(0,o.kt)("inlineCode",{parentName:"li"},"has_trimmed_gaze")," for a take. ",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"If eye gaze is available for the take, it is trimmed (cropped in time) with respect to that take."))),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://facebookresearch.github.io/projectaria_tools/docs/data_utilities/core_code_snippets/mps#eye-gaze"},"Here is a code sample")," on how to read the eye gaze data from Project Aria")),(0,o.kt)("p",null,"To quickly start using MPS in code, see the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/facebookresearch/projectaria_tools/blob/main/core/examples/mps_quickstart_tutorial.ipynb"},"MPS Quickstart Notebook"),"."))}m.isMDXComponent=!0}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.