1.はじめに
ROS,OpenCV,Qtを使ってエッジベースのテンプレートマッチソフトウェアを作成しました
カメラを使った、工業部品の位置認識などに使用できればなと考えています
このリポジトリの使い方を記載します
2.環境
Ubuntu 20.04 x86_64
ros noetic
3.install
cd ~/
git clone https://github.com/hoshianaaa/geometric_match_ros.git
cd geometric_match_ros
mkdir build
cd build
cmake ..
make
4.実行
別ターミナルで
roscore
先程ビルドしたバイナリを実行します
cd ~/geometric_match_ros/build
./geometric_match_ros
実行すると以下のようなguiが表示されます.
ここにトピック名/usb_cam/image_raw (sensor_msgs/Image)
で画像を流し込みます.
cd ~/geometric_match_ros/script
python3 img_pub.py search2.jpg
guiに画像が表示されたら, 認識したいテンプレートの設定を行います.
テンプレート画像の設定
1.update image
をクリックし、現在のフレームを取得
2. bounding boxでテンプレートを囲む
3.crop
ボタンクリック
テンプレートが切り取れたら,テンプレート画像の好きな位置をクリックし把持点を設定をします
テンプレートの設定が終わったら,入力画像からテンプレートにマッチする位置を検出し,対応する把持位置が/result [geometry_msgs/Pose2D]
のトピックで出力されます
最後に
今後、このソフトウェアを使用して部品を認識し、ロボットでピッキングできればなと考えています