All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Pages
Functions
urg_utils.h File Reference

URG sensor utility. More...

#include "urg_sensor.h"

Go to the source code of this file.

Functions

const char * urg_error (const urg_t *urg)
 URG のエラーを示す文字列を返す More...
 
void urg_distance_min_max (const urg_t *urg, long *min_distance, long *max_distance)
 センサが返す距離の最大値、最小値を返す More...
 
void urg_step_min_max (const urg_t *urg, int *min_step, int *max_step)
 計測 step の最大値、最小値を返す More...
 
long urg_scan_usec (const urg_t *urg)
 1スキャンにかかる時間 [usec] を返す
 
int urg_max_data_size (const urg_t *urg)
 Returns the max size of data steps.
 
double urg_index2rad (const urg_t *urg, int index)
 インデックスと角度(radian)の変換を行う More...
 
double urg_index2deg (const urg_t *urg, int index)
 インデックスと角度(degree)の変換を行う
 
int urg_rad2index (const urg_t *urg, double radian)
 角度(radian)とインデックスの変換を行う
 
int urg_deg2index (const urg_t *urg, double degree)
 角度(degree)とインデックスの変換を行う
 
int urg_rad2step (const urg_t *urg, double radian)
 角度(radian)と step の変換を行う More...
 
int urg_deg2step (const urg_t *urg, double degree)
 角度(degree)と step の変換を行う
 
double urg_step2rad (const urg_t *urg, int step)
 step と 角度(radian)の変換を行う
 
double urg_step2deg (const urg_t *urg, int step)
 step と 角度(degree)の変換を行う
 
int urg_step2index (const urg_t *urg, int step)
 step とインデックスの変換を行う
 

Detailed Description

URG sensor utility.

Author
Satofumi KAMIMURA
Id:
urg_utils.h,v 630ee326c5ce 2011/02/19 08:06:25 Satofumi

Function Documentation

const char* urg_error ( const urg_t urg)

URG のエラーを示す文字列を返す

Parameters
[in]urgURG センサ管理
Return values
URGのエラーを示す文字列

Example

if (!urg_open(&urg, "/dev/ttyACM0", 115200, URG_SERIAL)) {
printf("urg_open: %s\n", urg_error(&urg));
return -1;
}
Examples:
calculate_xy.c, get_distance.c, get_distance_intensity.c, get_multiecho.c, get_multiecho_intensity.c, and sync_time_stamp.c.
void urg_distance_min_max ( const urg_t urg,
long *  min_distance,
long *  max_distance 
)

センサが返す距離の最大値、最小値を返す

センサが返す距離を [最小値, 最大値] で返します。

Parameters
[in]urgURG センサ管理
[out]min_distance最小値 [mm]
[out]max_distance最大値 [mm]

Example

long min_distance, max_distance;
urg_distance_min_max(&urg, &min_distance, &max_distance);
for (int i = 0; i < n; ++i) {
long distance = data[i];
if ((distance < min_distance) || (distance > max_distance)) {
continue;
}
...
}
Examples:
calculate_xy.c, get_distance.c, and sensor_parameter.c.
void urg_step_min_max ( const urg_t urg,
int *  min_step,
int *  max_step 
)

計測 step の最大値、最小値を返す

urg_set_scanning_parameter() で指定できる範囲を [最小値, 最大値] で返す。

Parameters
[in]urgURG センサ管理
[out]min_step最小値
[out]max_step最大値

step はセンサ正面が 0 であり、センサ上部から見た場合の反時計まわりの方向が正、時計まわりの方向が負の step 値となる。

sensor_step_image.png
センサと step の関係

min_step, max_step の値はセンサによって異なる。

Example

urg_step_min_max(&urg, &min_step, &max_step);
printf("range first: %d [deg]\n", urg_step2deg(&urg, min_step));
printf("range last : %d [deg]\n", urg_step2deg(&urg, max_step));
See Also
urg_set_scanning_parameter(), urg_step2rad(), urg_step2deg()
Examples:
angle_convert_test.c, and sensor_parameter.c.
double urg_index2rad ( const urg_t urg,
int  index 
)

インデックスと角度(radian)の変換を行う

インデックとは urg_get_distance() などの距離データ取得関数が返したデータ配列についての値である。この関数は、最後に行った距離データ取得関数のデータ配列について有効となる。

Parameters
[in]urgURG センサ管理
[in]indexインデックス
Returns
角度 [radian]

index は、取得した計測データについての値であり step や角度との関係は取得設定により異なる。

sensor_index_image.png
センサの計測範囲とインデックスの関係

Example

int n = urg_get_distance(&urg, data, NULL);
for (int i = 0; i < n; ++i) {
long distance = data[i];
double radian = urg_index2rad(i);
double x = distance * cos(radian);
double y = distance * sin(radian);
printf("%.1f, %.1f\n", x, y);
}
See Also
urg_index2deg(), urg_rad2index(), urg_deg2index()
Examples:
calculate_xy.c, and get_distance.c.
int urg_rad2step ( const urg_t urg,
double  radian 
)

角度(radian)と step の変換を行う

urg_step_min_max() で定義されている step について、角度(radian)と step の変換を行う。

Parameters
[in]urgURG センサ管理
[in]radian角度 [radian]
Returns
step
sensor_angle_image.png
センサの step と角度との関係

角度から step へ変換した結果が整数でない場合、結果は 0 の方向に切り捨てられた値となる。

See Also
urg_step_min_max(), urg_deg2step(), urg_step2rad(), urg_step2deg()