現在、pythonを使ってドローンを操作して自己位置推定を行うプログラムを作っています。
ドローンにfps30程度で付属のカメラから映像を取得して画像の処理を行い、ドローンが動いているかを検出し、それと同時に0.05秒ごとに瞬間加速度の取得を行って、ドローンが動いていれば加速度をそのまま保存し、動いていなければ0を保存するという事をリアルタイムで行い、着陸後に保存された加速度を基に時間0.05で2回積分することで移動距離を求めていました。
ですが、リアルタイムで一気に処理を行うと負荷がひどい場合があるので、映像の取得、保存と2フレーム取得ごとに加速度の取得をして、着陸後に保存した映像の画像処理を行い、加速度を取得した際にドローンが動いているかの検知を行うように切り替えました。(time関数を使いたかったのですが、時間のずれがひどいので2フレーム取得ごとに切り替えました)
すると、下の図のように瞬間加速度の取得までの時間が毎回変わるようになり、式も変える必要があると思うのですが、もし地点Aの時の速度と移動距離を瞬間加速度を時間で積分して求める際は
(1)速度 = -20 * 0.52
(2)現在速度 = (1)で出した速度変化 + 初速(加速度100の時の現在速度)
(3)変位 = (2)の現在速度 * 0.52
を行って移動距離を求めるので合っているのでしょうか。
あなたの回答
tips
プレビュー