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

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

Python

機械学習のお勉強(BoW)

教科書 GitHub - rasbt/python-machine-learning-book: The "Python Machine Learning (1st edition)" book code repository and info resource 映画のデータセットの取得 http://ai.stanford.edu/~amaas/data/sentiment/ import pyprind import pandas as p…

threadのお勉強(with python)

ROS x thread x pythonのコードを読みながらthreadの理解、実装方法を学ぶ python並列化 threading.Thread multiprocessing.Process Pythonのマルチスレッド処理:threading, multiprocessing | UX MILK python x threadについて Pythonのthreading.Threadと…

機械学習のお勉強(単層ニューラルネットワーク)

人工ニューロン 神経細胞を2値処理を行う単純なゲートとして表現。 z = w0 * x0 + w1 * x1 + .... + wm * xm and phi(z)={ 1 (z>=0) or -1 (z<0) これは脳内の一つのニューロンの働き(発火するかしないか)を模倣している。 パーセプトロンの学習規則 重み…

機械学習のお勉強(DeepPose, OpenPose)

やること pythonでのcaffe環境構築 OpenPoseを動かしてみる Caffe Install 設定(GPU) 【Caffe】はじめてCaffeをmakeするまでOn Ubuntu16.04 - 緑茶思考ブログ Ubuntu 14.04にCaffeをインストール(GPU編) - Qiita Installing Caffe on Ubuntu (CPU-ONLY) - Ch…

chainerで動かしたいものリスト

動かしながら理解を深めたい ひとつずつ動かしていく〜(TBD) サンプル集 Chainerのサンプルコードを集めてみた(メモ) - あおのたすのブログ くそ初心者がchainerを理解してちょっといじれるようになるために見るべき5つのサイト - MATHGRAM 2D-CNN Chai…

クラスタリング(k-means)のお勉強

k-meansでクラスタリング(教師なし) import numpy as np from sklearn.cluster import KMeans # size 量的データ features = np.array([ [20, 95, 190], [52, 103, 103], [50, 70, 280], [65, 65, 210], [84, 84, 96], [20, 50, 140], [28, 49, 176], [40,…

PyQtのお勉強

MyEnigmaさんの以下の記事が非常にわかりやすい↓ myenigma.hatenablog.com 環境設定 sudo apt-get install python-qt4 解説内容 Windowを作る ステータスバーに文字などを表示する メニューバーを作る ツールバーを作る 一行のフォームに文字や数値を表示す…

分類のお勉強

sklearnを用いた2クラス分類 画像データの2クラス分類 sklearnを用いた2クラス分類 #!/usr/bin/env python # coding: utf-8 import numpy as np from sklearn import datasets from sklearn import cross_validation from sklearn import metrics # DataSet…

ROSのスクリプト構成を考えてみる

C++編 pattern1 package 構成: func.h , func.cpp, func_node.cpp func.h include <必要なファイル> namespaceをパッケージ名で作成 Funcクラスを作成 コンストラクタとデストラクタの定義(Public) pubやsub,callbackを定義(Private) その他、必要な変数や…

kerasを動かしてみる~その2:CNN~

tensorflowをバックエンドで動かす .keras/keras.jsonを以下のように書き換え { "image_dim_ordering": "tf", "epsilon": 1e-07, "floatx": "float32", "backend": "tensorflow" } GPUで使う pip install tensorflow-gpu (TBD) CNNのサンプル GitHub - fchol…

ROS message_filtersのお勉強

複数のトピックの時間の同期を取りたいときなどに使用する。 Time Synchronizer ApproximateTime Policy Time Synchronizer imageとcamera_infoの同期をとっている The TimeSynchronizer filter synchronizes incoming channels by the timestamps contained…

フィルタのお勉強

Finite Impulse Resposeフィルタ(移動平均) Infinite Impulse Responseフィルタ 双2次フィルタ 逆フーリエ&ローパス カルマンフィルタ すごくわかりやすい資料 Finite Impulse Resposeフィルタ(移動平均) y[n] = 1/2 * (x[n] + x[n-1]) Infinite Impuls…

エッジ検出のお勉強(OpenCV+python)

Sobel Edge Detection Laplacian Edge Detection Canny Edge Detection Sobel Edge Detection import cv2 image = cv2.imread('iron_man.png') gray_image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) gray_sobel_x = cv2.Sobel(gray_image,cv2.CV_32F,1,0) c…

ffmpegとpythonで動画をいじろう

ffmpegのインストール 動画の変換 動画の結合 動画の倍速方法 pythonでフォルダ内の指定ファイルをの取り込み pythonでコマンド実行するには フォルダ内の.MOVファイルをmp4ファイルに変換して、結合するdamedameコード ffmpegのインストール sudo apt-get i…

