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

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

物体追跡をやってみる(ピンクのボールを追いかける)

やりたいこと:ピンクボールの追跡 OpenCV-Python tutorial OpenCV-Pythonチュートリアル — OpenCV-Python Tutorials 1 documentation OpenCVでのHSVの扱い OpenCVでのHSV色空間lower,upperの取り扱い - Qiita ピンクの色相の検出 lightsalmon : 255,160,167…

機械学習のお勉強(ベイズ推定)

パラメトリックモデルの3つのステップ パラメータを含むモデル(数式)を設定する パラメータを評価する 最良の評価を与えるパラメータを決定する ここで、2.においてパラメータを評価する基準として大きく2つある 1つは誤差を定義して誤差を最小にするパラ…

機械学習のお勉強(特徴量)

TBD Haar-Like 物体の局所的な明暗差の組み合わせにより、画像を判別する LBP(Local Binary Pattern) 物体の局所的な輝度の分布の組み合わせにより、画像を判別する HOG(Histogram of Oriented Gradients) 物体の局所的な輝度の勾配方向の分布の組み合わ…

機械学習のお勉強(最小二乗法、最尤推定法、パーセプトロン)

最小二乗法 ex: 観測値と真値の二乗誤差を最小にするようにn次多項式を解く。 データセットがn以上あると解析的に平方根平均二乗誤差が0の多項式を導くことができる。 平方根平均二乗誤差:解いて求めた多項式から推定する値とデータセットとの値が平均的に…

ネットワークのお勉強その2

SSIDとは Service Set IDentifier! SSIDとは、無線LANのアクセスポイントを識別するための名前のこと。 参考: SSIDとは - IT用語辞典 Weblio辞書 無線LANルーターのSSIDとは?-ELECOM WEB SITE! アクセスポイントとは 「アクセスポイント」は、Wi-Fiの通信…

keras2とchainerの使い方をCNNでくらべてみる

目的:keras2とchainerの使い方の違いを知る まとめ: keras2はmodelの最初の層以外の入力は記述しなくても良い。バックエンドがtheanoとtensorflowで入力の配列が異なる。 chainerはmodelの層追加時、入力と出力の数を記入。入力でNoneと記述すると自動的に…

c++のお勉強~その2~

cpp

一歩ずつ! 型・インスタンス・オブジェクト 構造体は型、型を使って作られた変数はインスタンス。特に、構造体は意味のある情報の塊なので、構造体変数のことをオブジェクトということがある。 アクセスの仕方:①オブジェクト.メンバ ②オブジェクトのポイン…

分類のお勉強

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…

オブジェクト指向プログラミング(OOP)のお勉強

cpp

c++のコンパイルの仕方 構造化言語では解決できない2つの問題 OOPの優れた3つの仕組み クラスとは クラスの効能1:まとめる クラスの効能2:隠す クラスの効能3:たくさん作る インスタンス変数、グローバル変数、ローカル変数 インスタンス変数 ポリモーフィ…

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

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

tmuxの設定をいじっていみる

設定方法 .tmux.confに設定を記入 設定が反映されない時 tmuxのプロセスをkillしてから立ち上げる 設定内容 tmux v2.1~ :マウスの設定変わっている shift + 右クリック tmux v2.1からmouse関連の設定が変わった - Qiita tmuxチートシート - Qiita tmuxの個…

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 kinect のdepth imageは Data published on /camera/depth/image_raw is the depth in millimeters as a 16 bit unsigned integer. のようにパブされている。 [PARTLY UNSOLVED] Raw Kinect Depth Data - ROS Answers: Open Source Q&A Forum グレ…

機械学習のお勉強(ChainerCV)

ChainerCV↓ コード GitHub - chainer/chainercv: ChainerCV: a Library for Computer Vision in Deep Learning ドキュメント ChainerCV — ChainerCV 0.2.1 documentation Detection Models Faster R-CNN Single Shot Multibox Detector (SSD) Semantic Segme…

機械学習のお勉強(SVM,ニューラルネット、CNN、FCN,YOLO,SegNet etc ...)~参考まとめ~

SVM NN CNN AlexNet VGG FCN YOLO SSD SegNet 3D-CNN chainer sample Fine-tuning インデックスカラー 画像のセグメンテーション keras2とchainerが使いやすそう SVM SVM、ニューラルネットなどに共通する分類問題における考え方 - HELLO CYBERNETICS http:/…

