解決方法
カラー画像からコーンの領域および中心点を算出したうえで、以下のコードを使って深度画像から距離を求めましょう。
distance = rc_utils.get_pixel_average_distance(cropped_image, contour_center)
この距離をもとにコーンに向かって走ると小さいコーンにも対応できるようになります。
理由
深度画像から距離を求める際、使用できる関数は以下のふたつです。
- get_depth_image_center_distance():画像中心の距離を求める
- get_pixel_average_distance():指定したピクセルの距離を求める
今回はコーンの中心を指定して距離を求めたいので、二つ目のget_pixel_average_distance()を使用します。
ここで、コーンは円錐形のため、値をとる高さによって距離が変わってしまいます。
そこでコーンの領域の中心を指定して距離を求めることで安定してコーンとの距離を得ることができます。