Quantcast
Channel: demura.net
Viewing all 757 articles
Browse latest View live

Deep Learning用PC作業メモ (Voyager18.04, Cuda10.2)

$
0
0

Deep Learning用デスクトップPCにVoyager18.04をクリーンインストールして、各種ソフトウェアをインストールしたときの作業メモ。

  •  環境
    • CROYDON (BTO組立パソコン)
      • CPU: Intel i7-8700K
      • GPU: Nvidia 1080Ti × 2
      • Memory:32GB
    • Motherboard: ASRock Fatal1ty Z370 Gaming K6
  • Voyager18.04のインストールと設定
  • CUDA 10.2のインストール
    • 準備
      • NVIDIAのドライバをインストールしていないので、起動するとIntelのGPUでXが起動する。Ctlr+Alt+F1でXを落としてから以下のコマンドを実行する。
        • $ sudo apt update
        • $ sudo apt upgrade
        • $ sudo service lightdm stop
    •  NVIDIAドライバのインストール
      • Xが落ちている状態で以下のコマンドを実行してインストールする。
        • $ sudo add-apt-repository ppa:graphics-drivers/ppa
        • $ sudo apt update
        • 以下のコマンドで推奨ドライバのバージョンを確認する。私の場合は、nvidia-driver-440がrecommendedだった。
          • $ ubuntu-drivers devices
        • $ sudo apt install nvidia-driver-440  nvidia-settings
      • 再起動
        • $ sudo reboot
      • 以下のコマンドでGPUが有効化確認する。
        • $ nvidia-smi
    •  NVIDIAのウェブサイトからCuda10.2をインストール
      • Select Target Platformで以下を選択
        • Operating system: Linux
        • Architecture: x86_64
        • Distribution: ubuntu
        • Version: 18.04
        • Install type: dev(local)
      • 以下のインストール方法の説明が表示されるので、以下のコマンドを実行してインストールする。
        • $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
        • $ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
        • $ wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
        • $ sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
        • $ sudo apt-key add /var/cuda-repo-10-2-local-10.2.89-440.33.01/7fa2af80.pub
        • $ sudo apt update
        • $ sudo apt -y install cuda
      • .bashrcに以下を追加し、CUDAのパスを通す
        • export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
    • NVIDIAのウェブからcuDNNのインストール
      • nvidiaのdeveloperに登録しないとダウンロードできないので登録してログインする。
      • Download cuDNN v7.6.5 for CUDA10.2をクリック
      • cuDNN v7.6.5 for Runtime Library for Ubuntu18.04 (Deb)とcuDNN v7.6.5 Developer Library for Ubuntu18.04 (Deb)をダウンロードして以下のコマンドでインストールする。
        • $ sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.2_amd64.deb
        • $ sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.2_amd64.deb
  • OpenCV 3.4.9のインストール
  • ROS Melodicのインストール

終わり


IPv6に対応しました。

$
0
0

PexelsのSuzy Hazelwoodによる写真

Photo by Suzy Hazelwood from Pexels

は画像が多く重いので、サイトを訪れる方にご迷惑をおかけしていると思います。遅ればせながらIPv6に対応しましたので、これで少しでも速く表示されればよいのですが。

demura.netの表示速度改善

$
0
0

いつも、demura.netにアクセスして頂きありがとうございます。本サイトの表示が遅く、イライラすることも多かったと思います。評価すべく、PageSpeed Insightsで計測したところパソコン35/100、モバイルにいたっては10/100でした。そこで、いろいろ設定を見直したところパソコンは91/100、モバイルは80/100まで向上しました。現在(2020-3-14)、月間ページビューが約30万、ユーザ数が約6万と多くの方にご利用頂いており感謝申し上げます。IPv6化と設定の見直しにより本サイトの表示速度が改善され、多くの方のイライラが解消されれば幸いです。今後ともご愛顧のほどよろしくお願いします。

深層学習: Detectron2まとめ記事

$
0
0

深層学習:アノテーションツールCVATまとめ記事

$
0
0

ROS演習全12回 (C++)

$
0
0

この記事は私が金沢工業大学ロボティクス学科で担当している2019年度後学期開講講義ロボットプログラミングⅡで使った演習をまとめたものです。使用言語はC++となっています。

ROS演習1-2019:亀で遊ぼう!
この記事は私が金沢工業大学ロボティクス学科で担当している2019年度後学期開講講義ロボットプログラミングⅡ用です。Windows Subsystem for Linux(WSL)にROSをインストール...
ROS演習2-2019:はじめてのROSプログラミング(catkin build)
この記事は私が金沢工業大学ロボティクス学科で担当している2019年度後学期開講の講義ロボットプログラミングⅡ用です。ROSでHellow Worldと表示するプログラムを作り、ビルドして実行してみまし...
ROS演習3-2019:シミュレータでTurtlebot3を動かそう!
この記事は私が金沢工業大学ロボティクス学科で担当している2019年度後学期開講の講義ロボットプログラミングⅡ用です。シミュレータGAZEBOを使い、Turtlebot3を動かします。次のTurtleB...
ROS演習4-2019: トピック通信しよう!
今回はROSの通信方式であるトピックを学びます。 1. Publisher キーボードからロボットを操縦するmy_teleopパッケージを作ろう! ROS演習2と同じ要領でmy_te...
ROS演習5-2019:サービス通信しよう!
今回はROSの通信のもう一つの通信方式であるサービスを理解しましょう。次のROS Wikiを参考にしています。 C++でシンプルなサービスとクライアントを書く シンプルなサービスとクラ...
ROS演習6-2019:Turtlebot3をプログラムで動かそう
ROS演習4の知識を使いTurtlebot3をプログラムで動かします。この演習6は演習7を問題を解くためのヒントとなっています。 まず、Robotクラスを作成し、次のメンバ関数を作成します。 ...
ROS演習7-2019:デッドレコニングを実装しよう!
今回はTurtlebot3にデッドレコニングを実装します。 デッドレコニング説明資料 以下の説明資料をダウンロードして読んでください。これをGazebo上のTurtlebot3に実...
ROS演習8-2019:地図作成・自己位置推定 (gmapping, amcl)
この記事は私が金沢工業大学ロボティクス学科で担当している2019年度後学期開講の講義ロボットプログラミングⅡ用です。今回は地図作成にgmappingパッケージと自己位置推定にamclパッケージ...
ROS演習9-2019:ナビゲーションとアクションプログラム
この記事は私が金沢工業大学ロボティクス学科で担当している2019年後学期開講の講義ロボットプログラミングⅡ用です。ROS演習8ではrvizを使いGUIでロボットを動かしましたが、今回はROSの...
ROS演習10-2019: ロボットビジョン (OpenCVとの連携)
この記事は私が金沢工業大学ロボティクス学科で担当している2019年度後学期講義ロボットプログラミングⅡ用です。今回はcv_bridgeを使います。ROSでOpenCVを使いgazeboシミュレータのR...
ROS演習11-2019:ロボットアーム
この記事は私が金沢工業大学ロボティクス学科で担当している講義ロボットプログラミングⅡ用です。今週はgazeboを使い2自由度のロボットアームを作り、関節を動かします。2自由度ロボットア...
ROS演習12-2019:ロボットアーム2
この記事は私が金沢工業大学ロボティクス学科で担当している講義ロボットプログラミングⅡ用です。今回は先回作った2自由度のロボットアームの先端に位置センサを取り付け、先端位置を取得するプログラムを作り...