RGBDデータセットのお勉強

参考:List of RGBD datasets INDOOR NYU Dataset v1 ☆ NYU Dataset v2 ☆ SUN 3D ☆ SUN RGB-D ☆ ViDRILO: The Visual and Depth Robot Indoor Localization with Objects information dataset ☆ SceneNN: A Scene Meshes Dataset with aNNotations ☆ Stanfor…

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…

Deep learningの論文まとめサイト&キャッチアップ方法

論文まとめ aonotas.hateblo.jp 2016年のディープラーニング論文100選 - Qiita DeepLearning研究 2016年のまとめ - Qiita Deep Learningの理論的論文リスト - Obey Your MATHEMATICS. わかりやすいブログ Twitter社が発表した超解像ネットワークをchainerで…

エッジ検出のお勉強(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…

テストを学ぼう(3)!~テストダブル~

理想的なユニットテストでは、依存するすべてのシステムを利用して行う。しかし、依存する本物のオブジェクトを常に使用できるとは限らない。 こんな時、リファクタリングをしたり、仮のオブジェクトを用いてテストを行うことができる。 テスタビリティ リフ…

ROSrviz/rqtのお勉強

ROS

rviz $ rosrun rviz rviz 左のaddからいろいろ追加してみよう rqt 素のrqt $ rqt rqt_plot $ rqt_plot topic指定 $ rqt_plot /turtle1/cmd_vel/linear/x rqt_image_view $ rosrun uvc_camera uvc_camera_node $ rqt そして Plugins->Visualization->ImageVie…

ROStfのお勉強

ROS

TFコマンド フレームツリーグラフ $ rosrun tf view_frames $ evince frames.pdf フレーム関係 $ roslaunch turtle_tf turtle_tf_demo.launch $ rosrun tf tf_echo world turtle1 At time 1496036356.439 - Translation: [5.544, 5.544, 0.000] - Rotation: …

ROSプラグインのお勉強

ROS

プラグインプログラムの作成 プラグインをエクスポート プラグインの登録 プラグインの記述 プラグインライブラリの構築 プラグインを利用する 実行 プラグインプログラムの作成 ベースプラグインクラス プラグインクラス で構成される プラグインをエクスポ…

ROSアクションのお勉強

ROS

rosアクションの復習 アクションの作成 型の定義 設定 actionの実装例 アクションの作成 型の定義 $ roscd sample $ mkdir action $ cd action $ touch sample.action sample.actionの中身↓ uint16[] freqs --- bool finished --- uint32 steps 上からGoal,R…

ROSメッセージのお勉強

ROS

rosメッセージの復習 メッセージコマンド メッセージファイルの作成 メッセージコマンド すべてのメッセージを表示 $ rosmsg list 指定したメッセージの型を表示 $ rosmsg show geometry_msgs/Twist geometry_msgs/Vector3 linear float64 x float64 y float…

ROSランチのお勉強

ROS

rosランチの復習 node include param arg remap,group node <launch> <node pkg="turtlesim" name="sim" type="turtlesim_node" output="screen" required="true" /> </launch> include 他のランチファイルの立ち上げる時 <launch> <include file="$(find beginner_tutorials)/launch/turtlemimic.launch" /> </launch> param <launch> </launch>

ROSパラムのお勉強

ROS

rosパラムの復習 利用可能なパラメータの表示 list get set delete launch 利用可能なパラメータの表示 set : パラメータを設定する get : パラメータを取得する load : ファイルからパラメータを取り込む dump : ファイルにパラメータを格納する delete : …

ROSサービスのお勉強

ROS

rosサービスの復習 全サービスを調べる あるノードが提供してるサービスを調べる あるサービスを提供するnodeを探したいとき サービスの情報を調べる サービスの利用 サービスの作成 サービスのmsgの作成 サービスサーバーの作成 サービスクライアントの作成…

テストを学ぼう(2)!~スローテスト問題~

スローテスト問題 スローテスト問題とは? テストの実行に時間がかかること ex: 全ユニットテストの実行に10分以上かかる etc… 対策 実行時間の短縮 実行環境の強化 並列で実行する 実行するものを絞り込む 実行時間の短縮方法 テストデータの共有化(*) モッ…