カメラ画像をOpenCVで取得してJpegエンコードして、ZeroMQを通してネットワーク配信するプログラムサンプル
(メモ)
Windows10, Visual Studio2015環境で、openFrameworks9.3でofxZmq addonとOpenCV3.1を使用して高速に画像を配信するためのサンプルプログラムです。
ofxZmqにstd::vector
ofApp.h
#pragma once #include "ofMain.h" #include "opencv2/opencv.hpp" class ofxZmqSubscriber; class ofxZmqPublisher; class testApp : public ofBaseApp{ public: void setup(); void update(); void draw(); void keyPressed (int key); void keyReleased(int key); void mouseMoved(int x, int y ); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void gotMessage(ofMessage msg); ofxZmqSubscriber* subscriber; ofxZmqPublisher* publisher; cv::VideoCapture cap; cv::Mat frame; std::vector<unsigned char> send_buf; std::vector<int> params; string type; cv::Mat image; std::vector<unsigned char> recv_buf; };
ofApp.cpp
#include "testApp.h" #include "ofxZmq.h" #include "opencv2/opencv.hpp" #pragma comment(lib, "opencv_calib3d310.lib") #pragma comment(lib, "opencv_core310.lib") #pragma comment(lib, "opencv_features2d310.lib") #pragma comment(lib, "opencv_flann310.lib") #pragma comment(lib, "opencv_highgui310.lib") #pragma comment(lib, "opencv_imgcodecs310.lib") #pragma comment(lib, "opencv_imgproc310.lib") #pragma comment(lib, "opencv_ml310.lib") #pragma comment(lib, "opencv_objdetect310.lib") #pragma comment(lib, "opencv_photo310.lib") #pragma comment(lib, "opencv_shape310.lib") #pragma comment(lib, "opencv_stitching310.lib") #pragma comment(lib, "opencv_superres310.lib") #pragma comment(lib, "opencv_ts310.lib") #pragma comment(lib, "opencv_video310.lib") #pragma comment(lib, "opencv_videoio310.lib") #pragma comment(lib, "opencv_videostab310.lib") //-------------------------------------------------------------- void testApp::setup() { ofSetFrameRate(30); cap.open(0); if (cap.isOpened()) { cout << "Camera is ready!" << endl; cap.set(cv::CAP_PROP_FRAME_WIDTH, 1280); cap.set(cv::CAP_PROP_FRAME_HEIGHT, 720); cap.set(cv::CAP_PROP_FPS, 30); type = ".jpg"; //type = ".webp"; if (type == ".jpg") { params.push_back(CV_IMWRITE_JPEG_QUALITY); params.push_back(100); params.push_back(CV_IMWRITE_JPEG_OPTIMIZE); params.push_back(0); params.push_back(CV_IMWRITE_JPEG_PROGRESSIVE); params.push_back(0); } else if (type == ".webp") { params.push_back(CV_IMWRITE_WEBP_QUALITY); params.push_back(100); } // start server publisher = new ofxZmqPublisher(); publisher->setHighWaterMark(1); publisher->bind("tcp://*:9999"); } // start client subscriber = new ofxZmqSubscriber(); subscriber->setHighWaterMark(1); subscriber->connect("tcp://localhost:9999"); } //-------------------------------------------------------------- void testApp::update() { while (subscriber->hasWaitingMessage()) { subscriber->getNextMessage(recv_buf); image = cv::imdecode(recv_buf, CV_LOAD_IMAGE_COLOR); cout << "received data: " << recv_buf.size() << endl; } if (!cap.isOpened()) return; if (cap.grab()) { cap >> frame; int msec_start = ofGetElapsedTimeMillis(); bool ret = cv::imencode(type, frame, send_buf, params); int msec_stop = ofGetElapsedTimeMillis(); if (ret) { publisher->send(send_buf); int lap = msec_stop - msec_start; int fps = (lap) ? 1000.0 / lap : ofGetFrameRate(); cout << "encoded size(" << type << ") : " << send_buf.size() << ", time : " << lap << ", fps : " << fps << endl; } } } //-------------------------------------------------------------- void testApp::draw() { if (!image.empty()) { cv::imshow("image", image); } } //-------------------------------------------------------------- void testApp::keyPressed(int key) { } //-------------------------------------------------------------- void testApp::keyReleased(int key) { } //-------------------------------------------------------------- void testApp::mouseMoved(int x, int y) { } //-------------------------------------------------------------- void testApp::mouseDragged(int x, int y, int button) { } //-------------------------------------------------------------- void testApp::mousePressed(int x, int y, int button) { } //-------------------------------------------------------------- void testApp::mouseReleased(int x, int y, int button) { } //-------------------------------------------------------------- void testApp::windowResized(int w, int h) { } //-------------------------------------------------------------- void testApp::gotMessage(ofMessage msg) { } //-------------------------------------------------------------- void testApp::dragEvent(ofDragInfo dragInfo) { }
Core i7-4770S環境でJpegエンコードがおよそ10msec,出力データサイズが220kBytesでした。
WebPエンコードは、およそ60msecで、150kBytesでした。
WebPでQualityを70賭したときにはおよそ40msecで40kBytesでした。ストリーミングでも十分実用が見込めるぐらいの速さになってきました。
それぞれ、libjpeg-turboとMethod2でthreadを有効化したlibwebp1.5をOpenCVに静的リンクさせて使っています。
OpenCV3.1から標準で使えるようになった画像フォーマットWebPのスレッド処理を有効化する方法
(メモ)
C:\workspace\opencv\sources\3rdparty\libwebp\enc\config.c
内の
int WebPConfigInitInternal(WebPConfig* config,
WebPPreset preset, float quality, int version) {
if (WEBP_ABI_IS_INCOMPATIBLE(version, WEBP_ENCODER_ABI_VERSION)) {
return 0; // caller/system version mismatch!
}
if (config == NULL) return 0;
config->quality = quality;
config->target_size = 0;
config->target_PSNR = 0.;
config->method = 4; // 1-6, 2 (Low Quality, High Speed) or 6 (High Quality, Low Speed) is best.
config->sns_strength = 50;
config->filter_strength = 60; // rather high filtering, helps w/ gradients.
config->filter_sharpness = 0;
config->filter_type = 1; // default: strong (so U/V is filtered too)
config->partitions = 0;
config->segments = 4;
config->pass = 1;
config->show_compressed = 0;
config->preprocessing = 0;
config->autofilter = 0;
config->partition_limit = 0;
config->alpha_compression = 1;
config->alpha_filtering = 1;
config->alpha_quality = 100;
config->lossless = 0;
config->image_hint = WEBP_HINT_DEFAULT;
config->emulate_jpeg_size = 0;
config->thread_level = 1; // 0 or 1
config->low_memory = 0;
...(略)...
}
return WebPValidateConfig(config);
}
もちろんqualityと同じようにmethod, thread_levelもOpenCVのインターフェースを整えて外から呼べるようにしてもよい。
C:\workspace\opencv\sources\modules\imgcodecs\include\opencv2\imgcodecs\imgcodecs_c.h
C:\workspace\opencv\sources\modules\imgcodecs\src\grfmt_webp.cpp
あたりを参照のこと。
OpenCVのWEBPはバージョン3で、AVXを使用してないのでほのかに遅い。。。
[1] WebP入門
[2] WebPの画質とファイルサイズを評価する|サイバーエージェント 公式エンジニアブログ
[3] http://static.googleusercontent.com/media/www.webmproject.org/ja//media/pdf/udpsample.pdf WEBMを使ったビデオ会議のサンプル(古い)
[4] CMake プロジェクトの C++ アプリで webp 形式の読み書きに libwebp で対応することはじめ - Qiita
[5] WebP Advanced API の使い方 - Qiita
今日の本文
春です。起きましょう。
SEIKO CLOCK(セイコークロック) RAIDEN(ライデン)大音量デジタル電波目覚まし時計(白) NR532W
- 出版社/メーカー: SEIKO CLOCK
- 発売日: 2014/07/18
- メディア: ホーム&キッチン
- この商品を含むブログを見る
LIVE555 Streaming MediaをVisual Studio2015でコンパイル
(メモ)
WindowsやLinuxで動画配信をしたい場合に便利なライブラリLIVE555 Streaming MediaをWindowsでコンパイルするときのメモです。
Gstreamerがプログラミングのために欲しい資料がなかなか手に入らないのに対して、Live555は比較的素直なソースで書かれているので資料無しでも理解しやすいのが特徴です。
LGPLライセンスです。
1.ダウンロード
http://www.live555.com/liveMedia/から、live555-latest.tar.gz ファイルをダウンロードしてきて解凍します.
2.コンフィグファイルwin32configをワードパッドで開いて、2か所編集します
標準の場所にインストールしたVisual Studio2015の例です。
TOOLS32 = C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
LINK_OPTS_0 = $(linkdebug) msvcrt.lib
いったん.txtファイル形式で保存しておいて、元のファイルを削除してから、ファイル名を編集して.txt拡張子を削ります.
3.Windows SDKをインストールする
Windowsのバージョンに合わせて、WindowsSDKをインストールします。一部のmakeルールを利用するために必要です。
Windows 10 SDK – Windows アプリ開発
4.スタートメニューのすべてのアプリからVisualStudio2015のフォルダを開き、VS2015_x86_Native_Toolsコマンドプロンプトを開く
- [5]を参考にインクルードパスをWindowsSDKに通します。
SET Include=%Include%;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
- liveのフォルダに移動します。
cd c:\workspace\live
- genWindowsMakefiles.cmdを実行します。
genWidnwowsMakefiles
5.各フォルダに降りて、コンパイルしていきます
[6]を参考に、ビルドしていきます。
cd liveMedia nmake /B -f liveMedia.mak cd ..\groupsock nmake /B -f groupsock.mak cd ..\UsageEnvironment nmake /B -f UsageEnvironment.mak cd ..\BasicUsageEnvironment nmake /B -f BasicUsageEnvironment.mak cd ..\testProgs nmake /B -f testProgs.mak cd ..\mediaServer nmake /B -f mediaServer.mak
お疲れ様でした。
[2] LIVE555 Streaming Media
[3] 【RTP】Live555の使い方と解説【RTSPserver】 | FiS Project
[4] VC2008でLIVE555 Streaming Mediaのコンパイル - Junk Blog
[5] https://support.microsoft.com/ja-jp/kb/2791460
[6] Use .mak files on Visual Studio 2010 - Stack Overflow
[7] カメラモジュールの映像をH.264で圧縮してRTSPプロトコルによりストリーミング配信
[8] Don't Blog Me. I'll Blog You.: Streaming JPEG images over RTP using live555 streaming media
[9] GitHub - kylezhou/jpeg_webcam_streamer: a streaming application using JPEG (MJPEG) webcam based on Live555 library OpenCVで圧縮したjpegを送るにはこれのtestを参考にするとよさそう。
[10] GitHub - tklab-tud/umundo: Distributed Publish/Subscribe middleware for MacOSX, Linux, Windows, Android and iOS RTPを簡単に送りたいとき
[11] umundo/umundo-rtp-pub.cpp at master · tklab-tud/umundo · GitHub
新生活で料理を始めるときにそろえるべき調理器具、など。
春です。
新しく一人暮らしや二人暮らしを始める方など、健康と節約のために自炊をしたいと考えている人も多いのではないでしょうか。
料理には、いろいろな道具や器具が必要になりますが、いろいろありすぎて初心者はどれを買いそろえればいいのかわからない人も多いかと思います。
このページでは、最初に準備するべきものをまとめたいと思います。
料理マニュアル
まず、料理の常識を勉強しましょう。最初は、難しい事はなかなか理解できませんから、簡単に教えてくれる教科書を選びます。
今どき、料理レシピはインターネットでいくらでも調べられますので、無くても良いです。
- 作者: 小林カツ代,川口澄子
- 出版社/メーカー: 朝日出版社
- 発売日: 2005/11/01
- メディア: 単行本
- 購入: 1人 クリック: 9回
- この商品を含むブログ (20件) を見る
- 包丁は、使ったらすぐ水洗いして拭いてしまう。
- 鍋の取っ手は、コンロに乗せたらひっかけてしまわないように横に向ける。
- 火をかけている間は、キッチンを離れない。
など、とても大事なことを易しく教えてくれます。1時間もあれば、十分全部読めます。
調理家電
とりあえず、炊飯器と冷蔵庫は必須です。電子レンジなどはあれば便利ですが、無くても何とかなりますので後回しでもいいです。
炊飯器
失敗が少なく美味しく炊ける圧力IHを何としても手に入れてください。
水加減が合わないとき、普通の米も無洗米設定で炊くとべちょべちょにはなりにくいです。
象印 炊飯器 圧力IH式 5.5合炊き ダークブラウン NP-ZD10-TD
- 出版社/メーカー: 象印(ZOJIRUSHI)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
冷蔵庫
本格的に料理を始めるつもりなら、野菜室があるタイプが良いです。あと、消費電力に注意。新しくて、ちょっと大きいタイプの方が消費電力が小さめです。
日立 冷蔵庫 265L 3ドア ライトブラウン R-27HV T
- 出版社/メーカー: HITACHI(日立)
- 発売日: 2017/06/29
- メディア: ホーム&キッチン
- この商品を含むブログを見る
日立の真空チルドは魅力的です。安い電気屋さんで7~8万円ぐらいから取り扱いがあります。
調理器具
包丁とまな板
物の本には良い包丁を買うように書いてあることが多いのですが、包丁は定期的に研ぐメンテナンスが必要なので最初はダメにしてしまうことも多いです。なので、そこそこちゃんとした良い普通のものを選んでおいて、本当にいいものは料理に自信が持てるようになってから選んでもいいと思います。
- 出版社/メーカー: 貝印(Kai Corporation)
- メディア: ホーム&キッチン
- 購入: 1人 クリック: 1回
- この商品を含むブログ (1件) を見る
京セラ セラミック 三徳包丁 ピンク 140mm 漂白除菌OK 無料研ぎ直し券付 FKR-140PK
- 出版社/メーカー: 京セラ
- メディア: ホーム&キッチン
- 購入: 1人 クリック: 143回
- この商品を含むブログ (1件) を見る
まな板も、物の本には木製が良いとお勧めされていることが多いのですが、初心者は洗い方や乾かし方のメンテナンスに失敗してカビを生やしてしまうことも多いです。まな板にカビを生やしてしまうと、料理する気がなくなってしまいますから、抗菌機能のついたプラスチック製を入門用にはお勧めします。
料理に慣れてくると、シンクに渡せるぐらい大きいまな板の方が使いやすいのですが、頻繁に出し入れするものなので、最初は洗いやすい中くらいの大きさのまな板を用意することをお勧めします。
パール金属 抗菌 まな板 M 320×200×13mm 白 食洗機対応 HB-1533
- 出版社/メーカー: パール金属(PEARL METAL)
- 発売日: 2014/12/01
- メディア: ホーム&キッチン
- この商品を含むブログを見る
お鍋: 両手鍋22cmと片手鍋18cm、ふた付き
片手鍋と両手鍋をひとつづつそろえると、調理が捗ります。いっぱいありすぎても場所をとってしまうので、最初は2つあれば十分です。鍋のふたはとても重要です。ガラス製で中が見えるやつがやっぱり便利です。まだ若いと、引っ越しする機会があったりして次の家ではガスが使えずIHだけ、なんてこともありえます。なので、IH対応でこびりつきにくいやつをお勧めします。
無加水鍋とか、圧力鍋とか、取っ手がとれる、とか、とても料理の幅が広がってよいのですが、初心者にはお勧めしません。料理の勘を身に着けてから、購入した方が良いと思います。大きさは、両手鍋22cm、片手鍋18cmをお勧めです。初心者向けの定番料理「カレー」を作るとき、あまり小さいとやりづらいですからね。
パール金属 両手鍋 22cm ガラス鍋蓋付 IH対応 3層底 シンプル・ウェア HW-7205
- 出版社/メーカー: パール金属(PEARL METAL)
- メディア: ホーム&キッチン
- 購入: 1人 クリック: 2回
- この商品を含むブログを見る
パール金属 シンプル・ウェア 3層底 ガラス蓋 付 片手鍋 18cm HW-7203
- 出版社/メーカー: パール金属(PEARL METAL)
- メディア: ホーム&キッチン
- この商品を含むブログ (3件) を見る
フライパン24-26cm
鉄製のおしゃれなフライパンは焦がしてしまいがちで最初は使いこなせないと思います。なので、表面加工付きでIH対応で、そこそこの大きさの物を選びます。28cmだと明らかに大きいので、それよりちょっと小さいやつを。
ちょっと高めですが、北陸アルミのこれが良いです。蓋も必要なので、忘れずに。立てられるやつが、狭いキッチンで意外と便利。
北陸アルミ フライパン IHハイキャスト 26cm 「オール熱源対応」
- 出版社/メーカー: 北陸アルミニウム
- メディア: ホーム&キッチン
- この商品を含むブログを見る
北陸アルミ ルックインスタンド カバー L (26~30cm) JY-703
- 出版社/メーカー: 北陸アルミニウム
- メディア: ホーム&キッチン
- クリック: 1回
- この商品を含むブログ (1件) を見る
お湯を沸かす道具: ヤカンか電気ケトル、もしくは電気ポット
ヤカンなら安全第一で音が鳴るものを選びます。火が使えるならヤカンが一番お勧めです。
貝印 笛吹き ケトル 2.5L IH対応 シェフトロン DY05056
- 出版社/メーカー: 貝印(Kai Corporation)
- メディア: ホーム&キッチン
- 購入: 4人 クリック: 7回
- この商品を含むブログを見る
ボール大中小
ステンレス製の安いセットのやつで十分です。
パール金属 ステンレス ボール 3点 セット 16 18 22cm ララシャイン H-5371
- 出版社/メーカー: パール金属(PEARL METAL)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
金属ざる大中小
これもステンレス製の安いセットのやつで十分です。でも、100均などで売ってるアルミ製はやめておきましょう。アルミがアルツハイマーの原因では?なんて噂もあります。
パール金属 ステンレス 深型 ざる 3点セット 15 19 25cm ララシャイン H-5327
- 出版社/メーカー: パール金属(PEARL METAL)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
菜箸
シリコン樹脂製のおしゃれなやつも魅力的ですが、竹や木製の安いやつで十分実用的です。よほどへまをしなければ、表面加工を傷つけることもありません。紐はあっても邪魔なので、ついてないシンプルなやつを。
- 出版社/メーカー: 田中箸店
- メディア: ホーム&キッチン
- この商品を含むブログを見る
おたま、フライ返し
表面加工をした鍋やフライパンを使うときは、金属製は避けて必ず樹脂製を選びます。意外といいやつが無いのですが、町のスーパーなどで安く見つけられることがあります。
ティファール おたま キッチンツール インジニオ K21325
- 出版社/メーカー: ティファール(T-fal)
- 発売日: 2015/09/08
- メディア: ホーム&キッチン
- この商品を含むブログを見る
ティファール 穴あき おたま キッチンツール インジニオ K21331
- 出版社/メーカー: ティファール(T-fal)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
ティファール フライ返し キッチンツール インジニオ K21328
- 出版社/メーカー: ティファール(T-fal)
- 発売日: 2015/09/08
- メディア: ホーム&キッチン
- この商品を含むブログを見る
ピーラー
ピーラーは初心者にはとても便利ですが、慣れないと意外と深い切り傷を作りやすいので、持ちやすいものを選びます。
京セラのセラミック製は、ドンキホーテなどでナイフとセットで安く売っていることもあります。
- 出版社/メーカー: 京セラ
- メディア: ホーム&キッチン
- この商品を含むブログ (2件) を見る
計量スプーン
レシピに出てくるのは、決まって大さじか小さじですから2つあれば十分です。
おばあちゃんのように直感で量が分かるぐらいに感覚を身に着けるまで、計量スプーンは持っておいた方が良いです。
計量カップは、炊飯器についてきたものでもなんとかなります。
- 出版社/メーカー: 和田助製作所
- メディア: ホーム&キッチン
- この商品を含むブログを見る
食器
茶碗
食べ過ぎを防ぐため、あまり深くないタイプで、自分の気に入った陶器製のやつを選べばよいです。
白山陶器 4.2寸飯碗 天目 (約) φ13×5.6cm ベーシック BASIC WARE 波佐見焼 日本製
- 出版社/メーカー: 白山陶器
- メディア: ホーム&キッチン
- クリック: 1回
- この商品を含むブログを見る
お椀
日本人ですから、必ず木製で熱の伝わりにくい、お味噌汁によく合うタイプを選びます。アマゾンにはあまりいいやつは置いていませんので、お茶碗と一緒に街に探しに出たら良いでしょう。
お椀 木製汁椀スリ漆内朱 [11φ x 7cm] (7-248-11) 木製品 料亭 旅館 漆器 和食器 飲食店 業務用
- 出版社/メーカー: せともの本舗
- メディア: ホーム&キッチン
- この商品を含むブログを見る
[2017/11/15追記]
クラフト木の実のこれがなかなか良さそう。
すり漆 スタンダード椀 ED-07952 M 【品番】RSLJ502
- 出版社/メーカー: クラフト木の実
- メディア:
- この商品を含むブログを見る
皿 大中小
好きなデザインの物をそろえると良いです。特に色が大事で、白色よりも料理に合わせて映える色の皿を選ぶようにすると、実際の味以上に美味しく感じることができます。
選ぶ元気がない人は、とりあえずこちらの安いセットでどうでしょう。でも、白色だけでは必ずいつか物足らなくなります。
エムズスタイル ホワイトライン洋食器セット(1人用) MS-50106
- 出版社/メーカー: エムズスタイル
- メディア: ホーム&キッチン
- クリック: 1回
- この商品を含むブログを見る
清掃道具とか補助具
ふきん(カウンタークロス)
キッチン回りを料理中もきれいに掃除していくことが、料理上達のコツです。一人暮らしでは油汚れの付いたふきんを洗ったり干したりもなかなか大変ですので、使い捨てのカウンタークロスがお勧めです。超重要アイテムですよ。
ストリックスデザイン カウンタークロス 3色アソート(ピンク、グリーン、ブルー) 60枚入
- 出版社/メーカー: STRIX DESIGN(ストリックスデザイン)
- メディア: ホーム&キッチン
- この商品を含むブログを見る
水切りかご
これがシンプルで場所も取らず、使いやすい。金属製のおしゃれなやつは、良い奥様になってから。
- 出版社/メーカー: アスベル
- メディア: ホーム&キッチン
- この商品を含むブログを見る
ジップロック
袋とケースをそろえておきます。
- 出版社/メーカー: 旭化成ホームプロダクツ
- メディア: ヘルスケア&ケア用品
- この商品を含むブログを見る
ジップロック フリーザーバッグ 大 (27.3cm x 26.8cm) 36枚入
- 出版社/メーカー: 旭化成ホームプロダクツ
- 発売日: 2008/08/11
- メディア: ヘルスケア&ケア用品
- 購入: 3人 クリック: 58回
- この商品を含むブログ (4件) を見る
ラップ
サランでもクレでもいいので、ちょっと長めの30cmレギュラー幅のやつを。
- 出版社/メーカー: 旭化成ホームプロダクツ
- 発売日: 2014/06/01
- メディア: ヘルスケア&ケア用品
- この商品を含むブログを見る
【まとめ買い】NEWクレラップ レギュラー 30cm×50m 3本パック
- 出版社/メーカー: クレハ
- 発売日: 2014/12/01
- メディア: ヘルスケア&ケア用品
- この商品を含むブログを見る
調味料
基本的に、和食の朝ごはんを作るつもりで料理を練習すると良いです。そのための基本セットをそろえます。
砂糖
- 出版社/メーカー: 三井製糖(株)
- メディア: その他
- この商品を含むブログ (1件) を見る
塩
- 出版社/メーカー: 伯方塩業
- メディア: 食品&飲料
- クリック: 6回
- この商品を含むブログ (4件) を見る
酢
- 出版社/メーカー: ミツカン
- メディア: 食品&飲料
- 購入: 1人 クリック: 1回
- この商品を含むブログ (1件) を見る
しょうゆ
キッコーマン いつでも新鮮 しぼりたて生しょうゆ 200ml
- 出版社/メーカー: キッコーマン
- メディア: 食品&飲料
- この商品を含むブログを見る
味噌
- 出版社/メーカー: マルコメ
- メディア: 食品&飲料
- この商品を含むブログを見る
料理酒
- 出版社/メーカー: ミツカン
- メディア: 食品&飲料
- この商品を含むブログを見る
みりん
- 出版社/メーカー: 宝酒造
- メディア: 食品&飲料
- この商品を含むブログ (1件) を見る
顆粒だし
- 出版社/メーカー: 味の素
- メディア: 食品&飲料
- この商品を含むブログを見る
少し料理ができるようになって来たら、クックドゥを使わない中華料理に挑戦すると良いでしょう。
簡単で、よほど失敗しない限り美味しくできます。
このページがとても参考になります。
cside.hatenablog.com
豆板醤
ウェイパー
オイスターソース
を常備しておくとレパートリーが広がりそうです。
お金の計算
ざっくり初期投資にいくらぐらい必要か調べてみましょう。
本: 1,000円
家電: 100,000円
調理器具: 24,500円
食器: 8,500円
清掃用品: 4,800円
調味料: 3,000円
小計 140,300円
本当に良いものばかり選んではいますが、暮らすってもの入りですね。
まあ、冷蔵庫が7万ほどですので半分は冷蔵庫代ですが。
MRPTリンク集
[1]KARTO: Karto 日本語情報トップページ - OSDN
[2]OMPL: http://robotics.naist.jp/edu/text/?Robotics%2FOMPL
[3] GitHub - AtsushiSakai/MATLABRobotics: MATLAB Sample Code for Robotics
トラ技2016年1月号で紹介されていたcm精度のRTK GPSキットのEMLID Reachが届いたので、開封の儀。
(編集中)
メーカーの商品紹介ページ
www.emlid.com
Reachの設定ドキュメント
Emlid
Quickstartの雑な翻訳
電源
マイクロUSBで供給される5Vです。
もしくは、マイクロUSBとは排他利用でDF13ポートに5Vを供給してもかまいません。DF13ポートを使用する場合、USBに接続できるのはメモリなど電源を供給しないデバイスに限ります。
GPSアンテナ
MCXソケットにアンテナを接続します。
Wi-Fiの設定
ブラウザで
http://reach.local:5000
または、
http://192.168.42.1:5000
にアクセスし、Reachのホットスポットから常用しているWi-Fiネットワークへ接続を切り替えます。
ここまで書いておいてなんですが、いい資料を見つけたのでこのブログを参考にしてください!
EMLIDのMikhailからReachと呼ぶ、Intel Edisonベースの超小型RTKモジュールの試作品を送ってもらったので、RTKRCVをポートして動作試験。GNSSモジュールはNEO-M8Nなので普通にRTKが動く。ただしM8Nなので1Hzまでで、GLOとBDSのアンビギュイティは解けない。GPS+GLO 1Hz RTKでEdisonのCPU負荷2%位。NEO-M8Tの正式版が出ればそれに置き換えて5HzまでのRTKでBDSのアンビギュイティも問題なく解けるはず。ただ、RTKRCVのコード書いたのがずいぶん前なので今一つ操作性が悪い。もう少し使いやすくするのとGNSS/INS統合もちゃんと入れて書き直したいなあ。
1HzまでGLO,BDSは解けない、というのはM8Nを使った開発版の制限かな?M8Tでも5Hzまで、BDSはOKでGLOは?
BASE座標の調べ方。緯度経度の他に正確な高度の情報も必要です。
OpenRaveをソースからコンパイル
GitHUBからダウンロードしてきたOpenRaveをソースからコンパイルするときの作業メモです。
環境は、Windows10上のVirtualBoxに入れたUbuntu12.04LTSです。
要らないことも一杯やってますが、メモ。
1 sudo apt-get update
2 sudo apt-get upgrade
3 sudo apt-get upgrade --fix-missing
5 sudo apt-get update
6 sudo apt-get upgrade
8 mv openrave-master/ openrave
15 sudo add-apt-repository ppa:openrave/release
16 sudo apt-get update
17 sudo apt-get install openrave
19 cd openrave/
25 sudo apt-get install cmake-curses-gui
29 sudo apt-get install assimp
33 sudo apt-get install libboost-dev
40 sudo apt-get install libxml2-dev
49 sudo apt-get install libpcre++-dev
55 sudo apt-get install libpcre++0
56 sudo apt-get install libpcre3-dev
57 sudo apt-get install libpcre3
69 sudo apt-get install bzip2
81 sudo apt-get install liblog4c-dev
84 sudo apt-get install collada-dom-dev
87* sudo apt-get install liblog4cxx10-de
93 sudo apt-get install qt
96 sudo apt-get install libfparser-dev
99 sudo apt-get install fparser
102 sudo apt-get install libboost-all-dev
109 sudo apt-get install libsoqt4-dev
112 sudo apt-get install libgmp-dev
115 sudo apt-get install libmpfr-dev
118 sudo apt-get install libmpfi-dev
121 sudo apt-get install zlib-bin
125 sudo apt-get install octave3.2
128 sudo apt-get install libbullet-dev
132 sudo apt-get install libavformat-dev
135 sudo apt-get install libswscale-dev
140 sudo apt-get install libode-dev
145 sudo apt-get install openscenegraph
148 sudo apt-get install libopenscenegraph-dev
149 cmake .
150 make clean
151 make
153 sudo make install
後でとても良いページが見つかりました。綺麗にまとまっていますので、こちらを参照してください。
sites.google.com
2016/11/20現在、openraveのインストールにはもう少し追加のライブラリが必要になっているようです。
・libccd
・octomap
・fcl (最新版ではなくfcl-0.5)
いずれもgithubからソースを入手して自前でコンパイルします。