終わり

深層学習:YOLOまとめ記事

$
0
0

深層学習YOLO v3に関する本サイトのまとめ記事です。

Ubuntu18.04: Yolo V3 インストールメモ
Ubuntu18.04にバージョンアップしたのでYolo V3のフレームワークdarknetをインストールしたときのメモ。 上の例では、処理時間がV2が18.9、V3が22.7と多少遅く...
Jetson Xavier: Tensorコア対応Yolo V3 インストールメモ
XavierにYolo V3をインストールしたときのメモ。Xavierは16bit浮動小数点が使え数倍高速になるので、それに対応したTensorコアを使うdarknetをインストールする。以下...
YOLO V3: Darknetのデータ拡張
YOLO開発のディープラーニングフレームワークdarknetはデータ拡張(Data Augmentation)がデフォルトで機能する。これを知らないで、データ拡張を議論していたのでメモしておく。 ...
YOLO V3: ROSで使う (darknet_ros)
YOLO V3をROSで使うためにコードを書こうと思ったが、すでにdarknet_rosがV3に対応している。darknet_rosのインストール、設定法と使い方のメモ。 参考サイト...
Yolo学習用データセットの作成ツール:labelImg
Yolo学習用データセットの作成法のメモ。Yoloの学習データを作成するときは、画像からオブジェクトの領域を矩形で指定する必要がある。そのためのツールとしては、BBox-Label-Toolがあるが、...
VOC xmlファイルをYOLO annotaitonファイルへ変換
VOC xmlファイルをYOLO annotationファイルへ変換する方法は以下を参照。 convert2Yolo 準備 cd ~/src git clone ...
YOLO V3:オリジナルデータの学習
YOLO V3にオリジナルデータを学習させたときのメモ。この記事はチェックができていないので、注意してください。 Yoloで学習させるためには以下のものを準備する。  1. 学...
深層学習ハッカソン
専門ゼミ(プレゼミ)で実施する深層学習ハッカソンの実施要領。 ハンズオン チーム分け 3チーム。各チーム3~4名。 リーダは深層学習の経験、デュアルブートのPCを持って...

終わり

Voyager18.04へ更新

$
0
0


Deep Learning用デスクトップPCにVoyager18.04をクリーンインストールして、各種ソフトウェアをインストールしたときの作業まとめ記事。

環 境

  • CROYDON (BTO組立パソコン)
    • CPU: Intel i7-8700K
    • GPU: Nvidia 1080Ti × 2
    • Memory:32GB
  • Motherboard: ASRock Fatal1ty Z370 Gaming K6

作 業

Voyager 18.04:インストールと設定
フランス製のLinuxディストリビューションVoyager16.04LTSはXubuntuベースでデザインが洗練されているので使っている。サポートが2020年4月までなのでVoya...
CUDA 10.2のインストール
CUDA10.2をインストールしたときのメモ。  環境 CROYDON (BTO組立パソコン) CPU: Intel i7-8700K GPU: Nvidia 10...
Ubuntu18.04: OpenCV3.4.9 (CUDA10.2)のインストール
Ubuntu18.04にOpenCV3.4.9をGPU搭載のラップトップ用にソースからビルドしインストールしたときのメモ。GPUを使いたいのでソースからビルドした。インストール方法は以下のリンクの手順...
Ubuntu18.04: ROS Melodicのインストール
ROS Melodicのインストールメモです。この記事はROS のオフィシャルウェブサイトの次の日本語記事を簡略化しています。詳しい説明は次のリンクをご覧ください。なお、firewall外の環...
DNN:Detectron2 インストール
Facebook人工知能が開発している最新の物体検出アルゴリズムを実装しているソフトウェアシステムDetectron2のインストールメモ。Detectron2をインストールする前にPyTorc...
OpenVINO:インストールメモ
OpenVINO(Open Visual Inference & Neural network Optimization)はIntelが開発しているDeep Learningの推論用ツールキット。CV...
CVAT: Computer Vision Annotation Toolインストールメモ
OpenCVが開発しているCVAT(Computer Vision Annotation Tool)のインストールメモ。Dockerを使うのでインストールはとても簡単。ライセンスはMIT Licens...

終わり


リニューアルしました。

$
0
0

現在、demura.netは1507件の投稿記事があり、先月は約31万ページビューでした。アクセスして頂きありがとうございます。

今まで、ページの速度が遅く、サイトの構成もわかりづらかったので、新聞社やウェブマガジン、女の子に人気のMERYなどのサイトを参考に、サイトをリニューアルしました。多少は使いやすくなればよいのですが。。。

今後ともよろしくお願いします。

