Menu

=?UTF-8?B?dXJnM2QgbGlicmFyeeOBp+awtOW5s+inkuOAgeWeguebtOinkuOBruevhOWbsuOAgeOBig==?= =?UTF-8?B?44KI44Gz6KeS5bqm5YiG6Kej6IO944KS5Y+W5b6X44GZ44KL5pa55rOV?=

2021-02-04
2021-02-19
1 2 > >> (Page 1 of 2)
  • Takuya Minagawa

    Takuya Minagawa - 2021-02-04

    urg3d_library-1.1.1を使用しています。

    URG3Dライブラリで、例えばurg3d_high_get_measurement_data()を使用して、各echoのx,y,zだけでなく、水平角(horizontal_rad)、垂直角(vertical_rad)、距離(range_m)の表現を得ることができますが、この水平角、垂直角の範囲や角度分解能(何ラジアンごとの測定か)をこのライブラリを通して取得することは可能でしょうか?

     
  • kobayashi rin

    kobayashi rin - 2021-02-05

    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πを乗算してください。

     
    • Takuya Minagawa

      Takuya Minagawa - 2021-02-05

      ありがとうございました。こちらで試してみます。

      2021年2月5日(金) 14:33 kobayashi rintaro kobayashi-r@users.sourceforge.net:

      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πを乗算してください。


      [=?UTF-8?B?dXJnM2QgbGlicmFyeeOBp+awtOW5s+inkuOAgeWeguebtOinkuOBruevhOWbsuOAgeOBig==?=

      =?UTF-8?B?44KI44Gz6KeS5bqm5YiG6Kej6IO944KS5Y+W5b6X44GZ44KL5pa55rOV?=](
      https://sourceforge.net/p/urgnetwork/discussion/urg_library/thread/7ae148ba7a/?limit=25#131c
      )


      Sent from sourceforge.net because you indicated interest in <
      https://sourceforge.net/p/urgnetwork/discussion/urg_library/>

      To unsubscribe from further messages, please visit <
      https://sourceforge.net/auth/subscriptions/>

       
    • Takuya Minagawa

      Takuya Minagawa - 2021-02-09

      水平角の範囲
      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_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:

      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πを乗算してください。


      [=?UTF-8?B?dXJnM2QgbGlicmFyeeOBp+awtOW5s+inkuOAgeWeguebtOinkuOBruevhOWbsuOAgeOBig==?=

      =?UTF-8?B?44KI44Gz6KeS5bqm5YiG6Kej6IO944KS5Y+W5b6X44GZ44KL5pa55rOV?=](
      https://sourceforge.net/p/urgnetwork/discussion/urg_library/thread/7ae148ba7a/?limit=25#131c
      )


      Sent from sourceforge.net because you indicated interest in <
      https://sourceforge.net/p/urgnetwork/discussion/urg_library/>

      To unsubscribe from further messages, please visit <
      https://sourceforge.net/auth/subscriptions/>

       
  • kobayashi rin

    kobayashi rin - 2021-02-10

    urg3d_range_header_tの値はurg3d_tのメンバ変数の中には入っていないため、別途urg3d_low_get_ro()でとってくる必要があるという理解で宜しいでしょうか。

    その通りです
    以下に、取得および変換したデータ例を記載します。
    -------------ここから--------------
    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

     
  • Takuya Minagawa

    Takuya Minagawa - 2021-02-10

    測定の度にline_head_h_angle_ratioとline_tail_h_angle_ratioは変化してしまうのでしょうか?これは1ライン分だからでしょうか?
    欲しいのは1フレームにおける水平/垂直角度範囲および分解能です。ひょっとしてurg3d_high_get_measurement_data()で取得できるデータも1ライン分ということなのでしょうか?

     
  • kobayashi rin

    kobayashi rin - 2021-02-10

    測定の度に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
  • Takuya Minagawa

    Takuya Minagawa - 2021-02-10

    ということは、1フレームにおける水平/垂直角度範囲および分解能の取得はラインごとのものを取得した後で、それらを合算する形にするしかないのでしょうか?それとも1フレーム単位でそれらの情報を取得するようなAPIは用意されているのでしょうか?

     
  • kobayashi rin

    kobayashi rin - 2021-02-10

    ということは、1フレームにおける水平/垂直角度範囲および分解能の取得はラインごとのものを取得した後で、それらを合算する形にするしかないのでしょうか?

    水平角度範囲についてはその通りです。
    それ以外については、センサに保存されている座標変換テーブルが変わることはありませんのでurg3d_t 取得時に算出してください。

     
  • Takuya Minagawa

    Takuya Minagawa - 2021-02-10

    例えばインターレースを使用すると、1フレームで見たときに分解能が変わるということにはならないでしょうか?私のインターレースについての理解は、ラインの位置をずらすことで解像度を上げるというものなのですが。

     
  • kobayashi rin

    kobayashi rin - 2021-02-10

    1フィールドで見たとき、計測性能以上の分解能になります。その場合は、目的の計測データすべて取得し終えてから算出してください。
    垂直角度範囲は1ラインのもので不変ですが、水平角度範囲はフレームごとに変化する可能性があります。

     
  • Takuya Minagawa

    Takuya Minagawa - 2021-02-10

    1フィールドで見たとき、計測性能以上の分解能になります。

    これは1フレームの間違いですか?

    垂直角度範囲は1ラインのもので不変ですが、水平角度範囲はフレームごとに変化する可能性があります。

    垂直方向のインターレースを使用した場合も垂直角度範囲は不変ですか?

     
  • kobayashi rin

    kobayashi rin - 2021-02-10

    これは1フレームの間違いですか?

    フレームの間違いでした。これら用語の取り扱いは通信仕様書1.3を参照ください。

    垂直方向のインターレースを使用した場合も垂直角度範囲は不変ですか?

    正しくは「大きく変わらない」といったところです。垂直方向のインターレースはレーザが発光するタイミングを時間的に遅らせることで実現しているので、計測点がライン上のスポット軌跡曲線から逸れることはありません。詳細は通信仕様書16ページ以降のインターレースの解説を参照してください。
    urg3d_t.spot_v_angle_radに各インタレースごとの座標変換テーブルがあるので、そこから算出することが可能です。

     
  • Takuya Minagawa

    Takuya Minagawa - 2021-02-10

    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みたいな情報がどこかに格納されているのでしょうか。

     
  • kobayashi rin

    kobayashi rin - 2021-02-14

    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を参照ください

     
    • Takuya Minagawa

      Takuya Minagawa - 2021-02-18

      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がゼロであるか見てやる必要があるでしょうか。

      こちらでこれらの値を確認してみたのですが、変化せずに無限ループに入ってしまったため、確認させてください。

       
      • kobayashi rin

        kobayashi rin - 2021-02-18

        同じようにurg3d_low_get_ro()で取得する場合もurg3d_range_header_t.frameだけでなくline、v_field、h_fieldがゼロであるか見てやる必要があるでしょうか。

        1フレームすべての計測情報を取得したい場合はその通りです。

         
        • Takuya Minagawa

          Takuya Minagawa - 2021-02-18

          以下のようなコードでurg3d_low_get_ro()を試しました。

          void test_urg3d()
          {
              urg3d_t urg;
          
              std::string device = "192.168.0.10";
              long port = 10940;
              int h_interlace = 1;
              int v_interlace = 1;
          
              urg3d_open(&urg, device.c_str(), port);
              urg3d_high_set_blocking_timeout_ms(&urg, 2000);
              urg3d_high_blocking_init(&urg);
          
              printf("wait initialize URG (about 30-60 seconds after power-on)...");
              urg3d_high_blocking_wait_finished_initialize(&urg);
              urg3d_high_blocking_set_horizontal_interlace_count(&urg, h_interlace);
              urg3d_high_blocking_set_vertical_interlace_count(&urg, v_interlace);
              urg3d_high_start_data(&urg, URG3D_DISTANCE));
          
              urg3d_vssp_header_t header;
              urg3d_range_header_t range_header;
              urg3d_range_index_t range_index;
              urg3d_data_range_t data_range;
          
              int pre_frame = -1;
              while (true) {
                  if (urg3d_low_get_ro(&urg, &header, &range_header, &range_index, &data_range) < 0) {
                      printf("Fail to get range data\n");
                      return -1;
                  }
                  printf("%u,%u,%u,%u\n", range_header.frame, range_header.line, range_header.v_field, range_header.h_field);
                  if (pre_frame == -1) {
                      if (range_header.line == 0 && (int)(range_header.v_field) == 0 && (int)(range_header.h_field) == 0) {
                          pre_frame = range_header.frame;
                          printf("frame head\n");
                      }
                  }
                  else if (pre_frame != range_header.frame) {
                      printf("frame tail\n");
                      break;
                  }
              }
          
              urg3d_high_stop_data(&urg, URG3D_DISTANCE);
              urg3d_close(&urg);
          }
          

          その結果、

          wait initialize URG (about 30-60 seconds after power-on)...Done
          15,22,0,0
          15,23,0,0
          15,24,0,0
          15,25,0,0
          15,26,0,0
          15,27,0,0
          15,28,0,0
          15,29,0,0
          15,30,0,0
          15,31,0,0
          15,32,0,0
          15,33,0,0
          15,34,0,0
          15,35,0,0
          16,0,0,0
          frame head
          16,1,0,0
          16,2,0,0
          16,3,0,0
          16,4,0,0
          16,5,0,0
          16,6,0,0
          16,7,0,0
          16,8,0,0
          16,9,0,0
          16,10,0,0
          16,11,0,0
          16,11,0,0
          16,11,0,0
          16,11,0,0
          16,11,0,0
          16,11,0,0
          

          となって、range.frameが16、range_header.lineが11のまま変化しなくなりました。

          h_interlace=2;
          v_interlace=1;
          にしたところ、

          wait initialize URG (about 30-60 seconds after power-on)...Done
          0,0,0,0
          frame head
          0,0,0,0
          0,0,0,0
          0,0,0,0
          0,0,0,0
          0,0,0,0
          0,0,0,0
          0,0,0,0
          

          となり、一切のIDが変更されず、

          h_interlace=1;
          v_interlace=2;
          にしたところ

          wait initialize URG (about 30-60 seconds after power-on)...Done
          16,31,0,0
          16,32,0,0
          16,33,0,0
          16,34,0,0
          16,0,1,0
          16,1,1,0
          16,2,1,0
          16,3,1,0
          16,4,1,0
          16,5,1,0
          16,6,1,0
          16,7,1,0
          16,8,1,0
          16,9,1,0
          16,10,1,0
          16,11,1,0
          16,11,1,0
          16,11,1,0
          16,11,1,0
          16,11,1,0
          16,11,1,0
          16,11,1,0
          16,11,1,0
          16,11,1,0
          

          となって、range.frameが16、range_header.lineが11、range_header.v_fieldが1のまま変化しなくなりました。

          何かコード上の誤りなどありましたらご指摘いただけますでしょうか。
          環境はWindows10 + VS2019です。

           
          • kobayashi rin

            kobayashi rin - 2021-02-18

            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()を実行し、各種データを変換している箇所なので、データの取り扱い以外は同一とみなして頂いて構いません

             
            • Takuya Minagawa

              Takuya Minagawa - 2021-02-18

              high_1_frame_4_vfield_2_hfield_data_file.cと同様にurg3d_next_receive_ready(&urg)とsleep()処理を入れてみましたが、症状が変わりませんでした。

               
            • Takuya Minagawa

              Takuya Minagawa - 2021-02-18

              機種はYVT-35LX-F0です。

               
            • Takuya Minagawa

              Takuya Minagawa - 2021-02-18

              機種はYVT-35LX-F0です。

               
            • Takuya Minagawa

              Takuya Minagawa - 2021-02-18

              すいません。urg3d_high_blocking_init()でエラーが出たり、エラーが出ないときでもurg.spot_v_angle_radの中身がゼロだったりするので、そもそもの接続の問題のようです。また別のTopicとして立てさせてください。

               
  • Takuya Minagawa

    Takuya Minagawa - 2021-02-16
    左から順に、[垂直インターレース数][垂直フィールド番号][スポット]です
    各用語については、通信仕様書の「距離測定データヘッダ」の詳細解説やこのページを参照ください。
    

    私の理解では
    スポット:エコーの集合
    ライン:スポットの集合
    水平フィールド:ラインの集合
    垂直フィールド:水平フィールドの集合
    フレーム:垂直フィールドの集合

    なのですが、それに照らし合わせても上記との関係がよくわかりません。
    垂直インターレース数というのが垂直フィールドの数という意味ならば、垂直フィールド番号は水平フィールドの数になりそうな気がするのですが違いますでしょうか?

     
  • kobayashi rin

    kobayashi rin - 2021-02-16

    垂直インターレース数が設定中の垂直フィールドの数なのに対して、
    垂直フィールド番号はその計測データがN番目の垂直フィールドのものであるかを示すものです

     
1 2 > >> (Page 1 of 2)

Anonymous
Anonymous

Add attachments
Cancel