クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

直線の経路と時間の割り当て

このレッスンのあとで: 2点を結ぶ直線の経路を等しい間隔の点に区切り、最高速度から必要な時間を求められる。

55分のレッスンコマンド3件JupyterLab データサイエンスラボ:pandas、Matplotlib、scikit-learn をブラウザーで

経路に時間をつけたものが軌道

軌道(トラジェクトリ)は、手先が通る道すじに、それぞれの点を通る時刻をつけたものです。ロボットアームは、2点を直線で結ぶ軌道を作って、決まった時間で動かします。

直線の道すじは、始点と終点を等しい間隔で区切るだけで作れます。ここでの動きは、シミュレーションです。

このレッスンのゴール

メモ

2点を結ぶ直線の経路を等しい間隔の点に区切り、最高速度から必要な時間を求められる。

キーワード

ことばいみ
経路手先が通る道すじ
軌道経路に、通る時刻をつけたもの
補間2点の間の点を、計算で作ること
最高速度手先が出してよい、最も速い速さ
区間隣り合う2つの点の間

学生が入力するセルは、このプレビューでは空白です。

始点から終点まで等間隔に点を作る

始点を A、終点を B とします。0 から 1 までの数 t を決めると、点は「A + t × (B − A)」です。t が 0 なら A、1 なら B です。

区間を n 個に分けるなら、t は 0、1/n、2/n、…、1 です。x と y に、同じ式を別々に使います。

例: (0, 0) から (4, 2) まで4区間

番号txy
0000
11/410.5
22/421
33/431.5
4142

学生が入力するセルは、このプレビューでは空白です。

0 から 1 を5つの点に分ける

コマンド
docker exec jupyter python3 -c "import numpy as np; print(np.linspace(0, 1, 5))"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

点 (0, 6) から (3, 0) へ、4つの点

コマンド
docker exec jupyter python3 -c "import numpy as np; print(np.linspace(0, 3, 4), np.linspace(6, 0, 4))"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

経路を Python で作る

コード: python
# 点 (1, 0) から点 (4, 3) まで、3つの区間で進みます。
start = [1, 0]
end = [4, 3]
steps = 3
for i in range(steps + 1):
    t = i / steps
    x = start[0] + t * (end[0] - start[0])
    y = start[1] + t * (end[1] - start[1])
    print(i, round(x, 3), round(y, 3))
# steps を 6 に変えて、もう一度実行します。
# 点はいくつ表示されますか。

速さの上限から最短の時間が決まる

直線の長さは、x の差と y の差から、斜めの辺として求まります。最短の時間は、長さを最高速度で割った値です。

時間の刻みを dt とすると、必要な区間の数は、時間を dt で割った数です。割り切れなければ、切り上げます。

例: 長さ 5、最高速度 2

時間の刻み最短の時間必要な区間
0.5 秒2.5 秒5
1 秒2.5 秒3(切り上げ)
2.5 秒2.5 秒1

学生が入力するセルは、このプレビューでは空白です。

長さ 5、最高速度 2 の最短時間

コマンド
docker exec jupyter python3 -c "import numpy as np; print(np.hypot(3, 4) / 2)"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

よくある間違い

注意

区間が n 個なら、点も n 個だと考えがちです。実際は、点は n + 1 個です。始点と終点の両方を数えるからです。range(steps) だけでは、終点が抜けます。

このラボとソースについて: JupyterLab データサイエンスラボ:pandas、Matplotlib、scikit-learn をブラウザーで

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。