demura.netのカスタマイズメモ

$
0
0

demura.netを全面的にリニューアルしました。そのカスタマイズのメモです。本サイトはオープンソースのブログ作成用ソフトウェアWordPressを使い、シンプルでカスタマイスがしやすい100%GPLのCocoonを使用しています。

  1. 目的
    • 使いやすさの向上
      • 現在、記事が1507件もあり、ウェブサイトがあまり構造化されていないので自分でも何がどこにあるかよくわかない状態です。先月のページビュー数は約31万、訪問者は約6万と多くの方に使って頂いているので、反省して改善します。
    • 表示速度の向上
      • 今まで本サイトの反応がとても遅く、自分でもイライラでした。多くの方にご迷惑をおかけしていたと思います。この状況を改善して、より多くの方に快適に使って頂くためにPageSpeed Insightsのパソコン評価で90点以上を目指します。
  2. 方法
    • 使いやすさの向上
      • 記事が多いので探すのは検索した方が効率的です。そのため、ヘッダーの一番目立つところに検索窓を設定しました。
      • 今までナビゲーションバーの構成を大幅に見直し、ユーザの興味がありそうな項目に変更。
      • 新たにカルーセルの設置。カルーセルは回転式の記事表示部位で最近のサイトでは良くみられます。ここに最も多くの方に参考になると思う記事を掲載します。
    • 速度の向上
      • PageSpeed Insightsで定量的な指標とページ読み込み時間を短くするための方法がわかるので、それに基づいて変更しました。
      • ブログの更新がすぐ反映されないので、今までキャッシュを有効にしていませんでしたが、速度向上のためにキャッシュを有効にしています。そのため、キャッシュをクリアしない限り6時間は更新が反映されません。
  3. カスタマイズ作業
    • Cocoonはユーザも多いの多くの方のブログを参考にさせて頂きました。
    •  検索窓の位置変更:以下のブログのとおり実施。
    • カルーセルの設置
      • WordPress ダッシュボード → Cocooの設定 → カルーセルから設置。
    •  トップページの記事
      • 最新記事3件と新着順に27件のサムネイルと抜粋(excerpt)を表示しています。最新記事3件のサムネイルは240x135px、残りは120x68pxと小さくして記事の一覧性を高めています。PHPの勉強がてら、WEMO.techさんらのコードを少し改変してショートコードを自作しました。以下のコードをダッシュボード → 外見→テーマエディター→functions.phpに記載。

        • 固定ページに以下のショートコードを張り付けて、 そのページをサイトのトップページに指定すればOKです。
    •  記事一覧ページの設置
      • トップページの下に「記事一覧の表示」のリンクがあり、全記事のサムネイルと記事の概要が表示されます。これには以下のプラグインを使いました。Display PostsだけだとページネーションをしないのでDisplay Posts – Paginationも合わせて入れる必要があります。
      • 記事一覧ページ用の固定ページを新規作成し、以下のコードを記載するだけです。
  • 評 価
    • 使いやすさ:未実施。今後の課題です。
    • 表示速度の向上:PageSpeed Insightsのパソコン評価で100点を獲得したので目的は達成できました。今後は、コンテンツの充実に力を入れていきます。

終わり

RGB-Dセンサ:Structure Coreを試す

$
0
0

Occipital社のRGB-DセンサStructure Core (color)を昨年12月の国際ロボット展で知った。商社の話によるとRealSenseの元開発者がその問題点を解決したのがこの製品らしい。これは買うしかないと思い2月初めに入手できた。コロナ騒動で暇になったのでインストールして試してみた。この記事はそのメモ。ネット上でほとんど情報がないので少し試行錯誤した。なお、この手順は以下の参考資料に基づいた。

  • 参考資料
    • ~/src/StructureSDK-CrossPlatform-0.7.3-ROS/Documentation/index.html
  • 環境
    • Xubuntu18.04 (Vayager 18.04)
    • ROS melodic
    • gcc 7.5.0
    • pcl  1.8.1+dfsg1-2ubuntu2.18.04.1
  • SDKの入手:以下からDeveloper Programに加入する。氏名、メールアドレスを入力すると、ダウンロード先のリンクがはられたメールが送られてくるので~/Downloadsにダウンロードする。
  • 展開
    • $  cp ~/Downloads/StructureSDK-CrossPlatform-0.7.3-ROS.zip   ~/src
    • $ cd ~/src
    • $ unzip StructureSDK-CrossPlatform-0.7.3-ROS.zip
  • USBデバイスへのアクセス許可:udevのルールを設定する。
    • $ sudo ./DriverAndFirmware/Linux/Install-CoreDriver-Udev-Linux.sh
  • ビルド
    • $ ./Scripts/build.sh
  • ROSドライバ
    • インストール
      • $ cd ~/catkin_ws/src
      • $ cp -r  ~/src/StructureSDK-CrossPlatform-0.7.3-ROS   .
      • $ cd  StructureSDK-CrossPlatform-0.7.3-ROS/ROS
      • $ chmod 755 to_ros1.sh
      • $ source to_ros1.sh      source to_ros1.sh BUILD_EXAMPLES
      • ビルド
        • $ cd ~/catkin_ws
        • $ catkin build        (もしくは、catkin_make)
      • ROS環境の初期化
        • $ source  ./devel/setup.bash
  • 実行
    • ドライバのみ
      • $ roslaunch structure_core_ros_driver sc.launch
      • 実行すると次のトピックがpublishされる。
    • ドライバとRviz
      • $ roslaunch structure_core_ros_driver sc_rviz.launch
      • 実行するとRvizが立ち上がり次のようなウインドウが開く。depthイメージの美しさはどうでしょうか。設定のパラメータもいろいろあるのでより美しくなるかもしれない次はRealSenseと比較してみよう。

 

 

終わり

RoboCup@Home Education設立者による無料オンラインクラス開講

$
0
0

RoboCup@Home Educationの設立者である中国南海大学Jeffery Tan教授が高校生向けにRoboCup@Home Educationのオンラインクラスルームを開講しています。これをみるとRoboCup@Home Educationに参加するためのロボットとAIに関する必要な知識を得ることができます。

