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

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

ネットワークのお勉強その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してから立ち上げる 設定内容 ############## # マウス設定 # ############## # 画面ドラッグ時にコピーモードにする set-option -g mode-mouse on # マウスでペインを選択できる…

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

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…

フィルタのお勉強

Infinite Impulse Responseフィルタ 双2次フィルタ すごくわかりやすい資料 Infinite Impulse Responseフィルタ 例:ローパスフィルタ y[n] = r*x[n] + (1-r)*y[n-1] yが出力、xが入力、rは係数。 参考:ディジタル制御の基礎 双2次フィルタ 以下の式の係数…

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… 対策 実行時間の短縮 実行環境の強化 並列で実行する 実行するものを絞り込む 実行時間の短縮方法 テストデータの共有化(*) モッ…

Deep Learningの環境構築(Ubuntu14.04+GTX 950M+CUDA+cuDNN)

これから過酷な戦いが始まる… ノートパソコンにDeep Learningの環境をつくってみる. PC環境 目標 Nvidia Driver 悪名高き?ドライバnouveau Nvidia Driverのインストール nvidia-smiについて CUDA CUDA対応GPU CUDAのドライバ CUDAのインストール方法 CUDA環…

Ubuntuのお勉強1~フォルダ構成~

問題が起こった時にログから問題を特定できるようになりたい /sys、/tmp、/usr、/varについて /var/logについて /var/log/syslogについて /var/log/auth.log 参考 /sys、/tmp、/usr、/varについて 参考: Ubuntu システムログ その1 - /var/log以下に生成さ…

人力ヘリコプターについて

大好きな空飛ぶ自転車のお話 シコルスキー賞 人力ヘリコプター ダビンチ3 YURI-I GameraⅡ Atlas シコルスキー賞 アメリカ・ヘリコプター協会が1980年に設立した賞で賞金2500万円。 受賞基準が以下の三点 人力で60秒間 10フィート(約3メートル)以上の高度を…

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

IPアドレス ネットマスク ゲートウェイ 例 IPアドレス 192.168.1.128 以下の2つから構成されている ネットワーク・アドレス(192.168.1.) ホスト・アドレス(128) ネットワーク・アドレスは、ネットワーク全体でお互いのネットワークを識別するために使われ、…

ffmpegとpythonで動画をいじろう

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

rosを使ってセンサ取得データの保存

ROS

rosを使ってセンサ取得データを保存する。 環境 os: ubuntu16.04 ros: kinetic usb_cam編 インストール usb_camのインストール 参考:づーまー日記: 【備忘録】 ROS Kinetic でusb-camのインストール方法&使い方 データの表示 ターミナル1 $ roscore ター…

環境構築 ~ Docker / Jupyter のインストール ~

Jupyter Docker Jupyter 参考: Jupyter Notebook(IPython)のインストールと始め方 - TASK NOTES Docker 参考: Ubuntu 16.04 LTS Dockerをインストール - Qiita

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]]) 以下は同…

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

環境構築 ビルド方法(単体) ビルド方法(複数) デバッグツール gdbの使い方 ポインタ Sample1 Sample2 スマートポインタ 継承 参照引数の関数 関数の引数の種類 テンプレート イテレータ 別名 キャスト ビット演算 列挙型 静的変数 名前空間 コンテナ 例外 …

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

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

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

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

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

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

小型USBにubuntu16.04をいれてみる(macbookから起動できるように編)

myenigma.hatenablog.com MyEnigmaさんの記事に刺激を受け、小型USBにubuntu16.04を入れてみました。 手順は少し異なります。 準備 適当USB 4GB 小型USB 64GB↓ 安い!小さい! https://www.amazon.co.jp/SANDISK-USB3-0%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7…

Ubuntu14.04(CPU only)でSegNetを使ってみる

手順 caffe-segnetのダウンロード git clone https://github.com/alexgkendall/caffe-segnet.git 以下の手順でインストール Caffe | Installation: Ubuntu 以下の手順でMakeコンパイル CPU only の設定に変更 Caffe | Installation For CPU-only Caffe, unco…

reveal.js参考まとめ(Markdownでプレゼン資料作り)

参考 reveal.js – The HTML Presentation Framework Reveal.js、Markdown、Githubでスライドを作成する。 - Qiita reveal.js で markdown を使う(2015年3月版) - Qiita reveal.jsを使ってみる - Faster and Faster プレゼンもmarkdownでね!reveal.jsで資…

Deep Learningのお勉強その1

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

PyCharmの使い方

windowsでpythonの開発をするときとかに便利 ライブラリのインストール File -> Setting -> Project Interpreter の+ボタンで追加 簡単にインストールできる。numpyとか検索してワンクリックでインストール。 python2 or 3 の指定 File -> Setting -> Projec…

データセットの作り方参考まとめ

chainerのデータセットの作り方 LinearやCNN - Qiita 機械学習で用いる顔画像データセットの一作り方(1:WebAPIサービスを用いて候補画像取得) - Qiita 【pylearn2】自分のデータセットを使ってカンタンにGRBMしよう - CORDEA blog

機械学習の参考まとめ

機械学習 機械学習を知識ゼロから学ぶpdf - NAVER まとめ 機械学習はじめの一歩に役立つ記事のまとめ - Qiita Deep Learning Deep Learningによる一般物体検出アルゴリズムの紹介 - ABEJA Tech Blog CNN 定番のConvolutional Neural Networkをゼロから理解す…

Raspberry Pi Kame プロトタイプ Mark0

raspi-kame作成 これまでやってきたことを組み合わせて、raspberry pi kameを作りました↓ 【ハード】 raspberry pi 3 dcモーター×2 サーボモータ×1(16個まで拡張可) 超音波センサ カメラ 【ソフト】 ros : kinetic kame ちょっとした段差なら登ります〜 な…

raspberry pi 3 で超音波距離センサ(HC-SR04)を使う

raspberry pi 3で超音波センサを使ってみる ハード準備 配線は以下を参考 参考: Building a Raspberry Pi Motion Sensor with Realtime Alerts | PubNub 抵抗は1kΩと2kΩを使用 ソフト準備 Ultrasonic range detection with the Raspberry Pi | Knight of Pi…

他のPCへ向けてrosの指令を送る方法

ROS_MASTER_URIを変更する .bashrcに以下のように記載しておくと便利 alias raspi_robot_mode=‘export ROS_MASTER_URI=http://{IPアドレス}:11311 export PS1=“[\033[41;1;37m]<raspi_robo>[\033[0m]\w$ ”’ こうすることで、他PCでroscoreが立ち上がっていると、自PCで動</raspi_robo>…

ubuntu 16.04 mateのautologinの方法

起動したときにデスクトップ画面に自動ログインする設定 System -> Administration -> Users and Groups -> password をNot asked on loginに変更 /usr/share/lightdm/lightdm.conf.d/60-lightdm-gtk-greeter.confに以下を記載 autologin-user=pi (<- ユーザ…

プログラムを自動起動にする方法

PCを再起動した時にプログラムを自動起動する方法 sudo crontab -e でeditorを選択して、一番下に @reboot /home/user/test.sh > /home/user/test.txt を追加。ここで、最終行に空行をいれること。 test.sh #!/bin/sh echo "test!!!" これで再起動時にtest.t…