All Classes Namespaces Files Functions Variables Enumerations Enumerator
Classes | Enumerations | Functions
qrk Namespace Reference

Quick Robot Development Kit. More...

Classes

class  CaptureSettings
 Data acquisition setting. More...
class  RangeSensor
 Range sensor interface. More...
class  RangeSensorParameter
 class to manage range sensor's parameter More...
class  ScipHandler
 Handler to SCIP protocol. More...
class  UrgCtrl
 URG sensor control. More...
class  UrgDevice
 URG sensor control. More...
class  UrgUsbCom
 Search for USB connected port. More...
class  Color
 色の定義クラス More...
class  MovingAverage
 移動平均のテンプレート More...
class  MovingMedian
 移動平均のメディアン演算版テンプレート More...
class  RingBuffer
 リングバッファ More...
class  Connection
 通信インターフェース More...
class  ConnectionRecorder
 通信データの記録クラス More...
class  CustomConnection
 送受信データを任意に設定できる接続クラス More...
class  FindComPorts
 シリアルポートの探索を行う More...
class  IsUsbCom
 USB ポートの判別クラス More...
class  SerialDevice
 シリアル通信クラス More...
class  StandardIo
 標準入出力クラス More...
class  TcpipAccepter
 接続の受付 More...
class  TcpipSocket
 TCP/IP 通信 More...
class  BatteryState
 PC バッテリー状態の取得 More...
class  ConditionVariable
 条件変数 More...
class  CycleTimer
 周期タイマー More...
class  Lock
 ロッククラス More...
class  LockGuard
 ロックガードクラス More...
class  ManagedTicks
 時間経過の管理クラス More...
class  Semaphore
 セマフォ管理 More...
class  StopWatch
 一時停止可能なタイマー More...
class  Thread
 スレッド処理 More...
class  Joystick
 ジョイスティックのインターフェース More...
class  SdlJoystickInit
 SDL 対応ジョイスティックの初期化 More...
class  UsbJoystick
 USB ジョイスティック More...
class  WiiJoystick
 Wii リモコンの制御クラス More...

Enumerations

enum  CaptureType {
  TypeUnknown, QT, GD, GS,
  MD, MS, ME, Mx_Reply,
  InvalidData
}
 Receive data type. More...
enum  RangeCaptureMode { ManualCapture, AutoCapture, IntensityCapture }
 The type in which data is acquired. More...
enum  { ReceiveTimeout = -1, ErrorLastIndex = -2 }
enum  { ScipTimeout = 200 }

Functions

void convert2d (std::vector< qrk::Point< long > > &points, const RangeSensor *sensor, const std::vector< long > &data, const qrk::Position< long > &offset, int max_length=-1)
 Extract two dimensional plane from RangeSensor data.
void convert2d (std::vector< qrk::Point< long > > &points, const RangeSensor *sensor, const std::vector< long > &data, int max_length=-1)
template<class T >
long urgSerialId (T *urg)
 Get serial ID.
size_t split (std::vector< std::string > &tokens, const std::string &original, const char *split_pattern=" \t", bool continious_pattern=true)
 指定文字による分割
bool isLF (const char ch)
 改行コードかを返す
void skip (Connection *con, int total_timeout, int each_timeout=0)
 受信データを読み飛ばす
int readline (Connection *con, char *buf, const size_t count, int timeout)
 改行までのデータ読み出し
template<class T >
void swapConnection (T &a, T &b)
 接続オブジェクトの交換
bool isUsingComDriver (const char *com_port, const char *driver_name)
 指定ドライバを利用している COM ポートが存在するかを返す
bool resetComPort (const char *com_device)
void delay (int msec)
 待機
bool fileExist (const char *file)
 ファイルの存在確認
size_t findFiles (std::vector< std::string > &files, const char *root_path, const boost::xpressive::sregex pattern)
int log_printf (const char *format,...)
 ログ記録用
void log_setName (const char *file_name)
 出力ファイル名を変更する
long ticks (void)
 タイムスタンプの取得
bool rescanWiimote (void)
 Wii リモコン用ドライバの再ロード
void estimateWiiPose (Angle &vertical_direction, Angle &rotation, const Point3d< double > &acceleration)
 Wii リモコン姿勢の推定

Detailed Description

Quick Robot Development Kit.

Quick Robot Develoment Kit.


Enumeration Type Documentation

Receive data type.

Enumerator:
TypeUnknown 

Unknown.

QT 

Quit to receive.

GD 

Get Data (each data size: 3 byte)

GS 

Get Short data (each data size: 2 byte)

MD 

Measure Data (each data size: 3 byte)

MS 

Measure Data (each data size: 2 byte)

ME 

Intensity data.

Mx_Reply 

The first response message of Mx command.

InvalidData 

Error response.

Definition at line 21 of file CaptureSettings.h.

The type in which data is acquired.

There are 2 types of data acquistion. One is "Automatic acquisition" in which data is transmitted continuously once the command is sent to sensor. Other type is "sequential acquisition" in which only one set of data is transmitted when command is sent to sensor.

gd_md_sequence.png
sequential acquisition(GD/GS) and Automatic acquisition(MD/MS)

High intensity data is acquired by "automatic acquisition" type

Enumerator:
ManualCapture 

sequential acquisition

AutoCapture 

Automatic acquisition.

IntensityCapture 

High intensity acquisition.

Definition at line 24 of file RangeCaptureMode.h.

anonymous enum
Enumerator:
ScipTimeout 

[msec]

Definition at line 21 of file ScipUtils.h.


Function Documentation

