ARDrone::move3D()の疑問

作ってる人が言うのもアレなんですけど、

結構テキトーですよね、move3D関数の中身って。

void ARDrone::move3D(double vx, double vy, double vz, double vr)
{
// AR.Drone is flying
if (!onGround()) {
const float gain = 0.4f;
float v[4] = {-vy*gain, -vx*gain, vz*gain, -vr*gain};
int mode = (fabs(vx) > 0.0 || fabs(vy) > 0.0);

// Send a command
if (mutexCommand) pthread_mutex_lock(mutexCommand);
sockCommand.sendf("AT*PCMD=%d,%d,%d,%d,%d,%d\", seq++, mode, *(int*)(&v[0]), *(int*)(&v[1]), *(int*)(&v[2]), *(int*)(&v[3]));
if (mutexCommand) pthread_mutex_unlock(mutexCommand);
}
}
gainって何でしょう?

そもそも並進・垂直・回転に同じゲインを使ってるとかちょっと変ですよね。

バッテリがすぐ無くなってしまうので、飛ばしてテストすることはあまりありませんでした。
めんどくさがりでごめんなさい。

CV Droneの完成度もだいぶ上がってきたことですし、これからは細かい作り込みをやっていこうかと思います。

現在は、ちゃんと速度指令の通りに動くかどうかを見ています。
固定ゲインではなくて、NavDataからフィードバックするような感じがいいかもしれません。
関連記事

コメントの投稿

非公開コメント

プロフィール

puku

Author:puku
暇な時はゲームかプログラミングしてる人だよ。
だいたい月1更新。
CV Drone はこちら(GitHub)

最近はQiitaでOnsenUI2で遊んでいる。

最新記事
最新コメント
最新トラックバック
検索フォーム
カレンダー
04 | 2021/05 | 06
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
月別アーカイブ
カテゴリ
スポンサードリンク
RSSリンクの表示
FC2カウンター
リンク
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
638位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
130位
アクセスランキングを見る>>
FC2ブログランキング

FC2Blog Ranking

QRコード
QR