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

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

Python

MobileNetV2のお勉強

やりたいこと 計算処理が軽いDNNの構築。低スペックのPCでもガンガン認識を回したい。 論文 https://arxiv.org/abs/1704.04861 [1801.04381] MobileNetV2: Inverted Residuals and Linear Bottlenecks MobileNetsの理解 通常のCNNではチャンネル間の特徴・チ…

主成分分析のお勉強

やりたいこと 三次元点群に最もフィットする主軸を導出したい! 教科書 主成分分析の典型的な例題 点群の主軸を求める - 理数アラカルト - http://www.sist.ac.jp/~kanakubo/research/statistic/shuseibun_bunseki.html 主成分分析を使ってバウンティボックス…

PCLを使って遊んでみる

やりたいこと 点群情報の処理をうまく扱えるようになりたい 教科書 Documentation - Point Cloud Library (PCL) Point Cloud Dataの作成 Documentation - Point Cloud Library (PCL) 実行手順(以下のスクリプトを同じ階層に準備した前提) mkdir build cd b…

座標変換のお勉強

やりたいこと ロボットの3次元座標の考え方を理解して、制御に役立てる ROSのtfの理解 座標変換教科書 座標変換 <- すごくわかりやすい! 第10回目 http://www.wakayama-u.ac.jp/~tokoi/lecture/gg/ggbook03.pdf tf教科書 tf (Python) — tf 0.1.0 documentat…

ROS x Depthセンサで遊んでみる

やりたいこと Depthセンサで取得したデータで遊んでみる xtionやkinectで使えるros package: rgbd_launch - ROS Wiki 今回はsoftkineticを用いる 設定 robonchu.hatenablog.com RGBDの情報を使って亀を制御してみる ピンクと黄色のボールで亀を制御 ピンクの…

Oepn3Dのお勉強(三回目)

やりたいこと Depthセンサで取得したデータをOpen3Dで自由自在に操りたい 教科書 Open3D: A Modern Library for 3D Data Processing — Open3D 0.1 dev documentation Colored point cloud registration Point to Point ICPでは幾何的な平面は揃うが、平面の…

Open3Dのお勉強(二回目)

やりたいこと Depthセンサで取得したデータをOpen3Dで自由自在に操りたい 教科書 Open3D: A Modern Library for 3D Data Processing — Open3D 0.1 dev documentation Rgbd Odometry [Park2017] : Park, Q.-Y. Zhou, and V. Koltun, Colored Point Cloud Regi…

Open3Dのお勉強(一回目)

やりたいこと Depthセンサで取得したデータをOpen3Dで自由自在に操りたい Open3D Open3Dまじでイケてる! Intelさんありがとうございまぁぁす!! 教科書 Open3D: A Modern Library for 3D Data Processing — Open3D 0.1 dev documentation インストール 以下、…

シミュレーターを作ってみる

やりたいこと 簡単な機構のロボットシミュレータをつくってみる モデル ls 順運動学を解いてみる # -*- coding: utf-8 -*- import numpy as np from numpy import sin,cos import matplotlib.pyplot as plt def fk(l1, l2, l3, th1, th2): x2 = l2 * cos(th2…

snowboyで遊んでみる

やりたいこと Hey , SiriやOK, GoogleのようなHotWordを変更して、音声認識を行いたい snowboy 概要 : Snowboy Hotword Detection - YouTube Git : snowboy/demo.py at master · Kitt-AI/snowboy · GitHub Document : Snowboy, a Customizable Hotword Dete…

Google AIY Voice Kitで遊んでみる

やりたいこと 音声でサーボモータやいろいろなデバイスを操作する 設定 ハード: https://yuki-no-yabo.com/how-to-make-google-aiy-voice-kit/ ソフト: https://yuki-no-yabo.com/software-install-for-aiy-voice-kit/ デモ 【Google AIY Voice Kit】Googl…

virtualenvの使い方・仕組み

やりたいこと pythonのいろんなライブラリを他の環境を汚さず試したい 使い方 インストールと起動 pip install virtualenv virtualenv my_env source myenv/bin/activate 環境の保存 pip freeze 無効化と削除 deactivate rm -rf myenv/ ros x vertualenv pip…

機械学習のお勉強(多層パーセプトロン)

人口知能で人の仕事は奪われるの? My answer is ... the end of this blog ↓ 教科書 GitHub - scikit-learn/scikit-learn: scikit-learn: machine learning in Python 単層ニューラルネットワーク(ADALINE)の復習 重みの更新式 , コスト関数(誤差平方和)J(w…

機械学習のお勉強(Webアプリケーション)

教科書 GitHub - rasbt/python-machine-learning-book: The "Python Machine Learning (1st edition)" book code repository and info resource robonchu.hatenablog.com の内容を実行している前提 例:http://raschkas.pythonanywhere.com/results 学習済み…

機械学習のお勉強(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を」という時代の幕開け - 六本木で…