またフレーム毎の水平角度範囲や分解能は結局、具体的にどうすればそれらを取得できますか?urg3d_low_get_ro()を横インターレース x 縦インターレース数分実行するのでしょうか?その場合、どうやってフレームが切り替わったことを判断すればよろしいでしょうか。urg3d_measurement_data_t.frame_numberみたいな情報がどこかに格納されているのでしょうか。
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
またフレーム毎の水平角度範囲や分解能は結局、具体的にどうすればそれらを取得できますか?urg3d_low_get_ro()を横インターレース x 縦インターレース数分実行するのでしょうか?
その場合、どうやってフレームが切り替わったことを判断すればよろしいでしょうか。urg3d_measurement_data_t.frame_numberみたいな情報がどこかに格納されているのでしょうか。
urg3d_library-1.1.1を使用しています。
URG3Dライブラリで、例えばurg3d_high_get_measurement_data()を使用して、各echoのx,y,zだけでなく、水平角(horizontal_rad)、垂直角(vertical_rad)、距離(range_m)の表現を得ることができますが、この水平角、垂直角の範囲や角度分解能(何ラジアンごとの測定か)をこのライブラリを通して取得することは可能でしょうか?
urg3d_high_get_measurement_data(urg3d_t * const urg, urg3d_measurement_data_t *data);を例にして説明します。
上記関数の引数である各構造体には水平角、垂直角のほかに通信より取得した計測データの水平角の範囲などが格納されています。
これらの情報より、各種情報を導出することが可能です。
通信仕様書も併せてご参照ください。
角度範囲
垂直角の範囲
urg3d_t.spot_v_angle_rad[0][0][]
配列内の、最大値と最小値をお求めください。
spot_v_angle_rad[]はライン中の各スポットの垂直方向の計算に利用される座標変換テーブルで、先頭スポットで0, 末端スポットで2πとしたラジアンが格納されています。
水平角の範囲
urg3d_range_header_t.line_head_h_angle_ratio から
urg3d_range_header_t.line_tail_h_angle_ratio まで
がurg3d_measurement_data_t内における水平角の範囲です。
これらのデータは(正面方向を0°とする反時計回りに測った角度。360°を16bit で表現した値)
なのでラジアンで使用する際は、 2π/65535を乗算してください。
角度分解能
垂直角分解能
urg3d_t.spot_v_angle_rad[0][0][x] - urg3d_t.spot_v_angle_rad[0][0][x-1]で求めることができます
水平角分解能
urg3d_t.spot_h_angle_ratio[x] - urg3d_t.spot_h_angle_ratio[x-1]で求めることができます
spot_h_angle_ratio[]はライン中の各スポットの水平方向の計算に利用される座標変換テーブルで、先頭スポットで0, 末端スポットで1とした値が格納されています。
ラジアンで使用する際は2πを乗算してください。
ありがとうございました。こちらで試してみます。
2021年2月5日(金) 14:33 kobayashi rintaro kobayashi-r@users.sourceforge.net:
urg3d_range_header_tの値はurg3d_tのメンバ変数の中には入っていないため、別途urg3d_low_get_ro()でとってくる必要があるという理解で宜しいでしょうか。
例えばこんな形で、取得できますでしょうか?
urg3d_vssp_header_t header;
urg3d_range_header_t range_header;
urg3d_range_index_t range_index;
urg3d_data_range_t data_range;
urg3d_low_get_ro(&urg, &header, &range_header, &range_index, &data_range) ;
horizontal_min_rad = range_header.line_head_h_angle_ratio * 2.0 * M_PI /
(pow(2,16) - 1);
horizontal_max_rad = range_header.line_tail_h_angle_ratio * 2.0 * M_PI /
(pow(2, 16) - 1);
以上、よろしくお願いいたします
2021年2月5日(金) 14:33 kobayashi rintaro kobayashi-r@users.sourceforge.net:
その通りです
以下に、取得および変換したデータ例を記載します。
-------------ここから--------------
open ok
send ok -> DAT:ro=1
start loop
range_header->line_head_h_angle_ratio = -19976
range_header->line_tail_h_angle_ratio = -18895
horizonal_min_rad = -1.915204
horizonal_max_rad = -1.811563
range_header->line_head_h_angle_ratio = -18882
range_header->line_tail_h_angle_ratio = -17801
horizonal_min_rad = -1.810317
horizonal_max_rad = -1.706676
range_header->line_head_h_angle_ratio = -17789
range_header->line_tail_h_angle_ratio = -16706
horizonal_min_rad = -1.705525
horizonal_max_rad = -1.601692
range_header->line_head_h_angle_ratio = -16694
range_header->line_tail_h_angle_ratio = -15612
horizonal_min_rad = -1.600542
horizonal_max_rad = -1.496805
range_header->line_head_h_angle_ratio = -15600
range_header->line_tail_h_angle_ratio = -14517
horizonal_min_rad = -1.495654
horizonal_max_rad = -1.391821
range_header->line_head_h_angle_ratio = -14505
range_header->line_tail_h_angle_ratio = -13423
horizonal_min_rad = -1.390671
horizonal_max_rad = -1.286934
range_header->line_head_h_angle_ratio = -13411
range_header->line_tail_h_angle_ratio = -12330
horizonal_min_rad = -1.285783
horizonal_max_rad = -1.182142
range_header->line_head_h_angle_ratio = -12317
range_header->line_tail_h_angle_ratio = -11235
horizonal_min_rad = -1.180896
horizonal_max_rad = -1.077159
range_header->line_head_h_angle_ratio = -11223
range_header->line_tail_h_angle_ratio = -10141
horizonal_min_rad = -1.076008
horizonal_max_rad = -0.972271
range_header->line_head_h_angle_ratio = -10129
range_header->line_tail_h_angle_ratio = -9046
horizonal_min_rad = -0.971121
horizonal_max_rad = -0.867288
range_header->line_head_h_angle_ratio = -9034
range_header->line_tail_h_angle_ratio = -7952
horizonal_min_rad = -0.866137
horizonal_max_rad = -0.762400
range_header->line_head_h_angle_ratio = -7940
range_header->line_tail_h_angle_ratio = -6857
horizonal_min_rad = -0.761250
horizonal_max_rad = -0.657417
range_header->line_head_h_angle_ratio = -6845
range_header->line_tail_h_angle_ratio = -5763
horizonal_min_rad = -0.656266
horizonal_max_rad = -0.552529
range_header->line_head_h_angle_ratio = -5751
range_header->line_tail_h_angle_ratio = -4669
horizonal_min_rad = -0.551379
horizonal_max_rad = -0.447642
range_header->line_head_h_angle_ratio = -4657
range_header->line_tail_h_angle_ratio = -3574
horizonal_min_rad = -0.446491
horizonal_max_rad = -0.342658
range_header->line_head_h_angle_ratio = -3562
range_header->line_tail_h_angle_ratio = -2480
horizonal_min_rad = -0.341508
horizonal_max_rad = -0.237771
range_header->line_head_h_angle_ratio = -2468
range_header->line_tail_h_angle_ratio = -1386
horizonal_min_rad = -0.236620
horizonal_max_rad = -0.132883
range_header->line_head_h_angle_ratio = -1374
range_header->line_tail_h_angle_ratio = -292
horizonal_min_rad = -0.131733
horizonal_max_rad = -0.027996
range_header->line_head_h_angle_ratio = -280
range_header->line_tail_h_angle_ratio = 802
horizonal_min_rad = -0.026845
horizonal_max_rad = 0.076892
range_header->line_head_h_angle_ratio = 814
range_header->line_tail_h_angle_ratio = 1896
horizonal_min_rad = 0.078042
horizonal_max_rad = 0.181779
range_header->line_head_h_angle_ratio = 1908
range_header->line_tail_h_angle_ratio = 2989
horizonal_min_rad = 0.182930
horizonal_max_rad = 0.286571
range_header->line_head_h_angle_ratio = 3001
range_header->line_tail_h_angle_ratio = 4082
horizonal_min_rad = 0.287722
horizonal_max_rad = 0.391363
range_header->line_head_h_angle_ratio = 4094
range_header->line_tail_h_angle_ratio = 5175
horizonal_min_rad = 0.392513
horizonal_max_rad = 0.496154
range_header->line_head_h_angle_ratio = 5187
range_header->line_tail_h_angle_ratio = 6268
horizonal_min_rad = 0.497305
horizonal_max_rad = 0.600946
range_header->line_head_h_angle_ratio = 6280
range_header->line_tail_h_angle_ratio = 7360
horizonal_min_rad = 0.602097
horizonal_max_rad = 0.705642
range_header->line_head_h_angle_ratio = 7372
range_header->line_tail_h_angle_ratio = 8452
horizonal_min_rad = 0.706792
horizonal_max_rad = 0.810338
range_header->line_head_h_angle_ratio = 8464
range_header->line_tail_h_angle_ratio = 9544
horizonal_min_rad = 0.811488
horizonal_max_rad = 0.915034
range_header->line_head_h_angle_ratio = 9556
range_header->line_tail_h_angle_ratio = 10636
horizonal_min_rad = 0.916184
horizonal_max_rad = 1.019729
range_header->line_head_h_angle_ratio = 10648
range_header->line_tail_h_angle_ratio = 11727
horizonal_min_rad = 1.020880
horizonal_max_rad = 1.124329
error 022 Transmission timeout
range_header->line_head_h_angle_ratio = -19971
range_header->line_tail_h_angle_ratio = -18890
horizonal_min_rad = -1.914725
horizonal_max_rad = -1.811084
error 022 Transmission timeout
range_header->line_head_h_angle_ratio = -19965
range_header->line_tail_h_angle_ratio = -18884
horizonal_min_rad = -1.914150
horizonal_max_rad = -1.810508
range_header->line_head_h_angle_ratio = -18871
range_header->line_tail_h_angle_ratio = -17790
horizonal_min_rad = -1.809262
horizonal_max_rad = -1.705621
range_header->line_head_h_angle_ratio = -17778
range_header->line_tail_h_angle_ratio = -16696
horizonal_min_rad = -1.704470
horizonal_max_rad = -1.600733
range_header->line_head_h_angle_ratio = -16684
range_header->line_tail_h_angle_ratio = -15602
horizonal_min_rad = -1.599583
horizonal_max_rad = -1.495846
range_header->line_head_h_angle_ratio = -15590
range_header->line_tail_h_angle_ratio = -14507
horizonal_min_rad = -1.494695
horizonal_max_rad = -1.390862
range_header->line_head_h_angle_ratio = -14494
range_header->line_tail_h_angle_ratio = -13413
horizonal_min_rad = -1.389616
horizonal_max_rad = -1.285975
range_header->line_head_h_angle_ratio = -13400
range_header->line_tail_h_angle_ratio = -12319
horizonal_min_rad = -1.284729
horizonal_max_rad = -1.181087
range_header->line_head_h_angle_ratio = -12307
range_header->line_tail_h_angle_ratio = -11224
horizonal_min_rad = -1.179937
horizonal_max_rad = -1.076104
range_header->line_head_h_angle_ratio = -11212
range_header->line_tail_h_angle_ratio = -10130
horizonal_min_rad = -1.074953
horizonal_max_rad = -0.971216
range_header->line_head_h_angle_ratio = -10118
range_header->line_tail_h_angle_ratio = -9036
horizonal_min_rad = -0.970066
horizonal_max_rad = -0.866329
range_header->line_head_h_angle_ratio = -9024
range_header->line_tail_h_angle_ratio = -7942
horizonal_min_rad = -0.865178
horizonal_max_rad = -0.761441
range_header->line_head_h_angle_ratio = -7930
range_header->line_tail_h_angle_ratio = -6847
horizonal_min_rad = -0.760291
horizonal_max_rad = -0.656458
range_header->line_head_h_angle_ratio = -6835
range_header->line_tail_h_angle_ratio = -5753
horizonal_min_rad = -0.655307
horizonal_max_rad = -0.551570
range_header->line_head_h_angle_ratio = -5741
range_header->line_tail_h_angle_ratio = -4659
horizonal_min_rad = -0.550420
horizonal_max_rad = -0.446683
range_header->line_head_h_angle_ratio = -4647
range_header->line_tail_h_angle_ratio = -3564
horizonal_min_rad = -0.445532
horizonal_max_rad = -0.341699
range_header->line_head_h_angle_ratio = -3552
range_header->line_tail_h_angle_ratio = -2470
horizonal_min_rad = -0.340549
horizonal_max_rad = -0.236812
range_header->line_head_h_angle_ratio = -2458
range_header->line_tail_h_angle_ratio = -1376
horizonal_min_rad = -0.235661
horizonal_max_rad = -0.131924
range_header->line_head_h_angle_ratio = -1364
range_header->line_tail_h_angle_ratio = -282
horizonal_min_rad = -0.130774
horizonal_max_rad = -0.027037
range_header->line_head_h_angle_ratio = -270
range_header->line_tail_h_angle_ratio = 812
horizonal_min_rad = -0.025886
horizonal_max_rad = 0.077851
range_header->line_head_h_angle_ratio = 824
range_header->line_tail_h_angle_ratio = 1906
horizonal_min_rad = 0.079001
horizonal_max_rad = 0.182738
range_header->line_head_h_angle_ratio = 1918
range_header->line_tail_h_angle_ratio = 2999
horizonal_min_rad = 0.183889
horizonal_max_rad = 0.287530
range_header->line_head_h_angle_ratio = 3011
range_header->line_tail_h_angle_ratio = 4092
horizonal_min_rad = 0.288680
horizonal_max_rad = 0.392322
range_header->line_head_h_angle_ratio = 4104
range_header->line_tail_h_angle_ratio = 5185
horizonal_min_rad = 0.393472
horizonal_max_rad = 0.497113
range_header->line_head_h_angle_ratio = 5197
range_header->line_tail_h_angle_ratio = 6278
horizonal_min_rad = 0.498264
horizonal_max_rad = 0.601905
range_header->line_head_h_angle_ratio = 6290
range_header->line_tail_h_angle_ratio = 7370
horizonal_min_rad = 0.603055
horizonal_max_rad = 0.706601
range_header->line_head_h_angle_ratio = 7382
range_header->line_tail_h_angle_ratio = 8462
horizonal_min_rad = 0.707751
horizonal_max_rad = 0.811296
range_header->line_head_h_angle_ratio = 8474
range_header->line_tail_h_angle_ratio = 9554
horizonal_min_rad = 0.812447
horizonal_max_rad = 0.915992
range_header->line_head_h_angle_ratio = 9566
range_header->line_tail_h_angle_ratio = 10646
horizonal_min_rad = 0.917143
horizonal_max_rad = 1.020688
range_header->line_head_h_angle_ratio = 10658
range_header->line_tail_h_angle_ratio = 11737
horizonal_min_rad = 1.021839
horizonal_max_rad = 1.125288
range_header->line_head_h_angle_ratio = 11749
range_header->line_tail_h_angle_ratio = 12828
horizonal_min_rad = 1.126438
horizonal_max_rad = 1.229888
range_header->line_head_h_angle_ratio = 12840
range_header->line_tail_h_angle_ratio = 13919
horizonal_min_rad = 1.231038
horizonal_max_rad = 1.334488
range_header->line_head_h_angle_ratio = 13931
range_header->line_tail_h_angle_ratio = 15010
horizonal_min_rad = 1.335638
horizonal_max_rad = 1.439088
range_header->line_head_h_angle_ratio = 15022
range_header->line_tail_h_angle_ratio = 16099
horizonal_min_rad = 1.440238
horizonal_max_rad = 1.543496
range_header->line_head_h_angle_ratio = 16112
range_header->line_tail_h_angle_ratio = 17190
horizonal_min_rad = 1.544742
horizonal_max_rad = 1.648096
range_header->line_head_h_angle_ratio = 17202
range_header->line_tail_h_angle_ratio = 18279
horizonal_min_rad = 1.649246
horizonal_max_rad = 1.752504
range_header->line_head_h_angle_ratio = 18291
range_header->line_tail_h_angle_ratio = 19369
horizonal_min_rad = 1.753654
horizonal_max_rad = 1.857008
range_header->line_head_h_angle_ratio = -19969
range_header->line_tail_h_angle_ratio = -18887
horizonal_min_rad = -1.914533
horizonal_max_rad = -1.810796
range_header->line_head_h_angle_ratio = -18875
range_header->line_tail_h_angle_ratio = -17793
horizonal_min_rad = -1.809646
horizonal_max_rad = -1.705909
range_header->line_head_h_angle_ratio = -17781
range_header->line_tail_h_angle_ratio = -16699
horizonal_min_rad = -1.704758
horizonal_max_rad = -1.601021
range_header->line_head_h_angle_ratio = -16687
range_header->line_tail_h_angle_ratio = -15605
horizonal_min_rad = -1.599871
horizonal_max_rad = -1.496133
range_header->line_head_h_angle_ratio = -15593
range_header->line_tail_h_angle_ratio = -14510
horizonal_min_rad = -1.494983
horizonal_max_rad = -1.391150
range_header->line_head_h_angle_ratio = -14498
range_header->line_tail_h_angle_ratio = -13416
horizonal_min_rad = -1.390000
horizonal_max_rad = -1.286263
range_header->line_head_h_angle_ratio = -13404
range_header->line_tail_h_angle_ratio = -12322
horizonal_min_rad = -1.285112
horizonal_max_rad = -1.181375
range_header->line_head_h_angle_ratio = -12310
range_header->line_tail_h_angle_ratio = -11228
horizonal_min_rad = -1.180224
horizonal_max_rad = -1.076487
range_header->line_head_h_angle_ratio = -11215
range_header->line_tail_h_angle_ratio = -10134
horizonal_min_rad = -1.075241
horizonal_max_rad = -0.971600
range_header->line_head_h_angle_ratio = -10121
range_header->line_tail_h_angle_ratio = -9039
horizonal_min_rad = -0.970354
horizonal_max_rad = -0.866616
range_header->line_head_h_angle_ratio = -9027
range_header->line_tail_h_angle_ratio = -7945
horizonal_min_rad = -0.865466
horizonal_max_rad = -0.761729
range_header->line_head_h_angle_ratio = -7933
range_header->line_tail_h_angle_ratio = -6850
horizonal_min_rad = -0.760578
horizonal_max_rad = -0.656746
range_header->line_head_h_angle_ratio = -6838
range_header->line_tail_h_angle_ratio = -5756
horizonal_min_rad = -0.655595
horizonal_max_rad = -0.551858
range_header->line_head_h_angle_ratio = -5744
range_header->line_tail_h_angle_ratio = -4662
horizonal_min_rad = -0.550708
horizonal_max_rad = -0.446970
range_header->line_head_h_angle_ratio = -4650
range_header->line_tail_h_angle_ratio = -3567
horizonal_min_rad = -0.445820
horizonal_max_rad = -0.341987
range_header->line_head_h_angle_ratio = -3555
range_header->line_tail_h_angle_ratio = -2473
horizonal_min_rad = -0.340837
horizonal_max_rad = -0.237100
range_header->line_head_h_angle_ratio = -2461
range_header->line_tail_h_angle_ratio = -1379
horizonal_min_rad = -0.235949
horizonal_max_rad = -0.132212
range_header->line_head_h_angle_ratio = -1367
range_header->line_tail_h_angle_ratio = -285
horizonal_min_rad = -0.131061
horizonal_max_rad = -0.027324
range_header->line_head_h_angle_ratio = -273
range_header->line_tail_h_angle_ratio = 809
horizonal_min_rad = -0.026174
horizonal_max_rad = 0.077563
range_header->line_head_h_angle_ratio = 821
range_header->line_tail_h_angle_ratio = 1903
horizonal_min_rad = 0.078714
horizonal_max_rad = 0.182451
range_header->line_head_h_angle_ratio = 1915
range_header->line_tail_h_angle_ratio = 2996
horizonal_min_rad = 0.183601
horizonal_max_rad = 0.287242
range_header->line_head_h_angle_ratio = 3008
range_header->line_tail_h_angle_ratio = 4089
horizonal_min_rad = 0.288393
horizonal_max_rad = 0.392034
range_header->line_head_h_angle_ratio = 4101
range_header->line_tail_h_angle_ratio = 5182
horizonal_min_rad = 0.393184
horizonal_max_rad = 0.496826
range_header->line_head_h_angle_ratio = 5194
range_header->line_tail_h_angle_ratio = 6275
horizonal_min_rad = 0.497976
horizonal_max_rad = 0.601617
range_header->line_head_h_angle_ratio = 6287
range_header->line_tail_h_angle_ratio = 7367
horizonal_min_rad = 0.602768
horizonal_max_rad = 0.706313
range_header->line_head_h_angle_ratio = 7379
range_header->line_tail_h_angle_ratio = 8459
horizonal_min_rad = 0.707464
horizonal_max_rad = 0.811009
range_header->line_head_h_angle_ratio = 8471
range_header->line_tail_h_angle_ratio = 9551
horizonal_min_rad = 0.812159
horizonal_max_rad = 0.915705
range_header->line_head_h_angle_ratio = 9563
range_header->line_tail_h_angle_ratio = 10643
horizonal_min_rad = 0.916855
horizonal_max_rad = 1.020400
range_header->line_head_h_angle_ratio = 10655
range_header->line_tail_h_angle_ratio = 11734
horizonal_min_rad = 1.021551
horizonal_max_rad = 1.125000
range_header->line_head_h_angle_ratio = 11746
range_header->line_tail_h_angle_ratio = 12825
horizonal_min_rad = 1.126151
horizonal_max_rad = 1.229600
range_header->line_head_h_angle_ratio = 12837
range_header->line_tail_h_angle_ratio = 13916
horizonal_min_rad = 1.230751
horizonal_max_rad = 1.334200
range_header->line_head_h_angle_ratio = 13928
range_header->line_tail_h_angle_ratio = 15006
horizonal_min_rad = 1.335351
horizonal_max_rad = 1.438704
range_header->line_head_h_angle_ratio = 15018
range_header->line_tail_h_angle_ratio = 16096
horizonal_min_rad = 1.439855
horizonal_max_rad = 1.543208
range_header->line_head_h_angle_ratio = 16108
range_header->line_tail_h_angle_ratio = 17187
horizonal_min_rad = 1.544359
horizonal_max_rad = 1.647808
range_header->line_head_h_angle_ratio = 17199
range_header->line_tail_h_angle_ratio = 18276
horizonal_min_rad = 1.648959
horizonal_max_rad = 1.752216
send ok -> DAT:ro=0
close ok
測定の度にline_head_h_angle_ratioとline_tail_h_angle_ratioは変化してしまうのでしょうか?これは1ライン分だからでしょうか?
欲しいのは1フレームにおける水平/垂直角度範囲および分解能です。ひょっとしてurg3d_high_get_measurement_data()で取得できるデータも1ライン分ということなのでしょうか?
両方とも、その通りです
1フレームの計測情報を取得したい場合は、urg3d_library/samplesのhigh_1_f.*_data_file.cを参照下さい。
Last edit: kobayashi rin 2021-02-10
ということは、1フレームにおける水平/垂直角度範囲および分解能の取得はラインごとのものを取得した後で、それらを合算する形にするしかないのでしょうか?それとも1フレーム単位でそれらの情報を取得するようなAPIは用意されているのでしょうか?
水平角度範囲についてはその通りです。
それ以外については、センサに保存されている座標変換テーブルが変わることはありませんのでurg3d_t 取得時に算出してください。
例えばインターレースを使用すると、1フレームで見たときに分解能が変わるということにはならないでしょうか?私のインターレースについての理解は、ラインの位置をずらすことで解像度を上げるというものなのですが。
1フィールドで見たとき、計測性能以上の分解能になります。その場合は、目的の計測データすべて取得し終えてから算出してください。
垂直角度範囲は1ラインのもので不変ですが、水平角度範囲はフレームごとに変化する可能性があります。
これは1フレームの間違いですか?
垂直方向のインターレースを使用した場合も垂直角度範囲は不変ですか?
フレームの間違いでした。これら用語の取り扱いは通信仕様書1.3を参照ください。
正しくは「大きく変わらない」といったところです。垂直方向のインターレースはレーザが発光するタイミングを時間的に遅らせることで実現しているので、計測点がライン上のスポット軌跡曲線から逸れることはありません。詳細は通信仕様書16ページ以降のインターレースの解説を参照してください。
urg3d_t.spot_v_angle_radに各インタレースごとの座標変換テーブルがあるので、そこから算出することが可能です。
urg3d_t.spot_v_angle[][][]
このテーブルの各次元は何を表してますか?3番目の次元が角度が記載されているのはわかるのですが、インターレース番号が1番目と2番目のどちらなのか、残ったものは何を表すのか教えていただけますか?
またフレーム毎の水平角度範囲や分解能は結局、具体的にどうすればそれらを取得できますか?urg3d_low_get_ro()を横インターレース x 縦インターレース数分実行するのでしょうか?その場合、どうやってフレームが切り替わったことを判断すればよろしいでしょうか。urg3d_measurement_data_t.frame_numberみたいな情報がどこかに格納されているのでしょうか。
左から順に、[垂直インターレース数][垂直フィールド番号][スポット]です
各用語については、通信仕様書の「距離測定データヘッダ」の詳細解説やこのページを参照ください。
urg3d_low_get_ro()で取得する場合、urg3d_range_header_t.frame がframe_numberにあたります
フレームごとの計測データ取得方法はsamples/high_1_frame_4_vfield_2_hfield_data_file.cを参照ください
high_1_frame_4_vfield_2_hfield_data_file.c
では、urg3d_measurement_data_t.frame_numberだけでなく、line_number、v_field_number、h_field_numberも0であることを確認してからフレームの頭であることを確認しているように見受けられます。
同じようにurg3d_low_get_ro()で取得する場合もurg3d_range_header_t.frameだけでなくline、v_field、h_fieldがゼロであるか見てやる必要があるでしょうか。
こちらでこれらの値を確認してみたのですが、変化せずに無限ループに入ってしまったため、確認させてください。
1フレームすべての計測情報を取得したい場合はその通りです。
以下のようなコードでurg3d_low_get_ro()を試しました。
その結果、
となって、range.frameが16、range_header.lineが11のまま変化しなくなりました。
h_interlace=2;
v_interlace=1;
にしたところ、
となり、一切のIDが変更されず、
h_interlace=1;
v_interlace=2;
にしたところ
となって、range.frameが16、range_header.lineが11、range_header.v_fieldが1のまま変化しなくなりました。
何かコード上の誤りなどありましたらご指摘いただけますでしょうか。
環境はWindows10 + VS2019です。
high_1_frame_4_vfield_2_hfield_data_file.c では urg3d_next_receive_ready(&urg)の結果を確認して、次の電文が来ていなければ一定時間待機する処理が入っています。
urg3d_high_get_measurement_data()はurg3d_low_get_ri()あるいはro()を実行し、各種データを変換している箇所なので、データの取り扱い以外は同一とみなして頂いて構いません
high_1_frame_4_vfield_2_hfield_data_file.cと同様にurg3d_next_receive_ready(&urg)とsleep()処理を入れてみましたが、症状が変わりませんでした。
機種はYVT-35LX-F0です。
機種はYVT-35LX-F0です。
すいません。urg3d_high_blocking_init()でエラーが出たり、エラーが出ないときでもurg.spot_v_angle_radの中身がゼロだったりするので、そもそもの接続の問題のようです。また別のTopicとして立てさせてください。
私の理解では
スポット:エコーの集合
ライン:スポットの集合
水平フィールド:ラインの集合
垂直フィールド:水平フィールドの集合
フレーム:垂直フィールドの集合
なのですが、それに照らし合わせても上記との関係がよくわかりません。
垂直インターレース数というのが垂直フィールドの数という意味ならば、垂直フィールド番号は水平フィールドの数になりそうな気がするのですが違いますでしょうか?
垂直インターレース数が設定中の垂直フィールドの数なのに対して、
垂直フィールド番号はその計測データがN番目の垂直フィールドのものであるかを示すものです