ユーザ用ツール

サイト用ツール


wheelodometry

WheelOdometry

概要

名前空間:robot_object

エンコーダーの読み取り値から、以下を計算するクラス。

  • 左右輪の速度[m/s]
  • 重心速度[m/s]
  • 角速度[deg/s]
  • 曲率
  • 曲率半径[m]
  • 絶対座標 x, y [m]
  • 絶対角度 [deg]

シングルトンとして実装。

update()メソッドをタイマ割り込み関数内で呼ぶことで値の更新を行う。

クラス図

WheelOdometryuint16_t R_ENC_preuint16_t L_ENC_preuint16_t R_ENC_nowuint16_t L_ENC_nowconst float BIG_R = 500000.0const float DELTA_T = 0.001const float TIRE_GEAR_NUM = 44.0const float ENC_GEAR_NUM = 11.0const float GEAR_RATIO = 4.0const float ENC_RESOLUTION = 1600.0const float ENC_R_DIR = -1.0const float ENC_L_DIR = -1.0const float PI = 3.1415926535897932384626433832795float vfloat v_Rfloat v_Lfloat ang_vfloat kappafloat rfloat ab_pos_xfloat ab_pos_yfloat ab_angWheelOdometry()~WheelOdometry()static WheelOdometry& getInstance()void update()float getV(bool sb_flag)float getAng_v(bool sb_flag)float getKappa(bool sb_flag)float getV_R(bool sb_flag)float getV_L(bool sb_flag)

単体テスト履歴

2018/6/17 16:29

  • 手で動かしたときの角度と距離が何となく正しいを確認
  • sb_flagを引数に持つ関数に関しては、まだ動作確認を行っていない
wheelodometry.txt · 最終更新: 2018/06/17 16:32 by ganon