読者です 読者をやめる 読者になる 読者になる

空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

YOLOの参考資料まとめ(Deep Learning Tool)

Deep Learningでの認識に興味がありやす

時間があるときに論文よみたい

参考:

pjreddie.com

ChainerでYOLO - Qiita

Deep Learningをお手軽に試してみる : Darknetを使ってオブジェクト認識 - Qiita

Yoloで物体検出 - PukiWiki

Deep Learningによる一般物体検出アルゴリズムの紹介 - ABEJA Tech Blog

Darknetという人工知能が超簡単で凄いと聞いたので試したら大変なことになった - karaage. [からあげ]

Visual SLAM参考資料まとめ

Opencv SLAM

単眼カメラでの位置計測や自己位置推定に興味がありやす

  • Monocular Visual Odometry
  • Direct Sparse Odometry
  • LSD-SLAM
  • ORB-SLAM
  • PTAM

Visual SLAM

Monocular Visual Odometryがおもしろそう

http://yokoya.naist.jp/paper/datas/1407/SSII%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E4%BD%90%E8%97%A4.pdf

Good! OpenCVでカメラ画像から自己位置認識 (Visual Odometry)

Good! LSD-SLAMを使える環境を作るまでのあれこれ[後輩用] · GitHub

Good! 趣味なし奴のメモ帳: LSD-SLAMをROSで試す1-インストールとビルドとクイックスタート-

Good! Visual SLAM勉強日記

Good! 第2回cv勉強会@九州 LSD-SLAM

Avi Singh's blog

Avi Singh's blog

GitHub - marknabil/SFM-Visual-SLAM

GitHub - tum-vision/lsd_slam: LSD-SLAM

https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0ahUKEwiG4dq23PvSAhWETLwKHVyBA2oQFggzMAM&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Faction%3Dpages_view_main%26active_action%3Drepository_action_common_download%26item_id%3D162678%26item_no%3D1%26attribute_id%3D1%26file_no%3D1%26page_id%3D13%26block_id%3D8&usg=AFQjCNEtJDSvjWJX4ImmBzYlg01cD2acgw&sig2=mEPq8M9o-QiwXFDJz34CHg

単眼カメラで距離計測

Good! Python版OpenCVとカメラで簡易距離計測

http://www.ittc.co.jp/sproduct/photocalc/info/idea/idea.htm

単眼カメラで「距離」も測定できる新技術を東芝が開発。画像も同時取得、早期実用化目指す - Engadget 日本版

単眼カメラで撮影した1枚の画像から距離計測できる撮像技術 | 光と画像の技術月刊誌「OplusE」

SLAM ガジェット

https://crafty-as-a-fox.tumblr.com/post/139668302386/ubuntu-1404%E3%82%92beaglebone-black%E3%81%B8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

raspberry pi でモーターとかセンサとかを動かす(偉大な先人方の参考まとめ編)

raspberrypi Gadjet

モータまとめ

qiita.com

サーボモータ

Raspberry Pi 3でpythonを使いサーボモータを動かす - Qiita

Raspberry Piでサーボコントロール、Part1 上下・左右の2軸を動かす | ものづくりエクスペリメント

Raspberry Piで10個のサーボモーター動かしてみた: EeePCの軌跡

RaspberryPiでサーボモーター(SG90) | たくのこ Web

Raspberry Piでサーボモータ(SG90)を制御する|Buffer Overruns

サーボモーター(SG-90)を試す - Raspberry Pi 備忘録 / Mbedもあるよ!

「Raspberry Piで学ぶ電子工作」補足情報: (追加コンテンツ)サーボモーターをPCやスマートフォンから角度制御する

DCモータ

Raspberry Pi 3でpythonを使いモータードライバーを使いモータを制御する! - Qiita

Raspberry Pi 2でDCモーターを制御する - カイワレスタイル

DCモータを動かす(モータドライバ使用)(WebIOPi利用)

遠隔でRaspberryPi+DCモーターを制御してaitendoの名刺をクルクルさせる。 | curious4dev

Raspberry Pi 3 でモーター制御(USB電源) | manspace

カメラ 、openCV

Raspberry Pi で OpenCV(リベンジ) - Qiita

Raspberry Piで画像処理ライブラリ”OpenCV”使って”顔認識”試してみた: EeePCの軌跡

Raspberry PiでPython(とOpenCV)はじめました。 - なんでも作っちゃう、かも。

かわゆい

【Raspberry Pi】LEGOでPiカメラのケースを作ったよ

音声認識

Raspberry Pi でライザップミクを作る - karaage. [からあげ]

Juliusによる音声認識 | Raspberry Pi 研究室 | Feijoa.jp

raspberry pi 3で ROS Kinetic Kame を動かす

raspberrypi ROS

