読者です 読者をやめる 読者になる 読者になる

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

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

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で資…

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…

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…

YOLOの参考資料まとめ(Deep Learning Tool)

Deep Learningでの認識に興味がありやす 時間があるときに論文よみたい 参考: pjreddie.com YOLOv2/YOLOv2.md at master · leetenki/YOLOv2 · GitHub GitHub - leetenki/YOLOv2: YOLOv2のchainerの再現実装です(darknetのchainerローダと、完全なchainer上…

Visual SLAM参考資料まとめ

単眼カメラでの位置計測や自己位置推定に興味がありやす Monocular Visual Odometry Direct Sparse Odometry LSD-SLAM ORB-SLAM PTAM Visual SLAM Monocular Visual Odometryがおもしろそう http://yokoya.naist.jp/paper/datas/1407/SSII%E3%83%81%E3%83%A5…

raspberry pi でモーターとかセンサとかを動かす(偉大な先人方の参考まとめ編)

モータまとめ qiita.com サーボモータ Raspberry Pi 3でpythonを使いサーボモータを動かす - Qiita Raspberry Piでサーボコントロール、Part1 上下・左右の2軸を動かす | ものづくりエクスペリメント Raspberry Piで10個のサーボモーター動かしてみた: EeePC…

raspberry pi 3で ROS Kinetic Kame を動かす

raspberry pi 3 に Ubuntu Mate 16.04を入れる 以下からubuntu mateのimgをダウンロード ubuntu-mate.org SDカードフォーマッターでイレースフォーマットを実行 https://www.sdcard.org/jp/downloads/formatter_4/ DD for Windowsでイメージを書きこむ http:…

Gitのお勉強

Git

commitを綺麗にする方法 rebase -i HEAD~~ 参考: liginc.co.jp

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.p…

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_check…

スレッドについて

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

rosのワークスペース

ROS

ワークスぺース 参考: catkin/package.xml - ROS Wiki package.xml 参考: ja/ROS/Tutorials/CreatingPackage - ROS Wiki catkin/package.xml - ROS Wiki ビルド 参考: ROS/Tutorials/BuildingPackages - ROS Wiki

rosのNamesに関して

ROS

名前の種類 base relative/name /global/name ~private/name 参考: ja/Names - ROS Wiki Names - ROS Wiki Namespace and Remapping - ROS Answers: Open Source Q&A Forum ROS Naming and Namespaces | NooTriX Remap topic名やparameter名を簡単に変更で…

デバッガのお勉強

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 …

Gitのお勉強

はまったことがあれば随時追加予定 とてもわかりやすい👇 参考: www.backlog.jp

rosのCMakeListsのお勉強

T・B・D install install(DIRECTORY launch/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch FILES_MATCHING PATTERN "*.launch" ) .launchだけをコピー install(DIRECTORY launch/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch PATTE…

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モジュールとパッケージ

参考: Python: モジュールとパッケージ - CUBE SUGAR CONTAINER Python: モジュールとパッケージ - CUBE SUGAR CONTAINER Python/setup.pyによるインストール - Glamenv-Septzen.net Python入門 - パッケージとモジュール [http://samurait.hatenablog.com/…

pythonのお勉強

引数 可変引数 *のときタプルになる >>> def func(*hoge): ... print hoge ... >>> func("1","2","3") ('1', '2', '3') **のとき辞書型になる >>> def func(**hoge): ... print hoge ... >>> func(a=1,b=2,c=3) {'a': 1, 'c': 3, 'b': 2} >>> イテレータ 参…

rosでテストを書いてみる

unittest CMakeLists.txt if(CATKIN_ENABLE_TESTING) find_package(rostest REQUIRED) add_rostest(test/mytest.test) endif() package.xml <test_depend>rostest</test_depend> <test_depend>python-nose</test_depend> ↑テストにnoseをつかう場合 mytest.test <launch> <node pkg="mypkg" type="mynode" name="mynode" /> </node></launch>

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('…

Emacsの使い方

一括インデント Mark set C-c > or C-c < 対話置換 M-% OK: y , NO: n , ALL: ! , EXIT: q 位置画面上・下 上. C-v 下. M-v 随時便利だと思うものを追記していきますヽ(´ー`)ノ 参考: EmacsでPythonソースコードのインデントを深くor浅くする技 | 三鷹台で…

音声認識の原理のお勉強

連続音声認識と一般的なパターン認識の違い 連続音声認識は特徴抽出部の出力がひとつのベクトルではなく、ベクトル系列になる 音素や単語を一つのクラスに対応付け 文はそれらの系列として表現 認識結果もクラスの系列となる 連続音声認識は特徴ベクトルの系…

makeの理解

makefile 例 all: install.hoge install.hoge: wget 〜 touch install.hoge 参考: トリビアなmakefile入門 shin.hateblo.jp automake ./configure;make;make installにはどんな意味がある? - ITmedia エンタープライズ Linuxコマンド集 - 【configure】Mak…

Linuxのお勉強

プロンプト [robonchu@localhost~]$ ユーザ名 ホスト名 コマンドラインの編集 コマンド 内容 Ctrl+b 1back Ctrl+f 1go Ctrl+a text first Ctrl+e text end Ctrl+h 1back delete Ctrl+k cut from text first to end Ctrl+u cut from text end to first Ctrl+y…

音声認識のいろいろ

N-gram N-gramモデルを利用したテキスト分析 ―インデックスページ― 第5回 N-gramのしくみ:検索エンジンを作る|gihyo.jp … 技術評論社 形態素解析 第6回 N-gramと形態素解析との比較:検索エンジンを作る|gihyo.jp … 技術評論社 Ngram(N-gram)とは何か & …

パラチュン用dynamic_reconfigureの使い方

ROS

dynamic_reconfigureの使い方 Tutorial.cfgファイルの作成 #!/usr/bin/env python PACKAGE = "dynamic_tutorials" # package name from dynamic_reconfigure.parameter_generator_catkin import * gen = ParameterGenerator() gen.add("int_param", int_t, 0…

catkin_make徹底理解

catkinワークスペース STEP1 ROS_PACKAGE_PATHの確認、設定 $ mkdir ~/test_catkin_ws/src $ cd ~/test_catkin_ws/src $ catkin_init_workspace ここで、~/test_catkin_ws/src にCMakeKist.txtが作成される STEP2 cd ~/test_catkin_ws catkin_make ここで、b…

ROSを勉強している方々のブログまとめ

ROS

お世話になっております。 大感謝。全部目を通したい。 rosとは 参考 ROSの概念 [ROSロボットプログラミング] ROSで使われる専門用語 - Qiita わかりやすいチュートリアル ROS Tutorials — ROS Tutorials 0.5.1 documentation ブログまとめ ros-robot.blogsp…

ロボットとお話しよう2(音声でラジコン操作)

robonchu.hatenablog.com の続き [Raspberry Pi]USBマイクと音声認識ソフトJuliusを使って音声認識を試す(2) : 工作と競馬 [Raspberry Pi]USBマイクと音声認識ソフトJuliusを使って音声認識を試す(3) ~ フルカラーLEDを音声で操作 ~ : 工作と競馬 をとても参…

rosとarduinoでラジコンをつくる(arduino+pcをxbeeでつなぐ)

Xbeeのセットアップ robonchu.hatenablog.com に追加で、baud rateを57600に変更。9600のままだとうまくいかなかった。 以下参照。 baud rate parameter in rosserial_python arduino - ROS Answers: Open Source Q&A Forum 手順 くるまにmotor shield付きar…

rosとarduinoでラジコンをつくる(pc側)

joy stickでコマンドを送り、arduinoにros経由で信号を送る pythonでjoy stickのコマンドを受け取り(sub)送る(pub)コードを書く 手順 ターミナル1 $ roscore ターミナル2 $ rosrun joy joy_node ターミナル3 以下のpythonコードを実行 $ python joy_twist.py…

rosとarduinoでラジコンをつくる(arduino側)

めちゃくちゃ手抜き笑 rosでcmd_velを受け取って(subscribe)、arduinoのモーターを動かす 準備 arduino motor shield dc motor 手順 以下からモーターシールドのライブラリインストール Library Install | Adafruit Motor Shield | Adafruit Learning System…

ロボットの認識をつくろう(Tensorflowをつかう)

物体認識をtensorflowを使って行う。 OTLさんが既にrosで動かしてくれていた↓ ROS勉強記録: rostensorflow (というには程遠いけど一応動く一般物体認識ROSノード)作ってみた

XbeeをつかってLet's遠隔操作

Xbeeの使い方 X-CTUのダウンロード X-CTUで親機、子機のPAN-ID(共通)とDH-Destination Address High、DL-Destination Address Low(お互い)を設定 以下を参考に通信テスト mag.switch-science.com

超簡易版ROS

OTLさん凄い これを使えば簡単にロボットがつくれる github.com 参考 ほかの記事も面白い ROS勉強記録: ROS勉強会@DMM.make AKIBA