void qrk::convert2d ( std::vector< qrk::Point< long > > &  points,
const RangeSensor *  sensor,
const std::vector< long > &  data,
const qrk::Position< long > &  offset,
int  max_length = -1 
)

Extract two dimensional plane from RangeSensor data.

Parameters:
[out]pointsGroup of data points after conversion
[in]sensorTarget sensor
[in]dataMeasurement data
[in]offsetOffset during conversion
[in]max_lengthMaximum distance up to which conversion is permitted (The value -1 means max distance.)
void qrk::convert2d ( std::vector< qrk::Point< long > > &  points,
const RangeSensor *  sensor,
const std::vector< long > &  data,
int  max_length = -1 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

template<class T >
long qrk::urgSerialId ( T *  urg)

Get serial ID.

Parameters:
[in]urgurg object
Return values:
>=serial id
<0error

Definition at line 27 of file UrgUtils.h.

size_t qrk::split ( std::vector< std::string > &  tokens,
const std::string &  original,
const char *  split_pattern = " \t",
bool  continious_pattern = true 
)

指定文字による分割

Parameters:
[out]tokens分割後の文字列
[in]original分割対象の文字列
[in]split_pattern分割を行う文字の列
[in]continious_pattern連続したセパレータを1つのセパレータとして扱う
Returns:
分割後のトークン数

Definition at line 18 of file split.cpp.

bool qrk::isLF ( const char  ch)

改行コードかを返す

Return values:
trueLF, CR のとき
false上記以外のとき
Examples:
scip_20_tm.cpp.

Definition at line 16 of file ConnectionUtils.cpp.

void qrk::skip ( Connection con,
int  total_timeout,
int  each_timeout = 0 
)

受信データを読み飛ばす

Connection::clear() とは、タイムアウト時間を指定して読み飛ばせる点が異なる

Parameters:
[in,out]con通信リソース
[in]total_timeoutタイムアウト時間の上限 [msec]
[in]each_timeout受信データ間におけるタイムアウト時間の上限 [msec]
Examples:
scip_20_cr.cpp, scip_20_gd.cpp, scip_20_ii.cpp, scip_20_md.cpp, scip_20_pp.cpp, scip_20_tm.cpp, and scip_20_vv.cpp.

Definition at line 22 of file ConnectionUtils.cpp.

int qrk::readline ( Connection con,
char *  buf,
const size_t  count,
int  timeout 
)

改行までのデータ読み出し

文字列終端に \0 を付加して返す

Parameters:
[in,out]con通信リソース
[out]buf受信バッファ
[in]count受信バッファの最大サイズ
[in]timeoutタイムアウト [msec]
Returns:
受信文字数 (受信がなくてタイムアウトした場合は -1)
Examples:
scip_20_cr.cpp, scip_20_gd.cpp, scip_20_ii.cpp, scip_20_md.cpp, scip_20_pp.cpp, scip_20_ss.cpp, scip_20_tm.cpp, and scip_20_vv.cpp.

Definition at line 39 of file ConnectionUtils.cpp.

template<class T >
void qrk::swapConnection ( T &  a,
T &  b 
)

接続オブジェクトの交換

a と b の接続オブジェクトを交換する。

Definition at line 66 of file ConnectionUtils.h.

bool qrk::isUsingComDriver ( const char *  com_port,
const char *  driver_name 
)

指定ドライバを利用している COM ポートが存在するかを返す

Parameters:
[in]com_port判定を行う COM ポート
[in]driver_name判定を行うドライバ名
Return values:
true指定ドライバの COM ポートが存在する
false存在しない
Attention:
Windows 環境でなければ常に false を返す
動作確認は、Windows XP のみ。他では未検証

Definition at line 95 of file isUsingComDriver.cpp.

void qrk::delay ( int  msec)

待機

Parameters:
[in]delay待機時間 [msec]
Examples:
intensityScan.cpp, and mdScan.cpp.

Definition at line 14 of file delay.c.

bool qrk::fileExist ( const char *  file)

ファイルの存在確認

Parameters:
[in]ファイル名
Return values:
trueファイルあり
falseファイルなし

Definition at line 25 of file fileExist.cpp.

size_t qrk::findFiles ( std::vector< std::string > &  files,
const char *  root_path,
const boost::xpressive::sregex  pattern 
)

ディレクトリ以下のファイル探索を行う

Parameters:
[out]files見付かったファイル
[in]root_path探索のルートディレクトリ
[in]patternファイルの検索パターン
Returns:
見付かったファイル数

Definition at line 23 of file findFiles.cpp.

int qrk::log_printf ( const char *  format,
  ... 
)

ログ記録用

Parameters:
[in]format可変引数

Definition at line 25 of file log_printf.cpp.

void qrk::log_setName ( const char *  file_name)

出力ファイル名を変更する

Attention:
最初に log_printf() が呼ばれる前に呼び出されなければならない

Definition at line 54 of file log_printf.cpp.

long qrk::ticks ( void  )

タイムスタンプの取得

Return values:
タイムスタンプ[msec]
Examples:
mdScan.cpp.

Definition at line 14 of file ticks.c.

bool qrk::rescanWiimote ( void  )

Wii リモコン用ドライバの再ロード

Return values:
true正常
falseエラー

Definition at line 32 of file rescanWiimote.cpp.

void qrk::estimateWiiPose ( Angle &  vertical_direction,
Angle &  rotation,
const Point3d< double > &  acceleration 
)

Wii リモコン姿勢の推定

Parameters:
[out]vertical_direction鉛直方向に対する角度
[out]rotationリモコン長手方向の角度
[in]acceleration加速度

Definition at line 17 of file WiiUtils.cpp.