終わり

RGB-Dセンサ:Structure CoreとRealSense 仕様比較

$
0
0

Occipital社のRGB-DセンサStructure Core (color)を入手したので、RealSenseと比較してみた。この記事ではパッケージと仕様を比較する。Structure Coreカラー(SCS-Color)とモノクロ(SCS-Mono)の2タイプある。カラーとモノクロの違いは可視カメラだけで、深度画像には関係ない。可視画像でカラーが必要か、広い視野が必要かで選択する。以下のリンクはアルゴの商品説明ページ。

Structure Coreのパッケージ(一番上図)はRealSenseより一回り小さい。中には次のものが入っている。

  • Structure Core センサ本体
  • USB3.0ケーブル(TypeC – A)
  • USB変換アダプタ(TypeC オス- Aメス)
  • ドライバー&ネジ(ハウジング脱着用):ただし、ハウジングを外して動作させるとアルゴ社の保証を受けれなくなるので注意。

Structure Coreは上写真の左側、RealSenseは右側。Structure Coreのサイズは109mm × 18mm × 24mm(RealSense D435i:90 mm x 20 mm x 23 mm) 、重量は 52.5g(RealSense: 約74g実測)でRealSenseとより少し横長だが、ほぼ同じなので多くのロボットに搭載可能。

上図はStructure Coreの裏面。3個のネジを外すとハウジングの脱着ができるようだが、保証対象外になるのでまだ外していない。RealSense D435はハウジングの下に三脚用のネジ穴がついているが、Structure Coreは穴がないので固定方法を別途考える必要がある。D435との主な使用を表として以下に示す。

センシング方式はどちらも赤外線パターンを投影して2つの赤外線カメラでDepthを計算するもの。仕様で大きくことなる点は、FOV(視野)では D435iの方が25度も横方向に広く、RGB画像はRealSenseがFull HDなのに対して、Structure CoreはVGAと圧倒的に負けている。RealSense D435iの精度に関してはデータシートでは、Structure Coreと条件が違うが2%以下となっており1mで最大2cmもずれてしまう。ただ、注1のIntel Forumによると物体から1m離れた地点では2.5~5mmなのでStructure Coreとさほど変わらないことになっている。果たしてどうだろうか。

次回は実測して両者を比較してみよう。

Structure Core Color RealSense D435i    データシート
サイズ 109mm × 18mm × 24mm 90 mm x 20 mm x 23 mm
重量 52.5g 72g
センシング方式 パターン投影/ステレオカメラ
Depth解像度 1280 x 960 @ 54 fps 最大1280 x 720 @ 90fps
Depth FOV 59° x 46° x 70° (H x V x D) H:87±3 / V:58±1 /D:95±3
最小深度距離 0.3m 0.31m (  640 x 480)
0.45m (1280 x 720)
最大深度距離 10m 10m
精度 ± 0.29%(1mでの平面に対するRMS値) 2%以下 (最大2m, 80%FOVでの平面に対するRMS値) 注1
RGB 解像度 640×480@100fps 解像度 1920×1080@30fps
IMU Bosch BMI055 6軸 (ジャイロ & 加速度センサ)
レーザークラス クラス1
消費電力 2.0W (平均)3.1W(最大) 3.5W (最大Intel Forum: 注2)
インタフェース USB Type C
ソフトウェア ROS, Linux, Windows, macOS, Android
価格 \59,800(税別、アルゴ) \30,112(税込み、 スイッチサイエンス)

注1:この資料によると理論値RMS 3mm@1m
注2:データシートによるとVision Processor D4ボードへの正電源電圧Vcc: 5V、消費電流Iccが最大700mA。これにより最大3.5Wとしている。平均は記述なし。

終わり

RGB-Dセンサ:RealSense D435i インストールメモ

$
0
0

RealSense D435iをROS Melodicで使うメモ。D435iはD435にIMUが搭載された新しい機種。D435と同じようにインストールできた。ROSのラッパーもありすぐ使える。このメモはRGB画像と深度画像の表示とポイントクラウド表示まで。なお、ビルドコマンドはcatkin_makeではなくcatkin buildを使用しているので、catkin_makeを使っている方は適宜読み替えてください。

環 境

  • Razer Blade 15
  • Ubuntu18.04
  • ROS Melodic
  • RealSense SDK 2.0

参考リンク

RealSense SDKのインストール

  • このページのとおり実施すればよい。以下の手順はその簡単な日本語訳とささやかな補足。
  • サーバーの公開鍵を登録
    • $ sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE 
  • リポジトリにIntelサーバーを追加
    • $ sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo bionic main" -u
  •  リポジトリのリストと使えるパッケージをリフレッシュする
    • $ sudo apt update
  • ライブラリのインストール
    • $ sudo apt install librealsense2-dkms
    • $ sudo apt install librealsense2-utils
  • 開発用に追加のパッケージをインストールする
    • $  sudo apt install librealsense2-dev
    • $ sudo apt install librealsense2-dbg
  • RealSenseのUSBケーブルを抜き差しして以下のコマンドを実行する。ウインドウが開くので、左サイドバーにあるStereo ModuleとRGB Cameraをoffからonにすると、上のような画像が現れる。左上が深度画像、下がRGB画像、右側はジャイロと加速度センサからの情報を表示している。
    • $ realsense-viewer

パッケージのアップグレード

  • 以下の手順でアップグレードする。ここでは上でインストールしたパッケージだけアップグレードする。アップグレード可能なすべてのパッケージをアップグレードすると稀に動かなくなるパッケージがあるのでこの方法はお勧め。
    • $ sudo apt update
    • $ sudo apt --only-upgrade install librealsense2-utils librealsense2-dkms librealsense2-dev librealsense2-dbg

