Skip to content

ETing030/trajectory_linear_reg

Repository files navigation

數值線性代數NLA期末

About this repo

將桌球的軌跡座標作為資料,對其各軸之位置與其變化量作圖,並利用部分資料做線性迴歸,找出重力加速度之值,以進一步用於軌跡預測與球的落點。 Trajectory Plot Test.ipynb分為兩的部分:

  • Part 1
    • https://github.com/amrut-prabhu/table-tennis-ball-trajectory 中經處理後的三軸座標中的第 4 筆資料(3dpts_3.csv)(已附於此 repo 中)作為原始資料
    • 有將原始資料經 Savitzky-Golay filter平滑處理(X, Y, Z, traj_after),後續作圖、線性迴歸等步驟均是用平滑後之資料
    • 假設 X、Y 軸無加速度(等速度),以第10列~第28列(Frame)的 X軸座標、Y軸座標和Z軸座標變化量作為線性迴歸依據,分別得到估計之 X軸速度(slope_X)、Y軸速度(slope_Y)及重力加速度(slope_VZ)(線性迴歸之斜率)
    • 從第10列(Frame)開始,以所估計出來的速度與加速度,利用函式 trajectory_ 預測至球落桌面(zlimit=0)以前之軌跡/座標,並將預測座標與實際座標作圖
    • 利用函式 SSE_ 計算預測軌跡與實際資料之誤差
    • 透過牛頓迭代法和內插法求得預測落點座標,即 Z=0 時 X、Y 之座標與第幾個Frame(以Frame代替時間)
  • Part 2
    • 以模擬物理模型所產生之資料 1V_0.62089_0.73994_0.25882W_31.4159_0_0.csv(已附於此 repo 中)作為原始資料,此物理模型假設 X、Y 軸無加速度(等速度),重力加速度為 9.8 m/s^2
    • 只擷取球第一次落到桌面時之前的數據作為預測、分析依據
    • 以第5列~第9列的資料進行線性迴歸,得到 X、Y軸速度(slope_X、slope_Y)及重力加速度(slope_VZ)(為物理模型,因此誤差=0)
    • 從第5列開始,以不同的時間差(Δ𝑡=0.01, 0.001, 0.0001, 0.005)和加速度,利用函式 trajectory,分別進行軌跡(因 X、Y 軸等速度,因此可由第6列座標減去第5列座標,得到 X、Y軸之速度)。由於此物理模型假定桌球半徑為 0.02m,因此在分析落點的 Z軸限制更改為 0.02(zlimit=0.02),此外,對於 X、Y軸也有限制,對應於桌球桌之長度和寬度之限制。Δ𝑡 與程式碼中儲存預測軌跡之對應變數名稱,其對應如下:
Δ𝑡(s) 對應名稱
0.01 TTEST
0.001 TTEST2
0.0001 TTEST3
0.005 TTEST4
  • Part 2(續)

    • 針對不同的時間差之預測軌跡,利用函式 SSE 分別計算各軸誤差
    • 同樣以牛頓迭代法計算各個時間差下所預測之落點位置與時間,並加以探討

    預測結果

Δ𝑡 Time(s) x(m) y(m) z(m)
0.01 0.192819 0.500981 0.092676 0.02
0.005 0.190744 0.499692 0.0911406 0.02
0.001 0.189079 0.498658 0.0899082 0.02
0.0001 0.188705 0.498426 0.0896319 0.02

實際落點

Δ𝑡 Time(s) x(m) y(m) z(m)
             0.19284 0.50098 0.092694 0.02

About

數值線性代數期末小組報告

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published