Numpy / pandasのお勉強

numpy 配列も@で行列のように計算できる。python3.5以降。 In [7]: import numpy as np In [8]: A = np.array([[1,2],[3,4]]) In [9]: B = np.array([[5,6],[7,8]]) In [10]: C = A @ B @ A.T In [11]: C Out[11]: array([[ 63, 145], [143, 329]]) 以下は同…

kerasを動かしてみる~その1~

tensorflowのインストール Kerasのインストール Kerasの実行 TJOさんの記事を参考にKerasを動かして見ました。感謝です。 参考: KerasをTensorFlowバックエンドで試してみた:「もっと多くの人に機械学習とDeep Learningを」という時代の幕開け - 六本木で…

pythonのテストを書いてみる2

数値微分 プロダクションコード テストコード 文字の変換 プロダクションコード テストコード カウント プロダクションコード テストコード 偶数判定 プロダクションコード テストコード 物品管理 プロダクションコード テストコード スレッド プロダクショ…

テストを学ぼう (1) ! ~ユニットテストについて~

ユニットテストってなんでするの? 継続的テストとは テスト駆動開発とは ビヘイビア駆動開発とは ユニットテストを書いてみよう プロダクトコード テストコード 実行方法 実行結果 今後勉強したいツール ユニットテストってなんでするの? 書いたコードがち…

機械学習のお勉強(DeepLearning from 0)

参考図書 Deep Learning パーセプトロン 簡単な実装 重みとバイアスの導入 多層パーセプトロン ニューラルネットワーク 活性化関数 出力層の活性化関数 3層のニューラルネットワーク バッチ処理 学習 損失関数 二乗和誤差 交差エントロピー誤差 ミニバッチ学…

raspberry pi 3でDCモータを2つ動かす(TA7291Pを使う)

raspi3でDCモーターを2つ動かす 準備 raspi3 dc motor 2つ TA7291P 2つ 電池 ブレッドボード ピン etc … ハードセットアップ 配線の仕方は以下参考。こちらはraspi 12ピンをpwmに設定。さらにraspi 16 18 32 ピンを同様に使用。32にpwmをセット。 参考:↓わ…

raspberry pi 3でサーボモータをいっぱい動かす(PCA9685を使う)

raspi3でサーボモータを動かす いずれアームを作りたい サーボブラケットをどう作るか… 準備するもの raspi3 servo motor PCA9685 電池 ブレットボード ピン etc… ハードセットアップ GND<->GND,5V<->Vcc, SCL<->SCL, SDA<->SDAをつなぐ。左がraspi右がPCA96…

スレッドについて

プロセスとスレッドの違い プロセス:メモリ領域が独立しているので安全、しかし切り替えに処理が多い スレッド:切り替えのコストは低いが、干渉しないように考慮する必要がある 参考: イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編…

デバッガのお勉強

rosのデバッガ、IDE rosでもpdbが使える? 【ToDo】 rosでeclipseやpdbを使ってみる 参考: IDEs - ROS Wiki debug ros node python - ROS Answers: Open Source Q&A Forum How do I use eclipse with python (pydev) - ROS Answers: Open Source Q&A Forum …

mockテストのお勉強

mock.return_value 返り値を指定できる mock.called mock.call_count 何回呼ばれたか確認できる mock.call_args mock.call_args_list 引数のリストがわかる mock.side_effect いろんなものが指定できる 例えば(イテレート) side_effect = chain([1,2,3,4])…

rospyのお勉強

rospy.get_param パラメータサーバーから値をとってくる rospy.get_param(param_name, default) 参考: rospy/Overview/Parameter Server - ROS Wiki rospy.Time rate,sleep,durationなどよく使うものが多い rospy.Timer(period, callback, oneshot=False) p…

pythonのお勉強

with文 ラムダ式 引数 可変引数 イテレータ ジェネレータ デコレータ スコープ クロージャ クラス継承 クラス属性とインスタンス属性 スタティックメソッド クラスメソッド プライベートメンバ Linuxコマンドを呼ぶ 入出力 csv pickle ソケット通信 スレッド…

pythonのテストを書いてみる

unittest Robot and Animal roboani.py class Robot: def get_name(self): return "robot" def get_legs(self): return 2 class Animal: def get_name(self): return "animal" def get_legs(self): return 4 def calc_roboani_legs(robot,animal,heads,legs)…

BeautifulSoupの使い方

BeautifulSoupを使ったスクレイピング from BeautifulSoup import BeautifulSoup import re doc = ['<html><head><title>Page title</title></head>', '<body><p id="firstpara" align="center">This is paragraph <b>one</b>.', '<p id="secondpara" align="blah">This is paragraph <b>two</b>.', '</html>'] soup = BeautifulSoup('…