ROSラッパーのインストール

  • https://github.com/intel-ros/realsense/releases からSource code (realsense-2.0.3.tar.gz)を~/catkin_ws/srcにダウンロードする
  • $ cd ~/catkin_ws/src
  • $ git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
  • $ catkin build
  • $ git clone https://github.com/IntelRealSense/realsense-ros.git
  • $ catkin build
    • 参考元の説明を元に次のようにcatkin installすると不具合が出た学生がいたので変更した。
      • $ catkin build -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
      • $ catkin install

RGB画像と深度画像の表示

  • $ roslaunch realsense2_camera rs_camera.launch
    • 解像度は640×480 pixel。変更したいときはrs_camera.launchの中を書き換える。
  • カメラ画像を表示するimage_viewノードは、melodicではaptでインストールできないので、rqt版のrqt_image_viewをインストールする。
    • $ sudo apt install ros-melodic-rqt-image-view
  • $ rosrun rqt_image_view rqt_image_view
    • 左上の選択ボックスからトピック/camera/color/image_rawを選択して、下のように画像が表示されれば成功。

  • トピック

~/catkin_ws$ rostopic list /camera/color/camera_info /camera/color/image_raw /camera/color/image_raw/compressed /camera/color/image_raw/compressed/parameter_descriptions /camera/color/image_raw/compressed/parameter_updates /camera/color/image_raw/compressedDepth /camera/color/image_raw/compressedDepth/parameter_descriptions /camera/color/image_raw/compressedDepth/parameter_updates /camera/color/image_raw/theora /camera/color/image_raw/theora/parameter_descriptions /camera/color/image_raw/theora/parameter_updates /camera/depth/camera_info /camera/depth/image_rect_raw /camera/depth/image_rect_raw/compressed /camera/depth/image_rect_raw/compressed/parameter_descriptions /camera/depth/image_rect_raw/compressed/parameter_updates /camera/depth/image_rect_raw/compressedDepth /camera/depth/image_rect_raw/compressedDepth/parameter_descriptions /camera/depth/image_rect_raw/compressedDepth/parameter_updates /camera/depth/image_rect_raw/theora /camera/depth/image_rect_raw/theora/parameter_descriptions /camera/depth/image_rect_raw/theora/parameter_updates /camera/extrinsics/depth_to_color /camera/extrinsics/depth_to_infra1 /camera/extrinsics/depth_to_infra2 /camera/infra1/camera_info /camera/infra1/image_rect_raw /camera/infra1/image_rect_raw/compressed /camera/infra1/image_rect_raw/compressed/parameter_descriptions /camera/infra1/image_rect_raw/compressed/parameter_updates /camera/infra1/image_rect_raw/compressedDepth /camera/infra1/image_rect_raw/compressedDepth/parameter_descriptions /camera/infra1/image_rect_raw/compressedDepth/parameter_updates /camera/infra1/image_rect_raw/theora /camera/infra1/image_rect_raw/theora/parameter_descriptions /camera/infra1/image_rect_raw/theora/parameter_updates /camera/infra2/camera_info /camera/infra2/image_rect_raw /camera/infra2/image_rect_raw/compressed /camera/infra2/image_rect_raw/compressed/parameter_descriptions /camera/infra2/image_rect_raw/compressed/parameter_updates /camera/infra2/image_rect_raw/compressedDepth /camera/infra2/image_rect_raw/compressedDepth/parameter_descriptions /camera/infra2/image_rect_raw/compressedDepth/parameter_updates /camera/infra2/image_rect_raw/theora /camera/infra2/image_rect_raw/theora/parameter_descriptions /camera/infra2/image_rect_raw/theora/parameter_updates /camera/realsense_ros_camera_manager/bond /camera/realsense_ros_camera_manager/parameter_descriptions /camera/realsense_ros_camera_manager/parameter_updates /rosout /rosout_agg /tf_static

