raspberry pi 3でサーボモータをいっぱい動かす(PCA9685を使う)
raspi3でサーボモータを動かす
いずれアームを作りたい
サーボブラケットをどう作るか…
準備するもの
- raspi3
- servo motor
- PCA9685
- 電池
- ブレットボード
- ピン etc…
ハードセットアップ
- GND<->GND,5V<->Vcc, SCL<->SCL, SDA<->SDAをつなぐ。左がraspi右がPCA9685。
- PCA9685にサーボをセット(0~16個)
- PCA9685に電源をセット(試したのは単三電池4個=6Vくらい)
ピン配参考
Raspberry Pi2 & 3 Pin Mappings | Windows IoT
ソフトセットアップ
sudo raspi-config
でI2C設定をONに
次に
sudo apt-get install git build-essential python-dev cd ~ git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git cd Adafruit_Python_PCA9685 sudo python setup.py install
でソフトの準備完了
あとは、サーボをPCA9685の0にセットして↓
cd examples python simpletest.py
でサーボが動きます〜
たくさん動かしたいときは simpletest.pyのpwm.set_pwm(0, 0, servo_xxx)のひとつめの0をPCA9685にさしたサーボの番号に指定すればOK
参考:
次はDCモータとかカメラをつけて遊びたい
OpenCVちゃんと動くかな…
YOLOの参考資料まとめ(Deep Learning Tool)
Deep Learningでの認識に興味がありやす
時間があるときに論文よみたい
参考:
YOLOv2/YOLOv2.md at master · leetenki/YOLOv2 · GitHub
GitHub - leetenki/YOLOv2: YOLOv2のchainerの再現実装です(darknetのchainerローダと、完全なchainer上での訓練コードを含みます)
ペンパイナッポーとアッポーペンを識別する(ChainerでYOLO ver2) - Qiita
Deep Learningをお手軽に試してみる : Darknetを使ってオブジェクト認識 - Qiita
Visual SLAM参考資料まとめ
単眼カメラでの位置計測や自己位置推定に興味がありやす
- Monocular Visual Odometry
- Direct Sparse Odometry
- LSD-SLAM
- ORB-SLAM
- PTAM
Visual SLAM
Monocular Visual Odometryがおもしろそう
Good! OpenCVでカメラ画像から自己位置認識 (Visual Odometry)
Good! LSD-SLAMを使える環境を作るまでのあれこれ[後輩用] · GitHub
Good! 趣味なし奴のメモ帳: LSD-SLAMをROSで試す1-インストールとビルドとクイックスタート-
Good! Visual SLAM勉強日記
Good! 第2回cv勉強会@九州 LSD-SLAM
GitHub - marknabil/SFM-Visual-SLAM
GitHub - tum-vision/lsd_slam: LSD-SLAM
単眼カメラで距離計測
Good! Python版OpenCVとカメラで簡易距離計測
http://www.ittc.co.jp/sproduct/photocalc/info/idea/idea.htm
単眼カメラで「距離」も測定できる新技術を東芝が開発。画像も同時取得、早期実用化目指す - Engadget 日本版
単眼カメラで撮影した1枚の画像から距離計測できる撮像技術 | 光と画像の技術月刊誌「OplusE」
SLAM ガジェット
raspberry pi でモーターとかセンサとかを動かす(偉大な先人方の参考まとめ編)
モータまとめ
サーボモータ
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 3で ROS Kinetic Kame を動かす
raspberry pi 3 に Ubuntu Mate 16.04を入れる
以下からubuntu mateのimgをダウンロード
Etcherをインストールし、上記イメージを選択してSDカードに書き込み
別の書き込み手順
SDカードフォーマッターでイレースフォーマットを実行
DD for Windowsでイメージを書きこむ
http://www.si-linux.co.jp/techinfo/index.php?DD%20for%20Windows
Ubuntu Mate 16.04にKinetic Kameを入れる
GUIで操作
- System -> Administration -> Software & Updatesへ
SSHの設定
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の勉強をするぞー( ´ ▽ ` )ノ
raspi x rosメモ
いつものまにかROSWIKIにraspiでのインストール方法書いてる。最高。
raspi3用 Ubuntu16 + rosのイメージ
raspi zerp用 rosのイメージ
参考
Installing ROS Indigo on the Raspberry Pi | Learning Robotics Using ROS
ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(1) 開発準備編 (1/6):CodeZine(コードジン)
rosのpocketsphinxの使い方
インストール
- $ git clone https://github.com/mikeferguson/pocketsphinx.git
- $ sudo apt-get install gstreamer0.10-pocketsphinx
- $ sudo apt-get install gstreamer0.10-gconf
修正
- pocketsphinx/nodes/recognizer.py
- pocketsphinx/nodes/voice_cmd_vel.py
のpublisherに queue_size = 10 を追加
実行
Terminal1
- roslaunch pocketsphinx voice_cmd.launch
(or roslaunch pocketsphinx robocup.launch)
Terminal2
- 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の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はコマンド?)
参考:
ファイルが一致することを確認する - いますぐ実践! Linuxシステム管理 / Vol.100
ダウンロードページの"xxx.md5"というファイルは何ですか? | SUZAKUサイト
シェルスクリプトでファイル存在確認 - fantasista_ikの日記
[開発]GNU makeのMakefileに、シェルスクリプトを自然に書くたった一つの方法 - ヒルズで働く@robarioの技ログ