英国で自転車利用者の命を奪う69度交差点の物理的特性

英国で自転車利用者の命を奪う69度交差点の物理的特性

インターネットで素晴らしい分析を見ると、ついついもっと素晴らしいものにしたくなります。本当は、インターネット上の誰もが目指すべき目標は、何かを作るか、それをもっと素晴らしいものにするかのどちらかであるべきなんです。

今回の記事は、Singletrack(Boing Boingでも取り上げられています)の記事で、イギリスのある交差点で自転車と車の事故が多発している状況を取り上げています。2011年、2012年、そして2016年にそれぞれ1件ずつ発生しており、いずれも運転手が自転車に道を譲らなかったことが原因のようです。

つまり、問題は交差点の角度(垂直ではない)と、車のフロントピラーからの死角の角度によって発生します。

私がやりたいのはこれです。Pythonで、車の動きと、反対側の道路にある死角(ピラーシャドウ)の位置を示すアニメーションを作りたいのです。死角の動きをモデル化すれば、その速度も計算できます。さらに良いことに、モデルを構築すれば、死角の位置や交差点の角度を変更するのは非常に簡単です(簡単というより、はるかに簡単です)。

始める前に、いくつか詳細が必要です。Singletackの投稿によると、2本の道路は69度の角度で交差しています。投稿には、柱の影に映った車の画像も掲載されています。Trackerの動画解析を使えば、車の前部と影の前端および後端の間の角度(19.4度~27.1度)を簡単に測定できます。念のため、影の概略図を以下に示します。これはイギリスで撮影されたものなので、ドライバーは車の反対側に座っていることに注意してください。

画像にはツールと斧が含まれている可能性があります

また、元の記事では、車が時速37マイル(時速約60キロ)で走行していると仮定しています(どこから得たのかは定かではありませんが、ここでは同じ値を使用します)。Pythonの説明に入る前に、計算がどのように行われるか理解しやすくするために、図を描いてみましょう。まずは、柱の影の先端と、それが反対側の道路に投影される様子から見ていきましょう。

画像には数字、テキスト、シンボル、プロットが含まれている可能性があります

最もシンプルな方法でモデルを作り始めます。柱の影の投影の先端部分を作成するだけです。しかし、事前にいくつか計算を行う必要があります。手順は以下のとおりです。詳細を知りたい場合は、コードに十分なコメントを追加して、理解できるようにしておきます。

  • 2本の道路は直線です。この2本の直線の方程式は、y = mx + b(傾きと切片)という形で表せます。簡単のため、どちらの直線も原点(点 x = 0, y = 0)を通ります。
  • 次に、最初の道路上の車の位置を見つけます。この車のX座標とY座標が必要です(難しくありません)。
  • 柱の影の前端を表す直線の方程式を求めます。これは、直線の点-傾きの公式を用いて求められます。直線の傾きは、車の前部と影の前端の間の角度から求められます。
  • 次に、影の線方程式と2つ目の道路の線方程式の交点を見つける必要があります。この交点のxとyの値が影の投影位置です。
  • 本当にそれだけです。あとは車を少し前進させて計算を繰り返すだけで、次の影の投影位置が分かります。

はい、その通りです。この影の動きをモデル化するのに、実際にはコンピュータプログラムは必要ありません。もしよければ、基本的な数学と微積分だけで影の投影速度を求めることもできますが、私はこちらの方法の方が好きです。

最初のモデルです。投影の先端部分のアニメーションです。再生ボタンをクリックしてコードを実行し、「鉛筆」アイコンをクリックしてコードを確認または編集してください。(編集しても何も変わりませんのでご安心ください。)

道路に投影された影が実際の車よりも遅く動いていることにすぐに気づくはずです。でも心配しないでください。速度についてはすぐに説明します。もう一つ変更を加えましょう。以下は同じ計算ですが、柱の影の前端と後端の両方が表示されています。

ここでは、車が交差点に近づくにつれて、道路への柱の影の投影が小さくなっているのがわかります。柱の影は単一の角度幅を持っているので、これは当然のことだと思いますが、それでも、実際にどのように見えるかを見るのは良いことです。また、これは自転車の速度に重要な影響を与えます。自転車のライダーは、影の先端または後端と同じ速度で走行する必要はありません。ライダーは、ドライバーから見えないようにするために、この2つの点の間に留まればよいのです(そうでない場合は良くありません)。

影の先端と後端は一定速度で動いているとほぼ確信していますが、絶対的な確信はありません。念のため、両方のエッジと車の位置を道路沿いにプロットしてみます(それぞれ独自の次元で)。念のため、コードとプロットを以下に示します。

画像にはプロットが含まれている可能性があります

これらの線の傾きから、影の端の速度を求めることができます。5.50 m/sと7.58 m/s(時速12.3マイルと17.0マイル)という値が得られました。これは明らかに、自転車に乗る人間が出すことのできる速度の範囲内です。

柱の影の速度を計算するコードが完成したので、他の交差点にも同じように使えます。90度の交差点の場合はどうなるでしょうか?車の速度が速かった場合はどうなるでしょうか?柱の影の角度が大きかった場合はどうなるでしょうか?これらの疑問はすべて、コード内の数値をいくつか変更するだけで簡単に解決できます。そして、既に述べたように、同じ計算を紙上で実行することも可能です。Pythonを使うととても楽しいですし、アニメーションも作成できます。