ポイントクラウドの表示

  • rgbd_launchパッケージのインストール
    • $ sudo apt install ros-melodic-rgbd-launch
  • 起動
    • $ roslaunch realsense2_camera rs_rgbd.launch align_depth:=true
  • ポイントクラウドのトピック
    • rostopic listコマンドで確認すると以下のトピックを確認できる。
      • $ rostopic list

        /camera/depth_registered/points
    • メッセージ型の確認
      • $ rostopic info /camera/depth_registered/points

        Type: sensor_msgs/PointCloud2

        Publishers:
        * /camera/realsense2_camera_manager (http://razer:36809/)

  • 表示
    • $ rosrun rviz rviz
    • このままでは何も表示されないので下図の左上にあるDisplaysの項目を変更する。
      • Fixed Frame: camera_link
      •  
      • 左下のAddボタンをクリックすると新しいウインドウが開くのでPointCloud2を選択してOKをクリックする。

 

      • Displays欄にPointClouds2という項目ができるので、次のTopic名を選択する。
        • /camera/depth_registered/points
      • RGB付ポイントクラウドが表示される。カメラが傾いているのでポイントクラウドの表示も上図のように傾いているが、次の操作で下図のように変更できる。
        • 左マウスボタンクリック:回転
        • 中マウスボタンクリック:x, y軸移動
        • 右クリックまたはマウスホイール:拡大、縮小

 

終わり

RGB-Dセンサ:Structure Coreの設定と表示

$
0
0

Occipital社のRGB-DセンサStructure Core (color)の設定と表示のメモ。インストールや仕様は以下のリンクを参照。

Structure Coreを設定する。設定についてのアルゴ社による日本語のドキュメントは参考リンクにある。

起 動

  • まず、Structure CoreとPCを接続する。次に、設定もできるビューワソフトが以下にあるので起動する。ない場合は、上の1番目のリンクに従ってインストール・ビルドする。
    • $ cd ~/src/StructureSDK-CrossPlatform-0.7.3-ROS/Apps/CorePlayground
    • $ ./CorePlayground
  • 起動すると下図のCorePlaygroundのGUIが表示される。

設 定

  • デフォルトでは上の設定。各項目を上から説明する。
  • →ボタン:クリックすると画像が表示される。
    • Load config: 設定ファイルのロード
    • Save config: 設定の保存
    • Default: デフォルト値へ設定
  • Stream depth: 深度画像のON/OFF
    • SXGA (1280 x 960) : 小さな物体も検出したい場合は解像度を高くする。デォルト値はVGA(640 x 480)。
  • Depth range mode: 深度距離は細かく次のモードを選べるので自分のアプリケーションに適したものを選択する。Libraries/Structure/Headers/ST/CaptureSessionSettings.h参照。
    • VeryShort: 0.35m 〜 0.92m
    • Short:  0.41m 〜 1.36m
    • Medium:  0.52m 〜 5.23m
    • Long: 0.58m 〜 8.0m
    • VeryLong: 0.58m 〜 10.0m
    • Hybird: 0.35m 〜 10.0m
    • Default: これは選ばない。自分のアプリケーションに適したものを上から選択する。
    • 参考:GUIにはないが人体スキャン用にBodyScanningというモードがある。
  • Depth correction: 深度補正。ONがお勧め。
  • Dynamic calibration mode: 動的キャリブレーションモード
    • Off: 動的キャリブレーションをしない。ステレオ赤外線カメラのアライメントが0.1mm以上ずれた場合は、深度データの質が悪くなる。
    • One-shot: 深度画像データが取得できたときに1度だけ動的キャリブレーションを行う。センサを装置に取り付けるなどセンサ筐体に静的な機械的応力がかかる場合に十分にミスアライメントを修正できる。キャリブレーションデータはセンサに保存される。
    • Continuous: センサが深度データを取得しているときは常に動的キャリブレーションを行うモード。振動や温度変化などがある環境ではこのモードを選択する。キャリブレーションデータはセンサに保存されない。移動ロボットやロボットのハンドアイシステムなどの場合はこれを選択すればよいでしょう。
  • Stream visible: 可視カメラのON/OFF
    • Framerate: フレームレート
    • Exposure:露出量時間[s]
    • Gain: ゲイン
  • Stream infrared: 赤外線カメラ(深度用)のON/OFF
    • Framerate: フレームレート
    • Exposure:露出時間[s]
    • Gain: ゲイン
    • Autoexposure: 自動露出
    • Disable intensity balance:
    • Active camera:
      • Left:
      • Right:
      • Left + Right
    • Frame sync
  • Stream accelerometer: 3軸加速度センサのデータ取得 ON/OFF
  • Stream gyroscope: 3軸ジャイロセンサのデータ取得 ON/OFF
  • IMU sample rate: IMU(加速度センサ、ジャイロセンサ)のサンプリングレート
    • 100 Hz
    • 200 Hz
    • 400 Hz
    • 1000 Hz
  • 設定例:1m離れた地点でも平面を計測するために以下の設定にした。

表 示

  • ウインドウの左上にある緑に→ボタンをクリックすると以下のようなウインドウが表示される。左下の”Save Images & PLY”をクリックすると、可視画像、深度画像、ポイントクラウドが次のディレクトリに日時のディレクトリ下に保存される。
    • ~/Documents/occ/2020-03-28_13-01-02
      • depthFrame.png:深度画像
      • depthPointCould.ply:ポイントクラウド
      • visibleFrame.png:可視画像
      • depthFrameIntrinsics.csv:深度画像の設定値
      • infraredFrame.png:赤外線画像

  • では、ポイントクラウドが保存されているdepthPointCould.plyをオープンソースの3Dデータ編集・変換ソフトmeshlabで見てみましょう。
    • meshがインストールされていない場合は次のコマンドでインストールして実行しょう。
      • $ sudo apt install  meshlab
      • $ meshlab
    • meshlabを起動して、当該ファイルを開くと次のようなウインドウが開くので、ポイントクラウドを確認できる。1m離れた壁を計測したデータ。かなりきれいに取れている。

  • 平面だけだとわかりづらいので、最後にレゴブロックを床に置いたときの画像を本記事のトップに示す。いかがだろうか。次の記事では定量的に評価してみたい。

終わり


Open3D: インストールメモ

$
0
0

3次元データ処理のオープンソースライブラリOpen3Dのインストールメモ。3次元データ処理ライブラリとしてはPCLが有名だが、Open3Dの方が簡単でコードも短くて済む。言語はpythonとC++をサポートしており、ライセンスはMIT

参考リンク

環境

  • Ubuntu 18.04
  • Python 3.6

インストール

  • $ pip3 install open3d
    • 2020-03-29時点ではバージョン0.9.0がインストールされる。

テスト

  • 以下のコマンドが実行できればインストール成功。
    • $ python3 -c “import open3d”

サンプルプログラムの実行

  • $ cd  src
  • $ git clone https://github.com/intel-isl/Open3D.git
  • $ cd Open3D/examples/Python/Basic
  • $ python3 rgbd_redwood.py
    • 上のコマンドを実行すると以下のウインドウが開き、画像が表示されたら成功。

終わり

Open3D:RealSenseを使った3次元点群処理

$
0
0

本記事は以下に示す秋月秀一先生の参考リンクをRealSense D435iを使ってやってみただけのメモ。第24回画像センシングシンポジウム(SSII2018)の チュートリアル講演「3D物体検出とロボットビジョンへの応用 -3D点群処理の基礎と位置姿勢推定のしくみ-」のために用意した資料とのこと。Open3Dのバージョンが違いAPIが変更になったのでその部分だけを変更している。PCLと比較して圧倒的に簡単なのがわかった。

参考資料

環 境

  • Ubuntu 18.04
  • Open3D  0.9.0
  • Python  3.6

準 備

ビルド

  • $ cd ~/src
  • $ git clone  https://github.com/sakizuki/SSII2018_Tutorial_Open3D.git
  • $ cd  SSII2018_Tutorial_Open3D
  • $ mkdir build
  • $ cd build
  • $ cmake ../
  • $ make

RGB画像と距離画像の取得

  • RealSenseをパソコンに接続
  • 端末で次のコマンドを実行
    • $ cd ~/src/SSII2018_Tutorial_Open3D/build
    • $ ./rs-capture
  • “depth”と”image”ディレクトが作成され、RGB画像と距離画像が保存される。放おっておくとずっとキャプチャし続けれので良いところで止める。rs-captureを実行している端末で”Ctrl+C”により実行を終了する。
  • 次のコマンドで画像が何番目まで保存されているか確認する。
    • $ ls depth
      • depth00000.pngから多くのファイルが連番で表示される。
    • $ ls image
      • depth00000.pngから多くのファイルが連番で表示される。

ポイントクラウドの取得

  • 上で取得したdepthとimage画像からポイントクラウドを取得する。取得にはrgbd_and_pcd.pyスクリプトを使う。ただし、githubにあるソースコードはOpen3Dのバージョン0.9.0には対応していないのでAPIを改変して次のコードを使った。
    # RGBD画像の表示 rgbd_and_pcd.py
    # https://github.com/sakizuki/SSII2018_Tutorial_Open3D 
    # Open3D 0.9.0に対応
    #from open3d import *
    import open3d as o3d
    import matplotlib.pyplot as plt
    import numpy as np
    
    file_num = "00150" # 
    
    if __name__ == "__main__":
        color_raw = o3d.io.read_image("../build/image/image"+file_num+".png")
        depth_raw = o3d.io.read_image("../build/depth/depth"+file_num+".png")
        camera_intrinsic = o3d.io.read_pinhole_camera_intrinsic("../data/d435.json")
        print( camera_intrinsic )
        #rgbd_image = o3d.geometry.create_rgbd_image_from_color_and_depth( color_raw, depth_raw )
        rgbd_image = o3d.geometry.RGBDImage.create_from_color_and_depth(color_raw, depth_raw) #API変更
    
        #print(rgbd_image)
        plt.subplot(1, 2, 1)
        plt.title('Grayscale image')
        plt.imshow(rgbd_image.color)
        plt.subplot(1, 2, 2)
        plt.title('Depth image')
        plt.imshow(rgbd_image.depth)
        plt.show()
    
        #pcd = o3d.io.create_point_cloud_from_rgbd_image(rgbd_image, camera_intrinsic)
        pcd = o3d.geometry.PointCloud.create_from_rgbd_image(rgbd_image, camera_intrinsic) #API変更
    
        print(np.asarray(pcd.points))
        print("\n")
    
        # o3d.io.draw_geometries([pcd])
        o3d.visualization.draw_geometries([pcd])  # API変更
        print("save point cloud")
        o3d.io.write_point_cloud(file_num+".ply", pcd)
    
    
  • 実行
    • $ ~/src/SSII2018_Tutorial_Open3D/Python
    • $ python3  ./rgbd_and_pcd.py
    • 実行すると以下のウインドウが現れる。右上の☓印をクリックしてウインドウを閉じる。

    • ポイントクラウドが表示される。これは壁をキャプチャしたので平面らしきものが表示されている。

    • このようにウインドウに表示される他に、プログラムで設定したファイル番号名.plyの3Dフォーマットファイルが実行したディレクトに保存される。この例では”00150.ply”ができる。
  • 3Dフォーマットファイルの表示
    • ウインドウで表示されたポイントクラウドと同じか、meshlabを使って生成された3Dフォーマットファイルを表示してみよう。同じ形状のポイントクラウドが表示されることがわかる。

    • ポイントクラウドをマウスでドラッグして真横からみてみましょう。3DカメラStructure Coreと比較してなんだか波打っている。

準備ができたので、次は定量的にStructure CoreとRealSenseを比較してみよう。

終わり

RGB-Dセンサ:CloudCompareを使いRealSense D435iとStructure Coreを比較してみた

$
0
0

平面の点群(上:RealSense D435i、下:Structure Core)

RealSense D435iとStructure Coreを使いポイントクラウド(点群)からPLY形式の3Dファイルを取得できたので、点群とメッシュの編集ソフトCloudCompareを使って両者を定量的に比較してみた。

CloudCompareのインストールと起動

  • CloudCompareはオープンソースの点群とメッシュ編集ソフトウェア。Windows、Mac、Linuxで使える。ライセンスはGPL。
  • インストール
    • パッケージ管理ソフトSnappyがインストールされていない場合は、次のコマンドでインストールする。
      • $ sudo apt -y  install snapd
    • $ snap insall cloudcompare
  • 起動
    • $ cloudcompare.CloudCompare
    • 以下のウインドウが開く

CloudCompareを使った平面推定

  • では、CloudCompareを使いRealSenseとStructure Coreから取得した点群の3Dファイルを開き、フィッティングする平面を推定してみよう。
  • File -> Open から開くファイルを選択する。この例では、点群ファイル00150.plyを選択し”Open”をクリックする。なお、この00105.pyは1m先の平らな壁をRealSenseで取得したもの。データはここからダンロードできる。
  • “Ply File Open”ウインドウが開くので、何も変えずに”Apply”をクリックする。

  • 点群が表示される。
  • 平面推定。推定する点群をクリックする。選択された点群領域が黄色で表示される。
  • Tools→Fit→Plane を選択
  • 点群にフィットする平面が計算される。

点群と平面の距離計算

  • ここでは、推定された平面と各点群との距離の標準偏差を計算する。標準偏差が小さいほど点群は平面に近いことになる。計算するために、点群と平面を選択する。下画面左欄DB Treeの上から2番目(00150-Cloud)と3番目の項目(Dip: 003 deg)をシフトキーを押しながらクリックする。両方とも選択されるとグレーで表示される。
  • Tools→Distances→Cloud/Mesh Distを選択
  • Computeをクリックし、OKをクリックする。
  • 計算結果が下のConsoleに表示される。このRealSenseから取得したデータはStd deviation(標準偏差)が0.006790 [m]となった。単位系はmmにすると約6.8 [mm]である。
  • 同様にしてStructure Coreから取得した点群で計算した結果が次のとおり。Std deviation(標準偏差)が1.810365 [mm]となった。なお、Structure Coreから取得したデータの単位系はmm、RealSenseの単位系はmなので1000倍違う。画面下にスケールがあるのでそれでわかる。Structure Coreのデータもここから取得できる。

RealSense D453iとStructure Coreとの比較

  • 結果をまとめると次になる。両者の画像を見ると一目瞭然である。定量的にもRealSenseの方が約3.75倍標準偏差が大きく凸凹していることがわかる。
    • RealSense D435i:  標準偏差 6.79 [mm]
    • Structure Core:      標準偏差 1.81 [mm]

終わり

RGB-Dセンサ:Structure CoreとRealSenseまとめ

$
0
0


Occipital社のStructure Core ColorとRealSense D435iの記事を一通り書いたのでまとめる。今回の簡易的な評価ではStructure Coreの方が3.75倍凸凹が少ない(推定平面に対する標準偏差)という結果になった。ただし、両方とも設定をチューニングしていないのでRealSenseがもう少し良くなるかもしれない。体感的にも定量的評価と近い。ただし、日本で購入すると倍ぐらいStructure Coreの方が高く、可視画像に関してはRealSenseはFull HDなのに対してStructure CoreはVGA(640×480)と解像度が低いので用途に合わせて選択すればよいと思う。

Structure Core

RGB-Dセンサ:Structure Coreを試す
Occipital社のRGB-DセンサStructure Core (color)を昨年12月の国際ロボット展で知った。商社の話によるとRealSenseの元開発者がその問題点を解決したのがこ...
RGB-Dセンサ:Structure Coreの設定と表示
Occipital社のRGB-DセンサStructure Core (color)の設定と表示のメモ。インストールや仕様は以下のリンクを参照。 RGB-Dセンサ:Structure ...

RealSense D435i

RGB-Dセンサ:RealSense D435i インストールメモ
RealSense D435iをROS Melodicで使うメモ。D435iはD435にIMUが搭載された新しい機種。D435と同じようにインストールできた。ROSのラッパーもあり...
Open3D:RealSenseを使った3次元点群処理
本記事は以下に示す秋月秀一先生の参考リンクをRealSense D435iを使ってやってみただけのメモ。第24回画像センシングシンポジウム(SSII2018)の チュートリアル講演「3D物体検出とロボ...

両者の比較

RGB-Dセンサ:Structure CoreとRealSense 仕様比較
Occipital社のRGB-DセンサStructure Core (color)を入手したので、RealSenseと比較してみた。この記事ではパッケージと仕様を比較する。Structure ...
RGB-Dセンサ:CloudCompareを使いRealSense D435iとStructure Coreを比較してみた
RealSense D435iとStructure Coreを使いポイントクラウド(点群)からPLY形式の3Dファイルを取得できたので、点群とメッシュの編集ソフトCloudCompareを使っ...

以上

 

 

KITロボティクス学科新入生へのアドバイス

$
0
0

KITロボティクス学科新入生の皆さん。ご入学おめでとうございます。ロボティクス学科の出村です。新型コロナウイルスの影響で学科全教員との対面式はなくなり、200字のメッセージしかお伝えすることはできませんでした。この記事でもう少しアドバイスしますので参考になればと思います。

アドバイス

  • 夢考房プロジェクトへの参加:就職面接で「学業以外で力を注いだこと」が必ず聞かれます。本学には夢考房プロジェクトをはじめとする課外活動が100近くあります。自分の将来をよく考えて選んでください。とくにロボティクス学科の特色上、いろいろな学問を広く学ぶので、他学科と比較すると内容が浅くなりがちです。それを補うために、夢考房プロジェクトに加入すると良いと思います。特に、プログラミングや設計・製作などのスキルはプロジェクト活動で身に付き、同じ志を持った仲間もできるので充実した4年間をきっと過ごせます。
    • 夢考房プロジェクト:ロボットを開発している夢考房プロジェクトの一覧を示します。
      プロジェクト名 AI ソフトウェア ハード
      ウェア
      福祉 災害
      救助
      備 考
      RoboCup@Home

      Twitter

      人の生活を助けるドラえもんのようなロボットを開発。
      AIの知識とスキルが身に付くのはここだけ。ソフトだけではなく、ハードを含めてロボット全体を開発できる。
      ロボット いわずと知れたNHK大学ロボコンで優勝できるロボットを開発。活動がもっとも厳しいともいわれている。その分、メンバーの団結は固い。
      ロボカップ サッカーをするヒューマノイドロボットを開発している。ヒューマノイドロボットを開発できるのはここだけ。
      メカニカルサポート 災害で人を助けるロボットを開発しているのはここだけ。
    • 学科プロジェクト
  • 大学院への進学:大学院への進学は超お勧めです。一番は大きく成長することです。4年次にPDⅢという他大学の卒研に相当する科目があります。この科目は研究ではなくても良いので、必ずしも新しいモノ(理論、ソフト含む)を創るわけではありません。大学院の場合は研究、すなわち、新しいモノを創る活動を通じて、その能力を身に付けます。
    これからの人材に必要な研究開発能力を向上させることができます。その他、文献調査能力、英語力、プレゼンテーション能力、文章作成能力が徹底的に鍛えられます。つまり、学部卒と比較して能力が高いのです。そのため、院卒の学生は大企業から人気があります。本学でも院卒と学部卒を比較すると、圧倒的に院卒の方が大企業への就職率が高いです。なお、大企業の研究開発職者はほぼ大学院卒で、生涯年収も約5000万円高いというデータがあります。
  • 新型コロナウイルス感染予防:金沢市内でも市中感染者の疑いがあり、石川県でもとても注意が必要です。感染しても若者は比較的重症にならないといわれていますが、海外では若者が重症化したり死亡したりするケースが多く報告されています。感染したら自分1人だけの問題ではなく、知らずに他人に感染をうつしクラスターの発生源になり、人命が失われるかもしれません。一生後悔することになるでしょう。そうならないためにも、友達と飲食やカラオケに行かない、不急不要な外出はしない、外出した場合はマスクをし、家に戻ったら。うがい、手洗いを徹底してください。この危機は皆で協力して乗り切らなければなりません。皆さんの自覚ある行動をお願いします。

続くかも。。。

Viewing all 757 articles
Browse latest View live