CYCLIST+IMU: A synchronized visual–inertial... | F1000Research "use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r 3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}(); dataLayer = dataLayer || []; // Standard GTM initialization - Google Consent Mode handles consent automatically (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_auth=hzk0Vc3qFsQYhCrIoHz68A>m_preview=env-1>m_cookies_win=x';f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MWFK8L5J'); ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}}; ;NREUM.loader_config={accountID:"438030",trustKey:"438030",agentID:"772317073",licenseKey:"97f8f67f26",applicationID:"772317073"} ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"97f8f67f26",applicationID:"772317073",sa:1} ;/*! For license information please see nr-loader-spa-1.236.0.min.js.LICENSE.txt */ (()=>{"use strict";var e,t,r={5763:(e,t,r)=>{r.d(t,{P_:()=>l,Mt:()=>g,C5:()=>s,DL:()=>v,OP:()=>T,lF:()=>D,Yu:()=>y,Dg:()=>h,CX:()=>c,GE:()=>b,sU:()=>_});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o),(0,n.Qy)(e,a[e],"info")}var u=r(7056);const d=()=>{const e={blockSelector:"[data-nr-block]",maskInputOptions:{password:!0}};return{allow_bfcache:!0,privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,enabled:!0,harvestTimeSeconds:10},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:u.oD,inactiveMs:u.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10},metrics:{enabled:!0},page_action:{enabled:!0,harvestTimeSeconds:30},page_view_event:{enabled:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1},session_trace:{enabled:!0,harvestTimeSeconds:10},harvest:{tooManyRequestsDelay:60},session_replay:{enabled:!1,harvestTimeSeconds:60,sampleRate:.1,errorSampleRate:.1,maskTextSelector:"*",maskAllInputs:!0,get blockClass(){return"nr-block"},get ignoreClass(){return"nr-ignore"},get maskTextClass(){return"nr-mask"},get blockSelector(){return e.blockSelector},set blockSelector(t){e.blockSelector+=",".concat(t)},get maskInputOptions(){return e.maskInputOptions},set maskInputOptions(t){e.maskInputOptions={...t,password:!0}}},spa:{enabled:!0,harvestTimeSeconds:10}}},f={};function l(e){if(!e)throw new Error("All configuration objects require an agent identifier!");if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function h(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");f[e]=(0,i.D)(t,d()),(0,n.Qy)(e,f[e],"config")}function g(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");var r=l(e);if(r){for(var n=t.split("."),i=0;i {r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{r.d(t,{Re:()=>i,gF:()=>o,q4:()=>n});const n="1.236.0",i="PROD",o="CDN"},385:(e,t,r)=>{r.d(t,{FN:()=>a,IF:()=>u,Nk:()=>f,Tt:()=>s,_A:()=>o,il:()=>n,pL:()=>c,v6:()=>i,w1:()=>d});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=""+o?.location,s=/iPad|iPhone|iPod/.test(navigator.userAgent),c=s&&"undefined"==typeof SharedWorker,u=(()=>{const e=navigator.userAgent.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),d=Boolean(n&&window.document.documentMode),f=!!navigator.sendBeacon},1117:(e,t,r)=>{r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{r.d(t,{L:()=>d,R:()=>c});var n=r(2177),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=[...s[e]];function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u {let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((e=>{let[t]=e;a(t)})))}function f(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},2177:(e,t,r)=>{r.d(t,{c:()=>f,ee:()=>u});var n=r(8632),i=r(2210),o=r(1284),a=r(5763),s="nr@context";let c=(0,n.fP)();var u;function d(){}function f(e){return(0,i.X)(e,s,l)}function l(){return new d}function h(){u.aborted=!0,u.backlog={}}c.ee?u=c.ee:(u=function e(t,r){var n={},c={},f={},g=!1;try{g=16===r.length&&(0,a.OP)(r).isolatedBacklog}catch(e){}var p={on:b,addEventListener:b,removeEventListener:y,emit:v,get:x,listeners:w,context:m,buffer:A,abort:h,aborted:!1,isBuffering:E,debugId:r,backlog:g?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return p;function m(e){return e&&e instanceof d?e:e?(0,i.X)(e,s,l):l()}function v(e,r,n,i,o){if(!1!==o&&(o=!0),!u.aborted||i){t&&o&&t.emit(e,r,n);for(var a=m(n),s=w(e),d=s.length,f=0;fn,p:()=>i});var n=r(2177).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},4402:(e,t,r)=>{r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?o(t,++r).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s {r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{r.d(t,{e:()=>o});var n=r(385),i={};function o(e){if(e in i)return i[e];if(0===(e||"").indexOf("data:"))return{protocol:"data"};let t;var r=n._A?.location,o={};if(n.il)t=document.createElement("a"),t.href=e;else try{t=new URL(e,r.href)}catch(e){return o}o.port=t.port;var a=t.href.split("://");!o.port&&a[1]&&(o.port=a[1].split("/")[0].split("@").pop().split(":")[1]),o.port&&"0"!==o.port||(o.port="https"===a[0]?"443":"80"),o.hostname=t.hostname||r.hostname,o.pathname=t.pathname,o.protocol=a[0],"/"!==o.pathname.charAt(0)&&(o.pathname="/"+o.pathname);var s=!t.protocol||":"===t.protocol||t.protocol===r.protocol,c=t.hostname===r.hostname&&t.port===r.port;return o.sameOrigin=s&&(!t.hostname||c),"/"===o.pathname&&(i[e]=o),o}},50:(e,t,r)=>{function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2587:(e,t,r)=>{r.d(t,{N:()=>c,T:()=>u});var n=r(2177),i=r(5546),o=r(8e3),a=r(3325);const s={stn:[a.D.sessionTrace],err:[a.D.jserrors,a.D.metrics],ins:[a.D.pageAction],spa:[a.D.spa],sr:[a.D.sessionReplay,a.D.sessionTrace]};function c(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(Object.entries(e).forEach((e=>{let[t,n]=e;void 0===u[t]&&(s[t]?s[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),u[t]=Boolean(n))})),Object.keys(s).forEach((e=>{void 0===u[e]&&(s[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),u[e]=!1)})),(0,o.L)(t,a.D.pageViewEvent))}const u={}},2210:(e,t,r)=>{r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{r.d(t,{P:()=>o});var n=r(2177);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{r.d(t,{K:()=>a,b:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.z)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;return void(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"==document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{r.d(t,{em:()=>v,u5:()=>N,QU:()=>S,_L:()=>I,Gm:()=>L,Lg:()=>M,gy:()=>U,BV:()=>Q,Kf:()=>ee});var n=r(2177);const i="nr@original";var o=Object.prototype.hasOwnProperty,a=!1;function s(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");var a,s,c,u="-"===n.charAt(0);for(c=0;c 2?n-2:0),o=2;o {r(A[T],e,w),r(E[T],e,w)})),r(l._A,"fetch",y),t.on(y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(y+"done",[null,r],n)}else t.emit(y+"done",[e],n)})),t}const O={},j=["pushState","replaceState"];function S(e){const t=function(e){return(e||n.ee).get("history")}(e);return!l.il||O[t.debugId]++||(O[t.debugId]=1,s(t).inPlace(window.history,j,"-")),t}var P=r(3239);const C={},R=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!l.il||C[t.debugId])return t;C[t.debugId]=!0;var r=s(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function c(e,t){var r=e.match(a),n=r[1],i=r[3];return i?c(i,t[n]):t[n]}return r.inPlace(Node.prototype,R,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,s=a.match(i),s?s[1]:null);var a,s;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:c(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function f(){t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}function l(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",f,(0,P.m$)(!1)),e.addEventListener("error",l,(0,P.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}var k=r(5763);const H={};function L(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!l.il||H[t.debugId])return t;H[t.debugId]=!0;var r=s(t),i=k.Yu.MO;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const z={};function M(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(z[t.debugId])return t;z[t.debugId]=!0;var r=n.c,o=s(t),a=k.Yu.PR;return a&&function(){function e(r){var n=t.context(),i=o(r,"executor-",n,null,!1);const s=Reflect.construct(a,[i],e);return t.context(s).getCtx=function(){return n},s}l._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,i=r(e);i.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c e())),t};function m(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}function b(){var e=this,t=r.context(e);e.readyState>3&&!t.resolved&&(t.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,f,"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,J,"-xhr-",E),r.on("send-xhr-start",(function(e,t){m(e,t),function(e){h.push(e),a&&(y?y.then(A):u?u(A):(w=-w,x.data=w))}(t)})),r.on("open-xhr-start",m),a){var y=c&&c.resolve();if(!u&&!c){var w=1,x=document.createTextNode(w);new a(A).observe(x,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e {r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{r.d(t,{A:()=>i,t:()=>n});const n=r(3325).D.jserrors,i="nr@seenError"},3081:(e,t,r)=>{r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{r.d(t,{Dz:()=>i,OJ:()=>a,qw:()=>o,t9:()=>n});const n=r(3325).D.pageViewEvent,i="firstbyte",o="domcontent",a="windowload"},9251:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},3614:(e,t,r)=>{r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{r.d(t,{BODY:()=>A,CB_END:()=>E,CB_START:()=>u,END:()=>x,FEATURE_NAME:()=>i,FETCH:()=>_,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>p,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>l,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>g,JS_TIME:()=>T,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>f,SPA_NODE:()=>h,START:()=>w,originalSetTimeout:()=>y});var n=r(5763);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",f="remaining",l="interaction",h="spaNode",g="jsonpNode",p="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,w="-start",x="-end",A="-body",E="cb"+x,T="jsTime",_="fetch"},5938:(e,t,r)=>{r.d(t,{W:()=>o});var n=r(5763),i=r(2177);class o{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=i.ee.get(e,(0,n.OP)(this.agentIdentifier).isolatedBacklog),this.featureName=r,this.blocked=!1}}},9144:(e,t,r)=>{r.d(t,{j:()=>m});var n=r(3325),i=r(5763),o=r(5546),a=r(2177),s=r(7894),c=r(8e3),u=r(3960),d=r(385),f=r(50),l=r(3081),h=r(8632);function g(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","inlineHit","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i 1?r-1:0),i=1;i {e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var p=r(2587);function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=arguments.length>2?arguments[2]:void 0,v=arguments.length>3?arguments[3]:void 0,{init:b,info:y,loader_config:w,runtime:x={loaderType:m},exposed:A=!0}=t;const E=(0,h.gG)();y||(b=E.init,y=E.info,w=E.loader_config),(0,i.Dg)(e,b||{}),(0,i.GE)(e,w||{}),(0,i.sU)(e,x),y.jsAttributes??={},d.v6&&(y.jsAttributes.isWorker=!0),(0,i.CX)(e,y),g();const T=function(e,t){t||(0,c.R)(e,"api");const h={};var g=a.ee.get(e),p=g.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),x(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","inlineHit","addRelease"].forEach((e=>h[e]=x(m,e,!0,"api"))),h.addPageAction=x(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=x(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,x(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,f.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string or number type, but a type of was provided."))}else(0,f.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,f.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of was provided."))},h.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,g),function(){if(p.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw p.emit("fn-err",[arguments,this,"string"==typeof e?new Error(e):e],r),e}finally{p.emit("fn-end",[(0,s.z)()],r)}}}};function x(e,t,r,i){return function(){return(0,o.p)(l.xS,["API/"+t+"/called"],void 0,n.D.metrics,g),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,g),r?void 0:this}}function A(){r.e(439).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>(0,f.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{w[e]=x(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(l.xS,["API/noticeError/called"],void 0,n.D.metrics,g),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,g)},d.il?(0,u.b)((()=>A()),!0):A(),h}(e,v);return(0,h.Qy)(e,T,"api"),(0,h.Qy)(e,A,"exposed"),(0,h.EZ)("activatedFeatures",p.T),T}},3325:(e,t,r)=>{r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>(({78:"page_action-aggregate",147:"metrics-aggregate",242:"session-manager",317:"jserrors-aggregate",348:"page_view_timing-aggregate",412:"lazy-feature-loader",439:"async-api",538:"recorder",590:"session_replay-aggregate",675:"compressor",733:"session_trace-aggregate",786:"page_view_event-aggregate",873:"spa-aggregate",898:"ajax-aggregate"}[e]||e)+"."+{78:"ac76d497",147:"3dc53903",148:"1a20d5fe",242:"2a64278a",317:"49e41428",348:"bd6de33a",412:"2f55ce66",439:"30bd804e",538:"1b18459f",590:"cf0efb30",675:"ae9f91a8",733:"83105561",786:"06482edd",860:"03a8b7a5",873:"e6b09d52",898:"998ef92b"}[e]+"-1.236.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d {s.onerror=s.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},h=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.j=364,i.p="https://js-agent.newrelic.com/",(()=>{var e={364:0,953:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u {i.r(o);var e=i(3325),t=i(5763);const r=Object.values(e.D);function n(e){const n={};return r.forEach((r=>{n[r]=function(e,r){return!1!==(0,t.Mt)(r,"".concat(e,".enabled"))}(r,e)})),n}var a=i(9144);var s=i(5546),c=i(385),u=i(8e3),d=i(5938),f=i(3960),l=i(50);class h extends d.W{constructor(e,t,r){let n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=n,this.abortHandler,this.featAggregate,this.onAggregateImported,n&&(0,u.R)(e,r)}importAggregator(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate||!this.auto)return;const r=c.il&&!0===(0,t.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let t;try{if(r){const{setupAgentSession:e}=await Promise.all([i.e(860),i.e(242)]).then(i.bind(i,3228));t=e(this.agentIdentifier)}}catch(e){(0,l.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",e)}try{if(!this.shouldImportAgg(this.featureName,t))return void(0,u.L)(this.agentIdentifier,this.featureName);const{lazyFeatureLoader:r}=await i.e(412).then(i.bind(i,8582)),{Aggregate:o}=await r(this.featureName,"aggregate");this.featAggregate=new o(this.agentIdentifier,this.aggregator,e),n(!0)}catch(e){(0,l.Z)("Downloading and initializing ".concat(this.featureName," failed..."),e),this.abortHandler?.(),n(!1)}};c.il?(0,f.b)((()=>o()),!0):o()}shouldImportAgg(r,n){return r!==e.D.sessionReplay||!1!==(0,t.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!n?.isNew||!!n?.state.sessionReplay)}}var g=i(7633),p=i(7894);class m extends h{static featureName=g.t9;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(r,n,g.t9,i),("undefined"==typeof PerformanceNavigationTiming||c.Tt)&&"undefined"!=typeof PerformanceTiming){const n=(0,t.OP)(r);n[g.Dz]=Math.max(Date.now()-n.offset,0),(0,f.K)((()=>n[g.qw]=Math.max((0,p.z)()-n[g.Dz],0))),(0,f.b)((()=>{const t=(0,p.z)();n[g.OJ]=Math.max(t-n[g.Dz],0),(0,s.p)("timing",["load",t],void 0,e.D.pageViewTiming,this.ee)}))}this.importAggregator()}}var v=i(1117),b=i(1284);class y extends v.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,b.D)(e,(function(e,r){t[e]=w(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,b.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=w(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=x(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=w(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i t.max&&(t.max=e),e 2&&void 0!==arguments[2])||arguments[2];super(e,r,j.t,n),c.il&&((0,t.OP)(e).initHidden=Boolean("hidden"===document.visibilityState),(0,N.N)((()=>(0,s.p)("docHidden",[(0,p.z)()],void 0,j.t,this.ee)),!0),(0,O.bP)("pagehide",(()=>(0,s.p)("winPagehide",[(0,p.z)()],void 0,j.t,this.ee))),this.importAggregator())}}var P=i(3081);class C extends h{static featureName=P.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,P.t9,r),this.importAggregator()}}var R,I=i(2210),k=i(1214),H=i(2177),L={};try{R=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(L.console=!0,-1!==R.indexOf("dev")&&(L.dev=!0),-1!==R.indexOf("nr_dev")&&(L.nrDev=!0))}catch(e){}function z(e){try{L.console&&z(e)}catch(e){}}L.nrDev&&H.ee.on("internal-error",(function(e){z(e.stack)})),L.dev&&H.ee.on("fn-err",(function(e,t,r){z(r.stack)})),L.dev&&(z("NR AGENT IN DEVELOPMENT MODE"),z("flags: "+(0,b.D)(L,(function(e,t){return e})).join(", ")));var M=i(6660);class B extends h{static featureName=M.t;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(r,n,M.t,i),this.skipNext=0;try{this.removeOnAbort=new AbortController}catch(e){}const o=this;o.ee.on("fn-start",(function(e,t,r){o.abortHandler&&(o.skipNext+=1)})),o.ee.on("fn-err",(function(t,r,n){o.abortHandler&&!n[M.A]&&((0,I.X)(n,M.A,(function(){return!0})),this.thrown=!0,(0,s.p)("err",[n,(0,p.z)()],void 0,e.D.jserrors,o.ee))})),o.ee.on("fn-end",(function(){o.abortHandler&&!this.thrown&&o.skipNext>0&&(o.skipNext-=1)})),o.ee.on("internal-error",(function(t){(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,o.ee)})),this.origOnerror=c._A.onerror,c._A.onerror=this.onerrorHandler.bind(this),c._A.addEventListener("unhandledrejection",(t=>{const r=function(e){let t="Unhandled Promise Rejection: ";if(e instanceof Error)try{return e.message=t+e.message,e}catch(t){return e}if(void 0===e)return new Error(t);try{return new Error(t+(0,D.P)(e))}catch(e){return new Error(t)}}(t.reason);(0,s.p)("err",[r,(0,p.z)(),!1,{unhandledPromiseRejection:1}],void 0,e.D.jserrors,this.ee)}),(0,O.m$)(!1,this.removeOnAbort?.signal)),(0,k.gy)(this.ee),(0,k.BV)(this.ee),(0,k.em)(this.ee),(0,t.OP)(r).xhrWrappable&&(0,k.Kf)(this.ee),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}onerrorHandler(t,r,n,i,o){"function"==typeof this.origOnerror&&this.origOnerror(...arguments);try{this.skipNext?this.skipNext-=1:(0,s.p)("err",[o||new F(t,r,n),(0,p.z)()],void 0,e.D.jserrors,this.ee)}catch(t){try{(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,this.ee)}catch(e){}}return!1}}function F(e,t,r){this.message=e||"Uncaught error with no additional information",this.sourceURL=t,this.line=r}let U=1;const q="nr@id";function G(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===c._A?0:(0,I.X)(e,q,(function(){return U++}))}function V(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,D.P)(e).length}catch(e){return}}}var X=i(7243);class W{constructor(e){this.agentIdentifier=e,this.generateTracePayload=this.generateTracePayload.bind(this),this.shouldGenerateTrace=this.shouldGenerateTrace.bind(this)}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var r=(0,t.DL)(this.agentIdentifier);if(!r)return null;var n=(r.accountID||"").toString()||null,i=(r.agentID||"").toString()||null,o=(r.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,_.M)(),s=(0,_.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof c._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,D.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var r=!1,n={};if((0,t.Mt)(this.agentIdentifier,"distributed_tracing")&&(n=(0,t.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)r=!0;else if(n.allowed_origins instanceof Array)for(var i=0;i 2&&void 0!==arguments[2])||arguments[2];super(r,n,Z.t,i),(0,t.OP)(r).xhrWrappable&&(this.dt=new W(r),this.handler=(e,t,r,n)=>(0,s.p)(e,t,r,n,this.ee),(0,k.u5)(this.ee),(0,k.Kf)(this.ee),function(r,n,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=E,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){_(t,e)}),(0,O.m$)(!1)),c.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,O.m$)(!1))}function s(e){this.params={method:e[0]},T(this,e[1]),this.metrics={}}function u(e,n){var i=(0,t.DL)(r);i.xpid&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(n.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(n.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&n.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function d(e,t){var r=this.metrics,i=e[0],o=this;if(r&&i){var a=V(i);a&&(r.txSize=a)}this.startTime=(0,p.z)(),this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof o.end)&&o.end(t)}catch(e){try{n.emit("internal-error",[e])}catch(e){}}};for(var s=0;s 1?e[1]=i:e.push(i)}else e[0]&&e[0].headers&&s(e[0].headers,n)&&(this.dt=n);function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function x(e,t){this.params={},this.metrics={},this.startTime=(0,p.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof Y?r=i.url:c._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),T(this,r);var o=(""+(i&&i instanceof Y&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.txSize=V(n.body)||0}function A(t,r){var n;this.endTime=(0,p.z)(),this.params||(this.params={}),this.params.status=r?r.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,p.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,e.D.ajax)}function E(t){var r=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o 2&&void 0!==arguments[2])||arguments[2];super(e,t,we.t,r),this.importAggregator()}}new class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,_.ky)(16);c._A?(this.agentIdentifier=t,this.sharedAggregator=new y({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(m),Object.assign(this,(0,a.j)(this.agentIdentifier,e,e.loaderType||"agent")),this.start()):(0,l.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,t.C5)(this.agentIdentifier),init:(0,t.P_)(this.agentIdentifier),loader_config:(0,t.DL)(this.agentIdentifier),runtime:(0,t.OP)(this.agentIdentifier)}}start(){const t="features";try{const r=n(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((t,r)=>e.p[t.featureName]-e.p[r.featureName])),i.forEach((t=>{if(r[t.featureName]||t.featureName===e.D.pageViewEvent){const n=function(t){switch(t){case e.D.ajax:return[e.D.jserrors];case e.D.sessionTrace:return[e.D.ajax,e.D.pageViewEvent];case e.D.sessionReplay:return[e.D.sessionTrace];case e.D.pageViewTiming:return[e.D.pageViewEvent];default:return[]}}(t.featureName);n.every((e=>r[e]))||(0,l.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,D.P)(n),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,T.Qy)(this.agentIdentifier,this.features,t)}catch(e){(0,l.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",e);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,T.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,r.ee?.abort(),delete r.ee?.get(this.agentIdentifier),!1}}}({features:[J,m,S,class extends h{static featureName=oe;constructor(t,r){if(super(t,r,oe,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;const n=this.ee;let i;(0,k.QU)(n),this.eventsEE=(0,k.em)(n),this.eventsEE.on(se,(function(e,t){this.bstStart=(0,p.z)()})),this.eventsEE.on(ae,(function(t,r){(0,s.p)("bst",[t[0],r,this.bstStart,(0,p.z)()],void 0,e.D.sessionTrace,n)})),n.on(ce+ne,(function(e){this.time=(0,p.z)(),this.startPath=location.pathname+location.hash})),n.on(ce+ie,(function(t){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,e.D.sessionTrace,n)}));try{i=new PerformanceObserver((t=>{const r=t.getEntries();(0,s.p)(te,[r],void 0,e.D.sessionTrace,n)})),i.observe({type:re,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},C,xe,B,class extends h{static featureName=de;constructor(e,r){if(super(e,r,de,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;if(!(0,t.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let n,i=0;const o=this.ee.get("tracer"),a=(0,k._L)(this.ee),s=(0,k.Lg)(this.ee),u=(0,k.BV)(this.ee),d=(0,k.Kf)(this.ee),f=this.ee.get("events"),l=(0,k.u5)(this.ee),h=(0,k.QU)(this.ee),g=(0,k.Gm)(this.ee);function m(e,t){h.emit("newURL",[""+window.location,t])}function v(){i++,n=window.location.hash,this[ve]=(0,p.z)()}function b(){i--,window.location.hash!==n&&m(0,!0);var e=(0,p.z)();this[pe]=~~this[pe]+e-this[ve],this[ye]=e}function y(e,t){e.on(t,(function(){this[t]=(0,p.z)()}))}this.ee.on(ve,v),s.on(be,v),a.on(be,v),this.ee.on(ye,b),s.on(ge,b),a.on(ge,b),this.ee.buffer([ve,ye,"xhr-resolved"],this.featureName),f.buffer([ve],this.featureName),u.buffer(["setTimeout"+le,"clearTimeout"+fe,ve],this.featureName),d.buffer([ve,"new-xhr","send-xhr"+fe],this.featureName),l.buffer([me+fe,me+"-done",me+he+fe,me+he+le],this.featureName),h.buffer(["newURL"],this.featureName),g.buffer([ve],this.featureName),s.buffer(["propagate",be,ge,"executor-err","resolve"+fe],this.featureName),o.buffer([ve,"no-"+ve],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),y(l,me+fe),y(l,me+"-done"),y(a,"new-jsonp"),y(a,"jsonp-end"),y(a,"cb-start"),h.on("pushState-end",m),h.on("replaceState-end",m),window.addEventListener("hashchange",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){m(0,i>1)}),(0,O.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})(),window.NRBA=o})(); window.jQuery || document.write(' ') CKEDITOR_BASEPATH='https://f1000research.com/js/vendor/ckeditor/' window.reactTheme = 'research'; window.MathJax = { CommonHTML: { linebreaks: { automatic: true } }, 'HTML-CSS': { linebreaks: { automatic: true } }, SVG: { linebreaks: { automatic: true } }, AuthorInit: function() { MathJax.Hub.Register.MessageHook('End Process', function () { let timeout = false; // holder for timeout id const delay = 250; // delay after event is "complete" to run callback const reflowMath = function() { const dispFormulas = document.querySelectorAll('.disp-formula.panel'); if (!dispFormulas) { return; } for (const dispFormula of dispFormulas) { const child = dispFormula.querySelector('.MathJax_Preview').nextSibling.firstChild; const isMultiline = MathJax.Hub.getAllJax(dispFormula)[0].root.isMultiline; if (dispFormula.offsetWidth < child.offsetWidth || isMultiline) { MathJax.Hub.Queue(['Rerender', MathJax.Hub, dispFormula]); } } }; window.addEventListener('resize', function() { clearTimeout(timeout); // clear the timeout timeout = setTimeout(reflowMath, delay); // start timing for event "completion" }); }); }, }; if (window.location.hash == '#_=_'){ window.location = window.location.href.split('#')[0] } !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function() {n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)} ;if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1641728616063202'); fbq('track', "PixelInitialized", {}); (function(h,o,t,j,a,r){ h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; h._hjSettings={hjid:2318163,hjsv:6}; a=o.getElementsByTagName('head')[0]; r=o.createElement('script');r.async=1; r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); search file_upload Submit your research search menu close search Browse Gateways & Collections How to Publish Submit your Research My Submissions Article Guidelines Article Guidelines (New Versions) Open Data, Software and Code Guidelines Open Data and Accessible Source Materials Guidelines (HSS) Open Data, Software and Code Guidelines (PSE) Prepublication Checks Production Process Posters and Slides Guidelines Document Guidelines Article Processing Charges Peer Review Finding Article Reviewers About How it Works For Reviewers Our Advisors Policies Glossary FAQs For Developers Newsroom Contact My Research Submissions Content and Tracking Alerts My Details Sign In file_upload Submit your research { "@context": "https://schema.org", "@type": "ScholarlyArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://f1000research.com/articles/15-527" }, "headline": "CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban...", "datePublished": "2026-04-15T11:22:07", "dateModified": "2026-04-15T11:22:07", "author": [ { "@type": "Person", "name": "Luis Gómez-Meneses" }, { "@type": "Person", "name": "Mauricio Arias-Correa" }, { "@type": "Person", "name": "Jorge Herrera-Ramírez" }, { "@type": "Person", "name": "John R. Ballesteros" } ], "publisher": { "@type": "Organization", "name": "F1000Research", "logo": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 480, "width": 60 } }, "image": { "@type": "ImageObject", "url": "https://f1000research.com/img/AMP/F1000Research_image.png", "height": 1200, "width": 150 }, "description": " Background Cyclists are among the most vulnerable road users in urban traffic environments. For autonomous vehicles to interact safely and effectively with cyclists, perception systems must go beyond detection and segmentation to include an explicit understanding of cyclist orientation. However, most existing cyclist datasets lack synchronized inertial metadata describing body orientation, limiting their use in multimodal and orientation-aware perception studies. Methods This Data Note presents a multimodal visual–inertial dataset acquired using the CYCLIST+IMU framework, which synchronizes monocular RGB images captured from a vehicle-mounted camera with inertial measurements recorded by bicycle-mounted and vehicle-mounted inertial measurement units. Data were collected during multiple real-world urban acquisition sessions, resulting in 3,606 RGB images, each temporally aligned with inertial measurements, including cyclist orientation angles (yaw and roll). From these acquisitions, cyclist-centered image crops were generated and manually annotated, resulting in polygon-based semantic segmentation labels, region-of-interest detection files, and relative depth maps estimated from the RGB images. To improve angular coverage, a targeted data augmentation strategy based on horizontal image flipping was applied to underrepresented orientation ranges, resulting in the generation of 718 additional samples. The final dataset comprises 4,324 synchronized multimodal samples organized in a hierarchical directory structure that preserves one-to-one correspondence across all data modalities. Conclusions The CYCLIST+IMU dataset provides synchronized RGB image crops, inertial orientation metadata, semantic segmentation annotations, relative depth maps, and detection files for 4,324 cyclist instances captured under real urban traffic conditions. By explicitly integrating visual and inertial data with precise temporal alignment and detailed documentation, this dataset enables reproducible research on cyclist orientation estimation, semantic segmentation, and multimodal sensor fusion for intelligent transportation systems. " } { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": "1", "item": { "@id": "https://f1000research.com/", "name": "Home" } }, { "@type": "ListItem", "position": "2", "item": { "@id": "https://f1000research.com/browse/articles", "name": "Browse" } }, { "@type": "ListItem", "position": "3", "item": { "@id": "https://f1000research.com/articles/15-527/v1", "name": "CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation..." } } ] } Home Browse CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation... ALL Metrics - Views Downloads Get PDF Get XML Cite How to cite this article Gómez-Meneses L, Arias-Correa M, Herrera-Ramírez J and Ballesteros JR. CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban environments [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :527 ( https://doi.org/10.12688/f1000research.177481.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. Close Copy Citation Details Export Export Citation Sciwheel EndNote Ref. Manager Bibtex ProCite Sente EXPORT Select a format first Track Share ▬ ✚ Data Note CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban environments [version 1; peer review: 1 approved with reservations] Luis Gómez-Meneses https://orcid.org/0000-0002-0667-7472 1 , Mauricio Arias-Correa 2 , Jorge Herrera-Ramírez 3 , John R. Ballesteros 4 Luis Gómez-Meneses https://orcid.org/0000-0002-0667-7472 1 , Mauricio Arias-Correa 2 , Jorge Herrera-Ramírez 3 , John R. Ballesteros 4 PUBLISHED 15 Apr 2026 Author details Author details 1 Faculty of Engineering, Instituto Tecnologico Metropolitano, Medellín, Antioquia, Colombia 2 Design Engineering Research Group (GRID), Universidad EAFIT, Medellín, Antioquia, Colombia 3 Faculty of Exact and Applied Sciences, Instituto Tecnologico Metropolitano, Medellín, Antioquia, Colombia 4 Department of Computer Science and Decision Sciences, Universidad Nacional de Colombia Sede Medellin, Medellín, Antioquia, Colombia Luis Gómez-Meneses Roles: Conceptualization, Formal Analysis, Methodology, Project Administration, Software, Validation, Visualization, Writing – Original Draft Preparation Mauricio Arias-Correa Roles: Investigation, Resources, Writing – Original Draft Preparation Jorge Herrera-Ramírez Roles: Supervision, Validation, Writing – Review & Editing John R. Ballesteros Roles: Data Curation, Investigation, Validation OPEN PEER REVIEW DETAILS REVIEWER STATUS Abstract Background Cyclists are among the most vulnerable road users in urban traffic environments. For autonomous vehicles to interact safely and effectively with cyclists, perception systems must go beyond detection and segmentation to include an explicit understanding of cyclist orientation. However, most existing cyclist datasets lack synchronized inertial metadata describing body orientation, limiting their use in multimodal and orientation-aware perception studies. Methods This Data Note presents a multimodal visual–inertial dataset acquired using the CYCLIST+IMU framework, which synchronizes monocular RGB images captured from a vehicle-mounted camera with inertial measurements recorded by bicycle-mounted and vehicle-mounted inertial measurement units. Data were collected during multiple real-world urban acquisition sessions, resulting in 3,606 RGB images, each temporally aligned with inertial measurements, including cyclist orientation angles (yaw and roll). From these acquisitions, cyclist-centered image crops were generated and manually annotated, resulting in polygon-based semantic segmentation labels, region-of-interest detection files, and relative depth maps estimated from the RGB images. To improve angular coverage, a targeted data augmentation strategy based on horizontal image flipping was applied to underrepresented orientation ranges, resulting in the generation of 718 additional samples. The final dataset comprises 4,324 synchronized multimodal samples organized in a hierarchical directory structure that preserves one-to-one correspondence across all data modalities. Conclusions The CYCLIST+IMU dataset provides synchronized RGB image crops, inertial orientation metadata, semantic segmentation annotations, relative depth maps, and detection files for 4,324 cyclist instances captured under real urban traffic conditions. By explicitly integrating visual and inertial data with precise temporal alignment and detailed documentation, this dataset enables reproducible research on cyclist orientation estimation, semantic segmentation, and multimodal sensor fusion for intelligent transportation systems. READ ALL READ LESS Keywords Cyclist dataset, Visual–inertial dataset, Cyclist orientation, Yaw and roll angles, Vulnerable road users, Semantic segmentation, Depth maps, Urban traffic scene. Corresponding Author(s) Luis Gómez-Meneses ( [email protected] ) Close Corresponding author: Luis Gómez-Meneses Competing interests: No competing interests were disclosed. Grant information: The author(s) declared that no grants were involved in supporting this work. Copyright: © 2026 Gómez-Meneses L et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. How to cite: Gómez-Meneses L, Arias-Correa M, Herrera-Ramírez J and Ballesteros JR. CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban environments [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :527 ( https://doi.org/10.12688/f1000research.177481.1 ) First published: 15 Apr 2026, 15 :527 ( https://doi.org/10.12688/f1000research.177481.1 ) Latest published: 15 Apr 2026, 15 :527 ( https://doi.org/10.12688/f1000research.177481.1 ) 1. Introduction Time has proven that conventional cars are remarkably inefficient. They don’t just consume energy but also erode human health and productivity. The paradox of private ownership exacerbates this, as vehicles spend most of their existence idle, wasting precious space and materials. Driven by these shortcomings, a global interest in autonomous vehicles (AVs) has surged since the 1980s, mobilizing universities and industry leaders to rethink the very nature of mobility ( Badue et al., 2019 ; Thrun, 2010 ; Narula & Tyagi, 2023 ). The integration of AVs -whether for personal or public use- into heterogeneous traffic settings demands an interactive capability that transcends rudimentary obstacle recognition. These systems must interface harmoniously and safely with manual drivers, cyclists, and pedestrians. Within these shared environments, human participants navigate through an intricate web of implicit cues, such as nuanced adjustments in approach speed, alongside explicit signals like eye contact or hand gestures. These interactions establish a mutual consensus that enables the fluid synchronization of future maneuvers among road participants. However, contemporary AV architectures tend to prioritize a strict, rationalist framework of collision avoidance over social negotiation. Consequently, these vehicles frequently manifest non-human patterns, including abrupt halts, hesitant movements, or excessive delays at junctions. Such behaviors disrupt the temporal rhythm of traffic and can, paradoxically, undermine overall systemic safety ( Brown & Laurier, 2017 ; Brown, Broth & Vinkhuyzen, 2023 ). The operational scope of an AV necessitates the accurate identification of both road signage and traffic participants, specifically those lacking a protective mechanical framework—such as pedestrians and cyclists. Categorized as ‘Vulnerable Road Users’ (VRUs), these individuals are exposed to a disproportionate risk of sustaining severe injuries or fatalities in the event of traffic accidents ( Flohr, 2018 ; Mannion, 2019 ). Road traffic injuries have persisted as the twelfth leading cause of death across all age groups globally. Within this context, VRUs account for more than half of the 1.19 million annual fatalities reported by the World Health Organization ( WHO, 2023 ). As seen in Figure 1 , cyclists account for 5% of these global deaths, a percentage that has increased by nearly 20% over the last decade. This vulnerability is further intensified when cyclists must navigate mixed traffic environments, where safety is predicated on the mutual understanding of motion; a form of social coordination that contemporary autonomous systems still struggle to replicate ( Ghoul & Sayed, 2025 ; Lu et al., 2025 ). Figure 1. Global percentage distribution of country-reported deaths by road users. Source: ( World Health Organization, 2023 ). Cyclist detection persists as a challenge for AV perception systems, primarily due to the inherent visual complexity associated with non-rigid articulations, highly variable aspect ratios, and a diverse range of spatial orientations. Beyond the technical impediments posed by occlusions and cluttered urban environments, contemporary research underscores that mere classification is insufficient. Systems must achieve a sophisticated understanding of behavioral intent through advanced frameworks ( Corral-Soto et al., 2025b ). Consequently, the estimation of orientation angles has transitioned from a secondary metric to a critical precursor for the ‘reflexive adjustment’ required for an AV to safely navigate and avoid collisions with cyclists ( Brown et al., 2023 ). Regardless of the previously addressed technical and social imperatives, a systematic examination of cyclist datasets published between 2023 and 2025 reveals a significant deficit in metadata fidelity. Contemporary repositories fail to provide three-dimensional orientation parameters (Roll, Pitch, Yaw) integrated with the cyclist’s posture within the image frame, as illustrated in Table 1 . This lack of data limits the ability of AVs to interpret the cyclist’s body language and, consequently, delays the achievement of what Brown et al. (2023) term the ‘sociality of traffic’ for AVs. Table 1. Comparative analysis of cyclist datasets (2023–2025). Source: Authors. Work (APA citation) Dataset characteristics Does it include orientation angles (Roll, Pitch, Yaw) and acquisition method Chiang, C. Y., et al. (2024) . AllTheDocks road safety dataset: A cyclist’s perspective and experience. AllTheDocks: Collected in London through citizen science. Includes video (61.68 km), accelerometer, GPS, and gyroscope data. No (for cyclists in the image). The dataset includes gyroscope data (GyroX, GyroY, GyroZ), but these correspond exclusively to the ego-cyclist carrying the camera. Method: Telemetry extracted from helmet-mounted GoPro cameras. Yan, Z., Li, J., Hang, P., & Sun, J. (2025) . OnSiteVRU: A high-resolution trajectory dataset for high-density vulnerable road users. OnSiteVRU: High-resolution trajectory data (0.04 s) collected in China. Covers intersections, road segments, and urban villages with 17,429 VRU trajectories. No (partial). Only includes the heading angle (direction of motion relative to the X-axis). Roll and pitch for the cyclist posture in the image are not provided. Method: Extraction using elevated vision cameras (YOLOv7/DeepSORT) and onboard vehicle sensors (LiDAR/IMU). Goren, D., & Caesar, H. (2025) . BikeScenes: Online LiDAR semantic segmentation for bicycles. BikeScenes-lidarseg: LiDAR semantic segmentation dataset captured from a bicycle perspective. Contains 3,021 scans annotated into 29 semantic classes. No. Although the SenseBike platform includes an IMU for ego-motion compensation, cyclist metadata corresponds only to semantic segmentation labels, not orientation angles. Method: Offline LiDAR point cloud registration with GLIM and manual scan-level annotation. Li, M., et al. (2025) . A benchmark for cycling close pass detection from video streams. Cyc-CP: Benchmark combining Victorian On-road Cycling (VOC) data and CARLA synthetic data. Focuses on close pass overtaking events. No (partial). Predicts allocentric orientation angle (θ) of the overtaking vehicle. Roll, pitch, and yaw for cyclist posture are not defined. Method: Monocular 3D detection using FCOS3D on single-view video. Desai, N. P., Etemad, A., & Greenspan, M. (2025) . CycleCrash: A dataset of bicycle collision videos for collision prediction and analysis. CycleCrash: 3,000 dashcam videos with 436,347 frames depicting cyclist collisions and near-miss events. No. Direction annotations are limited to five discrete classes (forward, backward, left, right, stationary). Method: Web video curation and manual annotation based on traffic rules. Corral-Soto, E. R., et al. (2025a) . 3DArticCyclists: Generating synthetic articulated 8D pose-controllable cyclist data for computer vision applications. 3DArticBikes/3DArticCyclists: Hybrid synthetic–real dataset addressing cyclist data scarcity for autonomous driving. Includes 11,086 cyclist–bicycle configurations. Yes. Provides full 3D orientation parameters (θx, θy, θz corresponding to roll, pitch, and yaw). Method: Synthetic generation using Blender and 3D Gaussian Splatting, with pose refinement via inverse kinematics based on real video data processed with CLIFF. To address the identified lack of data, this paper presents a multimodal cyclist dataset that synchronizes real-world RGB imagery, depth maps, and semantic segmentation with precise, frame-by-frame inertial telemetry. Unlike contemporary synthetic frameworks—such as 3DArticCyclists ( Corral-Soto et al., 2025a )—this dataset provides empirical ground truth for three-axis orientation (Roll, Pitch, Yaw) and triaxial acceleration (Ax, Ay, Az). By integrating these dynamic parameters, the proposed dataset enables the training of autonomous navigation models that move beyond rudimentary collision avoidance, facilitating the complex social coordination required to achieve the ‘sociality of traffic’ ( Brown et al., 2023 ). 2. Materials and methods 2.1 Data acquisition system Cyclist images and synchronized visual–inertial data were captured using the CYCLOPS system (cyclists’ orientation data acquisition system using RGB camera and inertial measurement units). This original development consists of a node located on a vehicle and another on a bicycle. The vehicle node includes a monocular RGB camera, an inertial measurement unit (IMU), an RF transceiver, and a microcontroller. The bicycle node includes an IMU, an RF transceiver, and a microcontroller. The system facilitates the acquisition of images of a moving cyclist and associates each image with both acceleration and orientation angles (Ax, Ay, Az, Roll, Pitch, Yaw), as illustrated in Figure 2 . Similarly, camera acceleration and orientation angles are acquired at the vehicle to subsequently obtain relative values (cyclist relative to camera) and establish the cyclist’s real orientation in each image acquired from the vehicle while both are moving in an urban environment. Figure 2. Frame assignment for both, the camera attached to a car’s windshield (over the vehicle) and the bicycle’s top tube (cyclist). For the vehicle, the axes have been named Xv, Yv, and Zv, and rotations around the axis are ROLLv, PITCHv, and YAWv (respectively). Similarly, the frame for the cyclist has axes Xc, Yc, and Zc, and rotations around the axis are ROLLc, PITCHc, and YAWc (respectively). Source: Adapted from the original in Arias-Correa et al. (2024) . A significant achievement of the CYCLOPS acquisition system lies in the synchronization between images and 6-axis motion data for both actors. Full details regarding the open-source hardware architecture, the IMU-based sensor fusion, and the software suite (VideoCapture) are documented in Arias-Correa et al. (2024) , ensuring complete experimental reproducibility. A general diagram of the hardware and software for each node (cyclist node and camera node) of the CYCLOPS system is presented in Figure 3 . Figure 3. Diagram of the hardware and software for each node of the CYCLOPS system. The block Cyclist includes a printed circuit board (PCB), which comprises an IMU, an Arduino Nano board (Microcontroller-C), and a transceiver HC12 in transmission mode (Transceiver-C) with an antenna. Similarly, the block camera includes the RGB camera mounted on the vehicle’s windshield, an IMU (IMU-V), an Arduino Nano board (Microcontroller-V), and a transceiver HC12 (Transceiver-V) with an antenna. Both the camera and the PCB send data to the acquisition software running on a computer. Source: Adapted from the original in Arias-Correa et al. (2024) . 2.2 Visual–inertial data synchronization The CYCLOPS system implements a hardware-level synchronization protocol to ensure precise temporal registration between the visual–inertial data from the RGB camera and the high-frequency inertial data from the IMU sensors. This synchronization is executed at the point of acquisition via a deterministic software architecture that manages concurrent sensor triggering and logging across both bicycle-mounted and vehicle-mounted nodes. Specifically, each RGB frame is hardware-level synchronized to a discrete set of inertial measurements captured at the exact timestamp t k of the camera’s shutter release. This one-to-one temporal mapping constitutes the fundamental visual–inertial sample of the dataset. For every image captured by the vehicle node, the system captures the cyclist’s instantaneous kinematic state, including orientation variables such as yawb and rollb referenced to the coordinate frames established during system calibration. Crucially, this process is managed in real-time using a unified system clock, which precludes the need for subsequent corrections such as temporal interpolation, resampling, or offline alignment. By avoiding these post-processing steps, the CYCLOPS dataset maintains the integrity of the raw sensor data, providing a high-fidelity, temporally consistent snapshot of the cyclist’s pose and motion at the precise moment of visual capture as seen in Figure 4 . Figure 4. Result of the CYCLOPS acquisition process. The figure shows the output generated by the CYCLOPS system for several consecutive RGB image frames acquired by the vehicle-mounted camera, together with their corresponding inertial measurements stored in format. Each image frame is temporally synchronized with a discrete set of inertial data captured at the exact acquisition instant, establishing a one-to-one correspondence between visual and inertial information. This synchronized visual–inertial data product represents the final output of the CYCLOPS framework. All details regarding the CYCLOPS hardware components (including camera and IMU models), synchronization strategy, calibration procedures, and data verification experiments are fully described and validated in Arias-Correa et al. (2024) and are therefore not repeated here. Each RGB image captured by the vehicle-mounted camera is associated with a corresponding set of inertial measurements describing the cyclist’s motion and orientation at the time of capture. Orientation variables, including yaw and roll, are derived from the inertial measurements and expressed in their respective reference frames as defined by the system configuration. Although the dataset also includes pitch measurements, this variable is not explicitly discussed here because the subsequent analysis and data augmentation procedures focus exclusively on yaw and roll. 2.3 Data Acquisition Protocol Data were collected across multiple independent acquisition sessions conducted in urban environments. Each session is identified using the label Adq_x and corresponds to a continuous recording sequence acquired while the cyclist and the acquisition vehicle were in motion under real traffic conditions. During each acquisition session, RGB images of the cyclist were recorded using the vehicle-mounted camera, while inertial measurements describing the cyclist’s motion and orientation were simultaneously captured by the bicycle-mounted and vehicle-mounted IMUs. A single sample is defined as an RGB image associated with its corresponding synchronized inertial measurements, including orientation angles such as yaw and roll, as described in Section 2.2 . The acquisition protocol was designed to capture natural cyclist behavior in unconstrained urban scenarios. Data were collected under daytime lighting conditions on public roads, without imposing specific trajectories or maneuvers on the cyclist beyond normal riding behavior. Following data collection, a basic quality control process was applied to the acquired data. Samples exhibiting acquisition failures, severe occlusions of the cyclist, or loss of visual–inertial synchronization were excluded from the dataset. Only samples in which the cyclist was clearly visible, and the corresponding inertial data were successfully recorded and retained for further processing and inclusion in the dataset. In this work, a total of 3,606 RGB images were acquired, each associated with its corresponding inertial measurements obtained from the IMU units of the CYCLOPS system. Images and inertial data are stored following a hierarchical file structure designed to preserve the temporal correspondence between each image and its associated orientation and acceleration records. After data acquisition, the RGB images were manually annotated using the DarkLabel tool ( https://github.com/darkpgmr/DarkLabel ) to identify and delineate the cyclist region of interest (ROI). The resulting annotations were exported in YOLO format (*.txt files), providing normalized bounding box coordinates for each cyclist and enabling their direct use in object detection and subsequent analysis pipelines. 2.4 Image processing To construct a dataset suitable for computer vision tasks, additional processing was applied to the cyclist region-of-interest (ROI) images extracted from the original RGB images. This processing stage includes manual semantic segmentation of the cyclist and the generation of relative depth maps, as illustrated in Figure 5 . Figure 5. RGB image processing stages. (a) Manual segmentation of the cyclist from RGB images using the LabelMe annotation tool, where the region corresponding to the cyclist is precisely delineated. (b) Depth map estimation from RGB images using an encoder–decoder model, generating a complementary geometric representation of the cyclist and the surrounding environment. Polygon-based semantic segmentation of the cyclist was performed using the LabelMe annotation tool ( Russell et al., 2008 ), which supports polygon-based annotation and is widely used in computer vision applications. As illustrated in Figure 5a , for each RGB image, the region corresponding to the cyclist was manually delineated using polygonal annotations. This procedure was applied to the entire dataset to ensure a consistent and precise definition of the region of interest across all samples. The resulting annotations were stored in JSON format, preserving the geometric information required for subsequent processing and reuse. In parallel, the RGB images were processed to obtain depth maps using the Depth Anything model ( Yang et al., 2024 ), as shown in Figure 5b . Depth Anything follows a base-model paradigm, and is trained at a large scale using unlabeled data, enabling robust generalization across diverse visual scenes. Although alternative approaches such as MiDaS have demonstrated strong performance through supervised and weakly supervised training on curated datasets ( Ranftl et al., 2020 ; Birkl et al., 2023 ). The Depth Anything model was selected due to its ability to produce consistent relative depth estimates without relying on task-specific supervision. The depth maps included in the CYCLIST+IMU dataset represent relative depth and have been stored as 8-bit grayscale images, where depth values (non-metric) were normalized and linearly mapped to the range [0, 255] before saving in JPEG format. These depth maps are provided as complementary geometric context to the RGB images and semantic annotations. 2.5 Data augmentation To enhance the coverage of cyclist orientations and increase the angular diversity of the dataset, a data augmentation strategy based on geometric transformations was applied. This strategy was designed to expand the range of represented orientations while preserving the physical coherence and visual consistency of the samples. Data augmentation was performed using a horizontal flipping transformation applied to the RGB images. This operation generates additional samples by flipping the original images along the vertical axis, thereby increasing orientation diversity without introducing artificial visual artifacts or altering the geometric structure of the cyclist and the surrounding environment. To maintain consistency between the visual content and the associated orientation labels, yaw and roll values were deterministically updated following the transformation. Under horizontal flipping, yaw angles were transformed according to: yaw′ = 360° − yaw. Meanwhile, roll values were inverted as: roll′ = − roll. This transformation was applied only to samples belonging to selected underrepresented yaw intervals, as identified during the dataset validation stage ( Section 3.1 ). An illustrative example of the data augmentation process is shown in Figure 6 , where the original image, the augmented image, and the corresponding updates to yaw and roll angles are presented. Figure 6. Example of data augmentation using horizontal image flipping. The original RGB image and the corresponding augmented image obtained by horizontal flipping are shown. Yaw and roll angles are deterministically updated to preserve geometric consistency, with ( yaw’ = 360°-yaw ) and ( roll’ = −roll ). 2.6 Dataset structure and organization. The dataset is organized using a hierarchical directory structure designed to preserve traceability between original acquisitions and all derived data products. At the top level, the dataset is divided into two main directories: Original_Image, containing the raw RGB images, and Image_Crops, which stores all processed cyclist-centered data. Within Image_Crops, data are grouped into acquisition-level subdirectories labeled Adq_x, where x denotes an independent synchronized recording session, integrating RGB imagery and inertial measurement unit (IMU) data. Each Adq_x directory contains four modality-specific subfolders: RGB_IMAGE (cropped RGB images), Detection (region-of-interest detection files), Polygons (polygon-based semantic segmentation annotations in JSON format), and Depth_Map (relative depth maps). Each acquisition session also includes a metadata file (Adq_x.xlsx) consolidating inertial information, including cyclist orientation parameters (yaw and roll), and unique identifiers linking all data modalities. File naming follows the convention Adq_x (n), ensuring a strict one-to-one correspondence among RGB images, detection files, segmentation annotations, depth maps, and inertial measurements. An overview of the dataset structure is provided in Figure 7 , and a summary of dataset contents and file formats is presented in Table 2 . Figure 7. Hierarchical organization of the CYCLIST+IMU dataset. The dataset is structured to preserve traceability between the original multimodal acquisitions and all derived data products. Raw RGB images are stored in the Original_Image directory, while processed cyclist-centered data are organized under Image_Crops by acquisition session (Adq_x). Each Adq_x represents a synchronized acquisition unit integrating RGB imagery and inertial measurement unit (IMU) data, including cyclist orientation parameters such as yaw and roll observed from the acquisition vehicle. For each session, cropped RGB images, region-of-interest detection files, relative depth maps, and polygon-based semantic segmentation annotations are stored in modality-specific subdirectories using a consistent naming convention that ensures a strict one-to-one correspondence across data types. Table 2. Summary of the generated dataset structure. Source: Authors. Data type Format Quantity Cyclist RGB images .JPG 4324 Segmentation polygons .JSON 4324 Depth maps .JPG 4324 Cyclist detection annotations .TXT 4324 IMU data .XLSX 4324 Table 2 presents the complete description of the dataset generated in this work. 3. Dataset validation A dataset validation procedure was conducted to assess the internal consistency, angular coverage, and coherence of the visual–inertial orientation metadata. Validation focuses on descriptive and structural properties of the dataset rather than on model performance, in accordance with the scope of a Data Note. 3.1 Angular consistency and coverage. The CYCLOPS orientation angles include yaw and roll, which require different statistical treatments due to their measurement domains. Yaw is a periodic variable defined over [0°, 360°), while roll is restricted to a narrow, non-periodic range around zero (approximately −20° to 20°). Yaw distributions were analysed using circular statistics to avoid discontinuities at the 0°/360° boundary, computing circular mean, median, and deviation with the pycircstat Python library. Roll values were characterised using standard linear descriptive statistics (mean, median, and standard deviation). Figure 8 shows the yaw and roll distributions prior to data augmentation, and Table 3 reports the corresponding descriptive statistics, confirming adequate angular coverage of cyclist orientations under real-world riding conditions. Figure 8. Distribution of angular variables acquired by the CYCLOPS system. (a) Circular distribution of cyclist orientation angles (yaw), represented using circular statistics to account for the periodic nature of the variable over the [0°, 360°) range. (b) Linear distribution of cyclist inclination angles (roll), analysed using linear statistics due to their bounded range around 0°. Table 3. Descriptive statistics of the angular variables ( yaw and roll ) in the CYCLOPS dataset. Source: Authors. Yaw Roll Total samples: 3606 Total samples: 3606 Circular mean: 297.05° Mean: 0.44° Circular median: 283.81° median: −0.81° Circular deviation: 141.12° Standard deviation: 9.68° 3.2 Validation of the data augmentation strategy. The data augmentation procedure based on horizontal image flipping was validated to ensure geometric consistency between RGB images and orientation angles. After augmentation, yaw and roll values were deterministically updated following the transformation rules defined in the Methods section. Consistency between augmented images, updated orientation angles, and the associated segmentation polygons, detection files, and relative depth maps was verified through visual inspection. Figure 6 illustrates the augmentation process, while Figure 9 shows the post-augmentation distributions of yaw and roll, highlighting the angular regions targeted to improve coverage. Figure 9. Post-augmentation distribution of cyclist orientation and inclination variables. (a) Circular distribution of orientation angles ( yaw ) after data augmentation. Angular bins highlighted in red indicate the yaw intervals selected for horizontal flipping and sample augmentation. (b) Linear distribution of inclination angles ( roll ) after data augmentation. Red-highlighted bins correspond to the roll range associated with the augmented samples, while blue bins represent the remaining original and augmented data. Table 4 summarizes the descriptive statistics after augmentation, confirming enhanced angular coverage without altering the overall structure of the original dataset. Table 4. Descriptive statistics of the angular variables ( yaw and roll ) after data augmentation in the CYCLOPS dataset. Source: Authors. Yaw Roll Total samples: 4324 Total samples: 4324 Circular mean: 307.15° Mean: −0.34° Circular median: 295.56° median: −0.56° Circular deviation: 140.22° Standard deviation: 8.94° Ethical considerations The data presented in this Data Note were collected in public urban environments under natural traffic conditions. The acquisition protocol consisted of recording cyclist behavior in real-world settings without clinical intervention, behavioral manipulation, or collection of personal identifiers. All cyclists recorded in this dataset were adult volunteers known to the research team and were fully informed about the purpose of the data acquisition and the intended public release of the dataset. Informed consent for participation and publication of anonymized data was obtained verbally prior to data collection. Written consent was not deemed necessary because no personal identifiable information was collected, and all visual data were anonymized prior to public release. No personal data such as names, identification numbers, contact information, or biometric identifiers were collected or stored during acquisition. Prior to publication, all captured visual images included in both the publicly released dataset and this manuscript were automatically processed using a YOLO-based face detection model, and any detected facial regions were anonymized through Gaussian blurring (21 × 21 kernel) to prevent individual identification. This anonymization procedure was systematically applied to all applicable captured images before public release. Derived data products such as segmentation masks, depth maps, and inertial metadata do not contain identifiable facial information. Because the released dataset does not contain personally identifiable information and consists of non-interventional observational recordings conducted with informed adult volunteers in public environments, this study qualifies as research without risk according to Colombian national regulations governing health research involving human participants (Resolution 8430 of 1993, Ministry of Health of Colombia). Under these regulations and applicable institutional guidelines, formal approval from an Institutional Review Board (IRB) or ethics committee was not required. The individuals shown in Figures 4 , 5 , and 6 , as well as all individuals appearing in the publicly released dataset, correspond to the same adult volunteers who provided informed consent for participation and publication of anonymized images. No third-party individuals were intentionally included in the dataset. The study was conducted in accordance with the ethical principles outlined in the Declaration of Helsinki, insofar as applicable to non-interventional observational data collection. Data availability Open Science Framework (OSF). CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban environments. https://doi.org/10.17605/OSF.IO/HVPKZ ( Gómez-Meneses et al., 2026 ). This project contains the following underlying data: • CYCLIST_IMU_Dataset.zip (Complete dataset including RGB images, cyclist-centered image crops, inertial measurement files (.xlsx), semantic segmentation polygons (.json), region-of-interest detection annotations (.txt), and relative depth maps (.jpg), organized by acquisition session.) Data is available under the terms of the Creative Commons Attribution 4.0 International copyright (CC BY 4.0) license. Acknowledgements The authors have no acknowledgements to declare. References Arias-Correa M, Robledo S, Londoño M, et al. : CYCLOPS: A cyclists’ orientation data acquisition system using RGB camera and inertial measurement units (IMU). HardwareX. 2024; 18 : e00534. PubMed Abstract | Publisher Full Text | Free Full Text Badue C, Guidolini R, Carneiro RV, et al. : Self-driving cars: A survey. Expert Syst. Appl. 2019; 165 : 113816. Publisher Full Text Birkl R, Wofk D, Müller M: MiDaS v3.1 – A model zoo for robust monocular relative depth estimation. arXiv preprint, arXiv:2307.14460. 2023. Reference Source Brown B, Laurier E: The trouble with autopilots: Assisted and autonomous driving on the social road. Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems. ACM; 2017; pp. 416–429. Publisher Full Text Brown B, Broth M, Vinkhuyzen E: The halting problem: Video analysis of self-driving cars in traffic. Proceedings of the 2023 CHI Conference on Human Factors in Computing Systems. ACM; 2023; pp. 1–14. Publisher Full Text Chiang CY, Zhong R, Ding J, et al. : AllTheDocks road safety dataset: A cyclist's perspective and experience. 2024 IEEE 99th Vehicular Technology Conference (VTC2024-Spring). IEEE; 2024, June; pp. 1–5. Corral-Soto ER, Liu Y, Ren Y, et al. : 3DArticCyclists: Generating Synthetic Articulated 8D Pose-Controllable Cyclist Data for Computer Vision Applications. 2025 IEEE Intelligent Vehicles Symposium (IV). IEEE; 2025a, June; pp. 2114–2121. Corral-Soto ER, Liu Y, Ren Y, et al. : Monocular Visual 8D Pose Estimation for Articulated Bicycles and Cyclists. arXiv preprint arXiv:2510.20158. 2025b. Desai NP, Etemad A, Greenspan M: CycleCrash: A Dataset of Bicycle Collision Videos for Collision Prediction and Analysis. 2025 IEEE/CVF Winter Conference on Applications of Computer Vision (WACV). IEEE; 2025, February; pp. 6688–6698. Flohr FB: Vulnerable road user detection and orientation estimation for context-aware automated driving. Universiteit van Amsterdam). UvA-DARE (Digital Academic Repository); 2018. (Doctoral dissertation). Goren D, Caesar H: BikeScenes: Online LiDAR Semantic Segmentation for Bicycles. arXiv preprint arXiv:2510.25901. 2025. Ghoul T, Sayed T: Cyclist safety assessment using autonomous vehicles. Accid. Anal. Prev. 2025; 212 : 107923. PubMed Abstract | Publisher Full Text Gómez-Meneses L, Arias-Correa M, Herrera-Ramírez J, et al. : CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban environments [Data set]. Open Science Framework. 2026. Publisher Full Text Li M, Beck B, Rathnayake T, et al. : A benchmark for cycling close pass detection from video streams. Transportation Research Part C: Emerging Technologies. 2025; 174 : 105112. Publisher Full Text Lu H, Zhu M, Lu C, et al. : Empowering safer socially sensitive autonomous vehicles using human-plausible cognitive encoding. Proc. Natl. Acad. Sci. 2025; 122 (21): e2401626122. PubMed Abstract | Publisher Full Text | Free Full Text Mannion P: Vulnerable road user detection: State-of-the-art and open challenges. arXiv preprint arXiv:1902.03601. 2019. Reference Source Narula M, Tyagi D: Autonomous cars: A comprehensive survey. 2023 Seventh International Conference on Image Information Processing (ICIIP). IEEE; 2023; pp. 586–590. Publisher Full Text Thrun S: Toward robotic cars. Commun. ACM. 2010; 53 (4): 99–106. Publisher Full Text Ranftl R, Li J, Lasinger K, Hafner D, et al. : Towards robust monocular depth estimation: Mixing datasets for zero-shot cross-dataset transfer. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2022; 44 (3): 1623–1637. Publisher Full Text Russell BC, Torralba A, Murphy KP, et al. : LabelMe: A Database and Web-Based Tool for Image Annotation. Int. J. Comput. Vis. 2008; 77 (1–3): 157–173. Publisher Full Text World Health Organization: Global status report on road safety 2023.2023. Reference Source Yang L, Kang B, Huang Z, et al. : Depth anything: Unleashing the power of large-scale unlabeled data. arXiv. 2024. Reference Source Yan Z, Li J, Hang P, et al. : OnSiteVRU: A High-Resolution Trajectory Dataset for High-Density Vulnerable Road Users. arXiv preprint arXiv:2503.23365. 2025. Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 15 Apr 2026 ADD YOUR COMMENT Comment Author details Author details 1 Faculty of Engineering, Instituto Tecnologico Metropolitano, Medellín, Antioquia, Colombia 2 Design Engineering Research Group (GRID), Universidad EAFIT, Medellín, Antioquia, Colombia 3 Faculty of Exact and Applied Sciences, Instituto Tecnologico Metropolitano, Medellín, Antioquia, Colombia 4 Department of Computer Science and Decision Sciences, Universidad Nacional de Colombia Sede Medellin, Medellín, Antioquia, Colombia Luis Gómez-Meneses Roles: Conceptualization, Formal Analysis, Methodology, Project Administration, Software, Validation, Visualization, Writing – Original Draft Preparation Mauricio Arias-Correa Roles: Investigation, Resources, Writing – Original Draft Preparation Jorge Herrera-Ramírez Roles: Supervision, Validation, Writing – Review & Editing John R. Ballesteros Roles: Data Curation, Investigation, Validation Competing interests No competing interests were disclosed. Grant information The author(s) declared that no grants were involved in supporting this work. Article Versions (1) version 1 Published: 15 Apr 2026, 15:527 https://doi.org/10.12688/f1000research.177481.1 Copyright © 2026 Gómez-Meneses L et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Download Export To Sciwheel Bibtex EndNote ProCite Ref. Manager (RIS) Sente metrics Views Downloads F1000Research - - PubMed Central info_outline Data from PMC are received and updated monthly. - - Citations open_in_new 0 open_in_new 0 open_in_new SEE MORE DETAILS CITE how to cite this article Gómez-Meneses L, Arias-Correa M, Herrera-Ramírez J and Ballesteros JR. CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban environments [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :527 ( https://doi.org/10.12688/f1000research.177481.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS track receive updates on this article Track an article to receive email alerts on any updates to this article. TRACK THIS ARTICLE Share Open Peer Review Current Reviewer Status: ? Key to Reviewer Statuses VIEW HIDE Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Version 1 VERSION 1 PUBLISHED 15 Apr 2026 Views 0 Cite How to cite this report: Pappalardo G. Reviewer Report For: CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban environments [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :527 ( https://doi.org/10.5256/f1000research.195711.r479065 ) The direct URL for this report is: https://f1000research.com/articles/15-527/v1#referee-response-479065 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 13 May 2026 Giuseppina Pappalardo , University of Catania, Catania, Italy Approved with Reservations VIEWS 0 https://doi.org/10.5256/f1000research.195711.r479065 The paper presents a valuable multimodal dataset (CYCLIST+IMU) that combines visual and inertial data to improve cyclist perception in urban environments. The dataset is well-structured, technically sound, and addresses a relevant gap in current research by including cyclist orientation information. ... Continue reading READ ALL The paper presents a valuable multimodal dataset (CYCLIST+IMU) that combines visual and inertial data to improve cyclist perception in urban environments. The dataset is well-structured, technically sound, and addresses a relevant gap in current research by including cyclist orientation information. However, several key issues need to be addressed to ensure scientific robustness: Participant description is insufficient : there is no clear information on the number, demographics, or variability of cyclists, limiting representativeness. Limited scenario diversity : data are collected under constrained conditions (e.g., daytime only), reducing generalizability. Validation is weak : it relies mainly on descriptive statistics, without assessing annotation quality, synchronization accuracy, or practical usability. Figures are unclear : their size and design make it difficult to interpret results and understand improvements (e.g., after data augmentation). Is the rationale for creating the dataset(s) clearly described? Yes Are the protocols appropriate and is the work technically sound? Yes Are sufficient details of methods and materials provided to allow replication by others? No Are the datasets clearly presented in a useable and accessible format? Yes Competing Interests: No competing interests were disclosed. Reviewer Expertise: Cyclist safety I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Pappalardo G. Reviewer Report For: CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban environments [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :527 ( https://doi.org/10.5256/f1000research.195711.r479065 ) The direct URL for this report is: https://f1000research.com/articles/15-527/v1#referee-response-479065 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Respond or Comment COMMENT ON THIS REPORT Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 15 Apr 2026 ADD YOUR COMMENT Comment keyboard_arrow_left keyboard_arrow_right Open Peer Review Reviewer Status info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Reviewer Reports Invited Reviewers 1 Version 1 15 Apr 26 read Giuseppina Pappalardo , University of Catania, Catania, Italy Comments on this article All Comments (0) Add a comment Sign up for content alerts Sign Up You are now signed up to receive this alert Browse by related subjects keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2026 Pappalardo G. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. 13 May 2026 | for Version 1 Giuseppina Pappalardo , University of Catania, Catania, Italy 0 Views copyright © 2026 Pappalardo G. This is an open access peer review report distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. format_quote Cite this report speaker_notes Responses (0) Approved With Reservations info_outline Alongside their report, reviewers assign a status to the article: Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions The paper presents a valuable multimodal dataset (CYCLIST+IMU) that combines visual and inertial data to improve cyclist perception in urban environments. The dataset is well-structured, technically sound, and addresses a relevant gap in current research by including cyclist orientation information. However, several key issues need to be addressed to ensure scientific robustness: Participant description is insufficient : there is no clear information on the number, demographics, or variability of cyclists, limiting representativeness. Limited scenario diversity : data are collected under constrained conditions (e.g., daytime only), reducing generalizability. Validation is weak : it relies mainly on descriptive statistics, without assessing annotation quality, synchronization accuracy, or practical usability. Figures are unclear : their size and design make it difficult to interpret results and understand improvements (e.g., after data augmentation). Is the rationale for creating the dataset(s) clearly described? Yes Are the protocols appropriate and is the work technically sound? Yes Are sufficient details of methods and materials provided to allow replication by others? No Are the datasets clearly presented in a useable and accessible format? Yes Competing Interests No competing interests were disclosed. Reviewer Expertise Cyclist safety I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. reply Respond to this report Responses (0) Pappalardo G. Peer Review Report For: CYCLIST+IMU: A synchronized visual–inertial dataset for cyclist orientation and perception in urban environments [version 1; peer review: 1 approved with reservations] . F1000Research 2026, 15 :527 ( https://doi.org/10.5256/f1000research.195711.r479065) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://f1000research.com/articles/15-527/v1#referee-response-479065 Alongside their report, reviewers assign a status to the article: Approved - the paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations - A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved - fundamental flaws in the paper seriously undermine the findings and conclusions Adjust parameters to alter display View on desktop for interactive features Includes Interactive Elements View on desktop for interactive features Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Stay Updated Sign up for content alerts and receive a weekly or monthly email with all newly published articles Register with F1000Research Already registered? Sign in Not now, thanks close PLEASE NOTE If you are an AUTHOR of this article, please check that you signed in with the account associated with this article otherwise we cannot automatically identify your role as an author and your comment will be labelled as a “User Comment”. If you are a REVIEWER of this article, please check that you have signed in with the account associated with this article and then go to your account to submit your report, please do not post your review here. If you do not have access to your original account, please contact us . All commenters must hold a formal affiliation as per our Policies . The information that you give us will be displayed next to your comment. User comments must be in English, comprehensible and relevant to the article under discussion. We reserve the right to remove any comments that we consider to be inappropriate, offensive or otherwise in breach of the User Comment Terms and Conditions . Commenters must not use a comment for personal attacks. When criticisms of the article are based on unpublished data, the data should be made available. I accept the User Comment Terms and Conditions Please confirm that you accept the User Comment Terms and Conditions. Affiliation ✕ refresh Please enter your institution. Note: To add your institution or organisation, start typing the name and then select the correct name from the list. Where applicable, the name will appear in both the original language and in English. Do not paste in the name. If the name does not appear in the drop-down list, we will display the information you have entered. ✕ refresh Country/Region * USA UK Canada China France Germany Afghanistan Aland Islands Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia and Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory British Virgin Islands Brunei Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Cook Islands Costa Rica Cote d'Ivoire Croatia Cuba Cyprus Czech Republic Democratic Republic of the Congo Denmark Djibouti Dominica Dominican Republic Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Ethiopia Falkland Islands Faroe Islands Federated States of Micronesia Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Heard Island and Mcdonald Islands Holy See (Vatican City State) Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Kosovo (Serbia and Montenegro) Kuwait Kyrgyzstan Lao People's Democratic Republic Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macao Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Minor Outlying Islands of the United States Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands Antilles New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island North Korea North Macedonia Northern Mariana Islands Norway Oman Pakistan Palau Palestinian Territory Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Reunion Romania Russian Federation Rwanda Saint Helena Saint Kitts and Nevis Saint Lucia Saint Pierre and Miquelon Saint Vincent and the Grenadines Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Slovakia Slovenia Solomon Islands Somalia South Africa South Georgia and the South Sandwich Is South Korea South Sudan Spain Sri Lanka Sudan Suriname Svalbard and Jan Mayen Swaziland Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand The Gambia The Netherlands Timor-Leste Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu UK USA Uganda Ukraine United Arab Emirates United States Virgin Islands Uruguay Uzbekistan Vanuatu Venezuela Vietnam Wallis and Futuna West Bank and Gaza Strip Western Sahara Yemen Zambia Zimbabwe Please select your country/region. You must enter a comment. Competing Interests Please disclose any competing interests that might be construed to influence your judgment of the article's or peer review report's validity or importance. Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Please state your competing interests The comment has been saved. An error has occurred. Please try again. Cancel Post var lTitle = "CYCLIST+IMU: A synchronized visual\–inertial...".replace("'", ''); var linkedInUrl = "http://www.linkedin.com/shareArticle?url=https://f1000research.com/articles/15-527/v1" + "&title=" + encodeURIComponent(lTitle) + "&summary=" + encodeURIComponent('Read the article by '); var deliciousUrl = "https://del.icio.us/post?url=https://f1000research.com/articles/15-527/v1&title=" + encodeURIComponent(lTitle); var redditUrl = "http://reddit.com/submit?url=https://f1000research.com/articles/15-527/v1" + "&title=" + encodeURIComponent(lTitle); linkedInUrl += encodeURIComponent('Gómez-Meneses L et al.'); var offsetTop = /chrome/i.test( navigator.userAgent ) ? 4 : -10; var addthis_config = { ui_offset_top: offsetTop, services_compact : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_expanded : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_custom : [ { name: "LinkedIn", url: linkedInUrl, icon:"/img/icon/at_linkedin.svg" }, { name: "Mendeley", url: "http://www.mendeley.com/import/?url=https://f1000research.com/articles/15-527/v1/mendeley", icon:"/img/icon/at_mendeley.svg" }, { name: "Reddit", url: redditUrl, icon:"/img/icon/at_reddit.svg" }, ] }; var addthis_share = { url: "https://f1000research.com/articles/15-527", templates : { twitter : "CYCLIST+IMU: A synchronized visual\–inertial dataset for.... Gómez-Meneses L et al., published by " + "@F1000Research" + ", https://f1000research.com/articles/15-527/v1" } }; if (typeof(addthis) != "undefined"){ addthis.addEventListener('addthis.ready', checkCount); addthis.addEventListener('addthis.menu.share', checkCount); } $(".f1r-shares-twitter").attr("href", "https://twitter.com/intent/tweet?text=" + addthis_share.templates.twitter); $(".f1r-shares-facebook").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + addthis_share.url); $(".f1r-shares-linkedin").attr("href", addthis_config.services_custom[0].url); $(".f1r-shares-reddit").attr("href", addthis_config.services_custom[2].url); $(".f1r-shares-mendelay").attr("href", addthis_config.services_custom[1].url); function checkCount(){ setTimeout(function(){ $(".addthis_button_expanded").each(function(){ var count = $(this).text(); if (count !== "" && count != "0") $(this).removeClass("is-hidden"); else $(this).addClass("is-hidden"); }); }, 1000); } close How to cite this report {{reportCitation}} Cancel Copy Citation Details $(function(){R.ui.buttonDropdowns('.dropdown-for-downloads');}); $(function(){R.ui.toolbarDropdowns('.toolbar-dropdown-for-downloads');}); $.get("/articles/acj/177481/195711") new F1000.Clipboard(); new F1000.ThesaurusTermsDisplay("articles", "article", "195711"); $(document).ready(function() { $( "#frame1" ).on('load', function() { var mydiv = $(this).contents().find("div"); var h = mydiv.height(); console.log(h) }); var tooltipLivingFigure = jQuery(".interactive-living-figure-label .icon-more-info"), titleLivingFigure = tooltipLivingFigure.attr("title"); tooltipLivingFigure.simpletip({ fixed: true, position: ["-115", "30"], baseClass: 'small-tooltip', content:titleLivingFigure + " " }); tooltipLivingFigure.removeAttr("title"); $("body").on("click", ".cite-living-figure", function(e) { e.preventDefault(); var ref = $(this).attr("data-ref"); $(this).closest(".living-figure-list-container").find("#" + ref).fadeIn(200); }); $("body").on("click", ".close-cite-living-figure", function(e) { e.preventDefault(); $(this).closest(".popup-window-wrapper").fadeOut(200); }); $(document).on("mouseup", function(e) { var metricsContainer = $(".article-metrics-popover-wrapper"); if (!metricsContainer.is(e.target) && metricsContainer.has(e.target).length === 0) { $(".article-metrics-close-button").click(); } }); var articleId = $('#articleId').val(); if($("#main-article-count-box").attachArticleMetrics) { $("#main-article-count-box").attachArticleMetrics(articleId, { articleMetricsView: true }); } }); var figshareWidget = $(".new_figshare_widget"); if (figshareWidget.length > 0) { window.figshare.load("f1000", function(Widget) { // Select a tag/tags defined in your page. In this tag we will place the widget. _.map(figshareWidget, function(el){ var widget = new Widget({ articleId: $(el).attr("figshare_articleId") //height:300 // this is the height of the viewer part. [Default: 550] }); widget.initialize(); // initialize the widget widget.mount(el); // mount it in a tag that's on your page // this will save the widget on the global scope for later use from // your JS scripts. This line is optional. //window.widget = widget; }); }); } close Error Close Add Reset F1000.MICROSERVICES.AFFILIATION = ''; $(document).ready(function () { $('.js-affiliations-form').each((index, form) => { new AffiliationForm({ formId: form.id, institutionErrorSelector: '.comment-enter-institution', departmentErrorSelector: '.comment-enter-department', placeSelector: '.js-add-comment-place', stateSelector: '.js-add-comment-state', zipCodeSelector: '.js-add-comment-zipcode', countrySelector: '.js-add-comment-country', countryErrorSelector: '.comment-enter-country', }); }); }); $(document).ready(function () { var reportIds = { "483535": 0, "483534": 0, "483533": 0, "483532": 0, "483531": 0, "479063": 0, "483540": 0, "483539": 0, "483538": 0, "483537": 0, "483536": 0, "476063": 0, "479071": 0, "476062": 0, "479070": 0, "479069": 0, "479068": 0, "479067": 0, "479066": 0, "479065": 1, "479064": 0, "476071": 0, "476070": 0, "476069": 0, "476068": 0, "476067": 0, "476066": 0, "476065": 0, "476064": 0, "479072": 0, "480951": 0, "480950": 0, "480959": 0, "480958": 0, "480957": 0, "480956": 0, "480955": 0, "480954": 0, "480953": 0, "480952": 0, }; $(".referee-response-container,.js-referee-report").each(function(index, el) { var reportId = $(el).attr("data-reportid"), reportCount = reportIds[reportId] || 0; $(el).find(".comments-count-container,.js-referee-report-views").html(reportCount); }); var uuidInput = $("#article_uuid"), oldUUId = uuidInput.val(), newUUId = "bf41e3cb-1acb-407b-a08e-87cf1f046fe2"; uuidInput.val(newUUId); $("a[href*='article_uuid=']").each(function(index, el) { var newHref = $(el).attr("href").replace(oldUUId, newUUId); $(el).attr("href", newHref); }); }); An innovative open access publishing platform offering rapid publication and open peer review, whilst supporting data deposition and sharing. Browse Gateways Collections How it Works Contact For Developers Cookie Notice Privacy Notice RSS Submit Your Research Follow us © 2012-2026 F1000 Research Ltd. ISSN 2046-1402 | Legal | Partner of Research4Life • CrossRef • ORCID • FAIRSharing R.templateTests.simpleTemplate = R.template(' $text $text $text $text $text '); R.templateTests.runTests(); var F1000platform = new F1000.Platform({ name: "f1000research", displayName: "F1000Research", hostName: "f1000research.com", id: "1", editorialEmail: "
[email protected]", infoEmail: "
[email protected]", usePmcStats: true }); $(function(){R.ui.dropdowns('.dropdown-for-authors, .dropdown-for-about, .dropdown-for-myresearch');}); // $(function(){R.ui.dropdowns('.dropdown-for-referees');}); $(document).ready(function () { if ($(".cookie-warning").is(":visible")) { $(".sticky").css("margin-bottom", "35px"); $(".devices").addClass("devices-and-cookie-warning"); } $(".cookie-warning .close-button").click(function (e) { $(".devices").removeClass("devices-and-cookie-warning"); $(".sticky").css("margin-bottom", "0"); }); $("#tweeter-feed .tweet-message").each(function (i, message) { var self = $(message); self.html(linkify(self.html())); }); $(".partner").on("mouseenter mouseleave", function() { $(this).find(".gray-scale, .colour").toggleClass("is-hidden"); }); }); Sign In Remember me Forgotten your password? Sign In Cancel Email or password not correct. Please try again Please wait... $(function(){ // Note: All the setup needs to run against a name attribute and *not* the id due the clonish // nature of facebox... $("a[id=googleSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("GOOGLE"); $("form[id=oAuthForm]").submit(); }); $("a[id=facebookSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("FACEBOOK"); $("form[id=oAuthForm]").submit(); }); $("a[id=orcidSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("ORCID"); $("form[id=oAuthForm]").submit(); }); }); If you've forgotten your password, please enter your email address below and we'll send you instructions on how to reset your password. The email address should be the one you originally registered with F1000. Email address not valid, please try again You registered with F1000 via Google, so we cannot reset your password. To sign in, please click here . If you still need help with your Google account password, please click here . You registered with F1000 via Facebook, so we cannot reset your password. To sign in, please click here . If you still need help with your Facebook account password, please click here . Code not correct, please try again Reset password Cancel Email us for further assistance. Server error, please try again. If your email address is registered with us, we will email you instructions to reset your password. If you think you should have received this email but it has not arrived, please check your spam filters and/or contact for further assistance. Please wait... Register $(document).ready(function () { signIn.createSignInAsRow($("#sign-in-form-gfb-popup")); $(".target-field").each(function () { var uris = $(this).val().split("/"); if (uris.pop() === "login") { $(this).val(uris.toString().replace(",","/")); } }); });
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.