オッサンはDesktopが好き

自作PCや機械学習、自転車のことを脈絡無く書きます

iPhone Lidarでサドル高を測ってみた

 こんちには.changです.

 iPhoneライダーを使って自転車のサドル高を測ってみました. 精度は必ずしも十分と言えませんが,ポジションを3D計測するという新分野の可能性を感じました.

1. iPhone Lidar

 AppleがハイエンドのiPhoneおよびiPadに採用している3Dセンサです. iPhone 12およびiPad Pro 2020年モデルから導入されました. 3D分野に一応居る為,気にしています. iPhoneを新調した*1のも,Macを買った*2のも半ばこの為だったりします.

 ところがというか,,,3Dデータを活用したいシーンが日常には無いです. iPhoneを新調してから半年近く経つのですが,殆ど使っていません😓 流石に勿体無いと思って,今回無理やり使ってみることにしました.

2. サドル高

 自転車のサドル高には,ライダーの体格に応じた適正値があります. また,多くの自転車乗りの方には,普段から乗り慣れている高さがあると思います. 不意にサドル高が変わって元に戻せなくなったりすると,違和感を感じるものです.

 ロードバイクの場合,出先でサドル高を変えることは殆どないと思います. ライドに出る前に,家で,メジャー等を使って合わせるだけで事足ります. マウンテンバイクの場合は少し違くて,険しい降りを走る時や,バニーホップ等のBMX系トリックを練習するときにサドルを下げます. ドロッパーシートポストがあれば良いのですが,生憎,僕は持っていません. また,メモリの付いていないシートポストで,六角レンチで高さ調整をしています. (下りが終わって)サドル高を元に戻したつもりが,高すぎたり低すぎたりしてイライラすることが頻繁にあります.

 ライドにメジャーは持って行きませんが,スマフォは必ず携帯します. 今回,そのスマフォを使ってサドル高を測れないか試してみようと思います.

※ シートポストに印をつけておけばいいじゃん,というツッコミは置いておきます🤫

3. 実験方法

(1) 使用アプリ: 3D Scanner App

f:id:changlikesdesktop:20220223104641j:plain:w200
3D Scanner App

 未だ種類が少ないLidarアプリの中で,一番真面目に作っている印象を受けるアプリです. 無償にも関わらず,使いきれない程の機能があります.

(2) 正解値

 基準となる正確値は,普段から使用しているメジャーで取得しました. チバサイクルさんのブログで紹介されていた定義*3に従って,サドル上面からBBまでを測りました. 59 cmでした.

f:id:changlikesdesktop:20220223111310p:plain:w400
メジャーを用いたサドル高計測

(3) 計測手順

 屋外で計測するのが最終目標ですが,計測を安定させる為に今回は屋内で計測しました. スタンドに固定した状態で10回計測し,その都度サドル高を算出しました.

 サドル高の算出には,3D Scanner AppのTape Measureを使いました. ↓な感じで計測の開始点(サドル上面)と終了点(BB回転中心)を指でタップし,距離計測しました.

f:id:changlikesdesktop:20220223110403j:plain:w400
3D Scanner AppのTake Measureを用いたサドル高計測.左: Tape Measureを選択,中: サドル上面をタップ,右: BB回転中心をタップ

4. 結果と考察

(1) 計測結果

 10回分の計測結果です. 数値は59〜63 cmの範囲でばらつきました. 平均値は61.1 cmでした.

f:id:changlikesdesktop:20220223113751p:plain:w400
サドル高の計測結果

(2) 測定精度

 計測値のばらつきが最大で40 mmというのは,正直大きいです. サドル高へのこだわりは人それぞれかと思いますが,僕の場合にはサドル高が10 mm変わったら気持ちが悪いです. 膝関節が大きく伸びるポジションを取っている所為もありますが,下手したらペダリング出来なくなります. 残念ながら,iPhoneライダーによるサドル高計測は要求精度を満たさないという結果になります.

(3) 点群のばらつき

 計測値のばらつきにはいくつかの原因が考えられます. もっとも大きいと考えられるのが,取得する点群のばらつきです.

 測っていて分りましたが,スマフォの走査の仕方によってかなり結果が変わります. 例えば,下図左の様にサドルやシートチューブにフォーカスしてスキャンするよりも,下図右の用に少し遠目から,バイク全体を撮像した方が精度が良くなります. iPhone Lidarは,カメラ画像の変化からセンサの相対位置変化を算出していると思われます. この為,カメラに多少複雑な構造物や背景が写っていた方が,高精度になると考えられます. 意外に思われるかも知れませんが,バイクと関係のない背景(それも白壁とかではなく複雑な)を映り込ませるのも良いと思います. この辺の癖を理解し,再現性のある測り方を身につける必要がある訳ですが,,,少しナイーブ過ぎるかもですね💦

f:id:changlikesdesktop:20220223122549p:plain:w400
左: サドルとシートチューブに寄った計測,右: 自転車全体を捉え,ついでに背景も写り込んだ計測.右の方が画像の変化が豊富になり,高精度に計測できます

(4) 正確なサドル高って?

 今回のトライで認識させられたことがあります. 今までやってきたメジャーによる計測が決して十分では無いという事です.

 先に紹介したチバサイクルさんの記事には,「サドル高さは自転車のBB(ボトムブラケット)中心部分からシートチューブに沿って、サドル座面中央部までの距離を指す」とあります. 「シートチューブに沿って」というのは,鉛直面に沿ってという意味かと思います. つまり下図に描いた様に,サドル側の計測ポイントは実際のサドル面上には無く,サドル上から横にはみ出した空間上に在るのです. メジャーでこれを正確に捉える事は可能なのでしょうか❓

f:id:changlikesdesktop:20220223124553p:plain:w200
サドル高の3次元的定義.サドルの計測ポイントは空間上?

 この事は.iPhoneライダーの計測結果がメジャーよりも全体的に大きめになった結果とも関係しています. 3D Scanner Appでは点が存在しない空間上のポイントからTapeMeasure出来ませんでした. このため,算出されたサドル高はクランクの表面からサドル上面までの直線距離になっています. iPhoneライダーとメジャーでは,測定対象がそもそも異なるのです.

※ ちなみに上図の橙色のサドル高(メジャー)と白色のサドル高(iPhone Lidar)の差は,理論上0.5 cm程度したありません. 今回の検証でiPhone Lidarから得られたサドル高は,やはり全体的に大きめだったと言えます.

 今まで,メジャーで何を測っていたんだ?と疑問になってしまいました.

5. 追加調査: TrueDepth

 3D Scanner AppにはTrueDepthという機能があります. おまけで遊んでみました.

 通常のスキャンでは下図左のようにスマフォの画面を見ながら測ります. 一方TrueDepthでは,自撮り側のカメラを使って下図右の様に目測で測ります. 当然測るのが難しく,撮り直しが何度か発生しました. しかし,自撮りカメラ(=近い焦点で分解能が高い)を使うので,1 m以下の狭いエリアの計測では再現性が上がると感じました. 引き続き調べていこうと思います.

f:id:changlikesdesktop:20220223131458p:plain:w300
左: 通常スキャン,右: TrueDepth.TrueDepathは計測画面が見えないので難しいが,精度は上がる気がします

f:id:changlikesdesktop:20220223131008p:plain:w400
TrueDepthを使ったサドル高の計測.こっちの方が再現性があるかも???

6. むすび

 iPhone Lidarを使うかは兎も角,ポジションを3次元的に管理する重要性を感じました. 色々とヒントになった気がしています😀😀😀