raspberry pi 3 に Ubuntu Mate 16.04を入れる

  • 以下からubuntu mateのimgをダウンロード ubuntu-mate.org

  • SDカードフォーマッターでイレースフォーマットを実行

https://www.sdcard.org/jp/downloads/formatter_4/

  • DD for Windowsでイメージを書きこむ

http://www.si-linux.co.jp/techinfo/index.php?DD%20for%20Windows

Ubuntu Mate 16.04にKinetic Kameを入れる

GUIで操作

Terminalで以下を実行

  • sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’
  • wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
  • sudo apt-get update
  • sudo apt-get install ros-kinetic-desktop-full (ここでとても時間がかかるのでお出かけ推奨)
  • sudo rosdep init
  • rosdep update
  • echo “source /opt/ros/kinetic/setup.bash” >> ~/.bashrc
  • source ~/.bashrc

これでインストールおわり〜

roscoreができるはず!

rosのチュートリアルが動くことは確認しました

参考:

How To install ROS Kinetic on Raspberry Pi 3 (Ubuntu Mate) | Into Robotics

その他設定

  • デフォルトでSSHオフなので、できるようにする
    • raspi-configで設定 ($ sudo raspi-config)
  • avahiと emacsのインストール
    • $ sudo apt install avahi-daemon emcas24 tmux

これで他の PCからsshで操作ができるよ〜

  • ssh ユーザー名@ホスト名.local

これから、このraspi3でrosの勉強をするぞー( ´ ▽ ` )ノ

rosのpocketsphinxの使い方

ROS 音声システム

インストール

  1. $ git clone https://github.com/mikeferguson/pocketsphinx.git
  2. $ sudo apt-get install gstreamer0.10-pocketsphinx
  3. $ sudo apt-get install gstreamer0.10-gconf

修正

  1. pocketsphinx/nodes/recognizer.py
  2. pocketsphinx/nodes/voice_cmd_vel.py

のpublisherに queue_size = 10 を追加

実行

Terminal1

  1. roslaunch pocketsphinx voice_cmd.launch

(or roslaunch pocketsphinx robocup.launch)

Terminal2

  1. rostopic echo /recognizer/output

を確認。以下の言葉を聞き取ることができる。

forward
left
right
back
backward
stop
move forward
move right
move left
move back
move backward
halt
half speed
full speed

rosで3rdpartyのコードをインストールする時

ROS Linux

rosのmkを追いかけてみる

/opt/ros/indigo/share/mk/download_unpack_build.mk

md5sumファイルがあれば

$(ROS_ROOT)/core/rosbuild/bin/download_checkmd5.py $(TARBALL_URL) $(TARBALL)

を実行

/opt/ros/indigo/share/ros/core/rosbuild/bin/download_checkmd5.py

  # Create intermediate directories as necessary, #2970
  d = os.path.dirname(dest)
  if len(d) and not os.path.exists(d):
    os.makedirs(d)

  fresh = False
  if not os.path.exists(dest):
    sys.stdout.write('[rosbuild] Downloading %s to %s...'%(uri, dest))
    sys.stdout.flush()
    urllib.urlretrieve(uri, dest)
    sys.stdout.write('Done\n')
    fresh = True

  if md5sum:
    m = hashlib.md5(open(dest).read())
    d = m.hexdigest()

    print('[rosbuild] Checking md5sum on %s'%(dest))
  
    if d != md5sum:
      if not fresh:
        print('[rosbuild] WARNING: md5sum mismatch (%s != %s); re-downloading file %s' % (d, md5sum, dest))
        os.remove(dest)

        # Try one more time
        urllib.urlretrieve(uri, dest)
        m = hashlib.md5(open(dest).read())
        d = m.hexdigest()
    
      if d != md5sum:
        print('[rosbuild] ERROR: md5sum mismatch (%s != %s) on %s; aborting' % (d, md5sum, dest))
        return 1

  return 0     

目的のファイルが無かったり、ハッシュ値が異なっていたらURLのファイルを取得

  • os.path.dirname

pathのディレクトリ名を返す

  • urllib.urlretrieve(uri, dest)

uriのリソースを取得

  • hashlib.md5(open(dest).read()).hexdigest()

ハッシュ値を取得

(makefile中のincludeはコマンド?)

参考:

mk - ROS Wiki

「ハッシュ」ってどんな意味? - Qiita

ファイルが一致することを確認する - いますぐ実践! Linuxシステム管理 / Vol.100

ダウンロードページの"xxx.md5"というファイルは何ですか? | SUZAKUサイト

シェルスクリプトでファイル存在確認 - fantasista_ikの日記

[開発]GNU makeのMakefileに、シェルスクリプトを自然に書くたった一つの方法 - ヒルズで働く@robarioの技ログ

GNU make 日本語訳(Coop編) - Makefileの条件分岐部分