2019年10月21日月曜日

LAN内でのファイル共有をする方法

これはパソコン同士でファイルをやり取りする一つの方法で、数分でできます。
すぐにできるのでよければ試してみてください。

両方のパソコンでやらないといけないこと 

前提条件 両方のパソコンが同じルーターにつながってる。

コントロールパネルを開きます
ネットワークとインターネットをクリック


ネットワークと共有センターをクリック


共有の詳細設定をクリックしますが、その前にプライべーとネットワークか確認します。
ここがパブリックの場合はプライベートに変更しないといけないので後述の手順を踏みます。


画像の通りに変更して変更の保存を押します。


次にパブリックネットワークからプライベートネットワークに変える手順を書きますが、プライベートならスキップしてください。

Windowsの設定からネットワークとインターネットを開きます


次にイーサネットをクリック


イーサネットは有線LANという意味です。画像だとネットワーク2となっていますが、もしかしたらネットワークかもしれませんし、ネットワーク3かもしれません。wifiがついているものだとアクセスポイントの名前もあったりします。名前の部分がクリックできるのでクリックします。


開いたらネットワークプロファイルをプライベートに変更します。




ここまでの手順を踏むと同じネットワーク内のパソコンがエクスプローラーから見えるようになります。(見れなかったら再起動してみてください)エクスプローラーのネットワークをクリック。PC-MK33LLFがもう一台のパソコンです。


ここからは共有したいフォルダがあるPCで作業すること


ここからは共有したいフォルダがあるPCで作業します。データをためておく側のPCです。
テキトーなフォルダを右クリックしてプロパティーを出します


共有のタブにある詳細な共有から



このフォルダを共有するをクリックします。


適用を押してOKを押します。フォルダの中にファイルがあると時間がかかります。

先ほどのエクスプローラーの共有したいフォルダのあるパソコンの名前(PC-MK33LLF)をダブルクリックすると、このように共有と書いたフォルダが見えるようになります(ほかのフォルダはもともとこの機能を使ってた名残ですごめんなさい)。

もしかしたら名前とパスワードが要求されるかもしれませんが、共有したいフォルダのあるパソコンのユーザー名とパスワードを打ち込めばこのように見えるようになります。


転送速度はHDDやSSDの転送速度と有線の速度で変わりますが、最大速度は100MB/Sくらいです。

2019年9月20日金曜日

microsoft azureからOSをダウンロードする話

単位がちゃんと取れててうれしいおでんです。

今日は学生がMicrosoft AzureからOSをどうやって落とすかのお話です。

OSのダウンロードサービスは昔はdream sparkだったりMicrodoft Imagineのような名前でしたが、昨年末ごろにazureにOSのダウンロード機能?が飲み込まれてややこしくなりました。
なので今回は新しくなったダウンロード方法の解説をしたいと思います。

僕が学生ならOS入りのパソコンを買う必要がないという理由はタダ(正確には開発だったりお勉強用に配ってくれてる)でOSをMicrosoft自身が配ってくれてるからですね。

twitterを昔からフォローしてくださってる方だとお知りの方も見えるかもしれませんが、現在僕はこれを利用してWindows Server 2016をメインで使用しています。ただデスクトップで常用するのは規約的に黒寄りのグレーなのでお勧めしませんが、アップデートをコントロールできるので助かってます。あと家じゅうのWindowsのアップデートをコントロールできるので楽です。

また、Server以外にもWindows10もhome(無印)からeducationだったりと様々なバージョンが用意されてます。

というわけでアクセスの仕方から。
学生用のazureアカウントはここから作成してください。
ログインできるとポータル画面になるので、そこで左のバーからすべてのサービスを開きます。


そうしたら、管理+ガバナンスの欄にあるeducationをクリックします。


そしたらソフトウェアをクリックするとOSを含めazureの得点でダウンロードできるソフトウェア一覧が表示されます。



今回は無印Windows10 windows10 proに変えるためプロダクトが欲しいのでWindows 8.1 Professionalをクリックしています。
なぜ8.1かといいますと、現状ではWin10 Proのプロダクトキーが用意されていません。
ですので、いままでOSを入れてる感じだとWin8とWin10の認証サーバーはおそらく同一なので、Windows8.1 ProでもWindows10 Proになれるはずです。



というわけで、キーを表示をクリックしてプロダクトキーをいただきます。
ちなみにダウンロードをクリックするとOSのisoファイルが落とせるのでそれをUSBに焼けばインストーラーが作成できます。
プロダクトキーはインストール中に入力すれば大丈夫ですね。

今回はアップグレードなので、設定の更新とセキュリティからライセンス認証をクリックし、ライセンスキーの変更から取得したキーをコピペor入力すればはれてWin10 Proになれるはずです。

というわけでざっくりMicrosoft AzureからOSのダウンロード方法でした。

ではでは~

2019年8月17日土曜日

rosでusbカメラ(USB3Vision)を使ってみる

開発期間なので備忘録もかねて連投します。
というわけで今回カメラを買った本題でROSにカメラを認識させようの回です。
rosなので安定のwikiからの引用でいきます。
kineticをwikiの通りにインストールしたところから始めています。
使用カメラはPOINTGREY FL3-U3-13E4C-Cですがドライバが旧規格のieee1394でデータ読めるようにしてくれてるので実質firewireカメラです。
今回の参考ページcamera1394
あと例のROSバイブルの8章も参考にしています。

まずは書いてある通りに必要なものをインストールします。
sudo apt install ros-kinetic-camera1394 ros-kinetic-image-*ros-kinetic-pointgrey-camera-description
以下の三つはそれぞれ別窓で実行します。
roscore
rosrun camera1394 camera1394_node
rosrun image_view image_view image:=/camera/image_raw
そうするときっと小さい小窓に映像が出てくると思うので,確認できたら最後のコマンドをタスクキルしてください。
次にrvizでも確認してみます。
addからimageを追加し,image topicのところに/camera/image_rawと打ち込むと左下の子画面に映像が表示されます。


これでなんとなく雰囲気はつかめたと思うので,カラーにしたり解像度を変更したりしました。二つ目のタスクのみキルし,以下のコマンドを再度実行すればrvizの画面は自動で更新されているはずです。
rosrun camera1394 camera1394_node _video_mode:=1280x960_yuv422 _iso_speed:=1600

_ほげほげ:=ふげふげと打ち込んでいるのが引数です。ほげほげが設定項目名でふげふげがその値です。今回の場合は解像度を1280x960にしカラーモードをyuv422指定,またiso感度1600に設定しています,ほかにも色温度などを変更できるので詳しくはwikiの真ん中あたりを読んでください。

というわけでROSにカメラがきちんと認識されていることがわかりました。
これでOpenCVなどに生かせます。

この次は何やろっかなー

2019年8月16日金曜日

ssl-visionでusbカメラを使ってみる 後編

前回の続き....
再起動したらカメラを接続してください。
そしてアプリ検索するとflycapture2がいるのでそれを立ち上げてみましょう
そうするとカメラが認識されていますね。
見てわかる通り20fpsしか出てません。悲しい...
さっさとssl-visionをインストールしましょう。ここからの手順は公式wikiと同様のなのでさくっと行きます。
sudo apt install git
git clone https://github.com/RoboCup-SSL/ssl-vision.git
gitってデフォルトでインストールされてないと思わなかった...
あとはもうおまじないをとなえるだけですね。
cd ssl-vision
sudo ./InstallPackagesUbuntu.sh

----------------------------------------------------------------------------------------------------------------
make
mkdir -p build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Release .. && \
cp ../CMakeLists.txt ./CMakeLists.txt.copy
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so 
-- Found PROTOBUF Compiler: /usr/bin/protoc
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'eigen3'
--   Found eigen3, version 3.2.92
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found suitable version "4.8.7", minimum required is "4.8.0")
CMake Error at /usr/share/OpenCV/OpenCVConfig.cmake:183 (message):
  opencv_imgcodecs is required but was not found
Call Stack (most recent call first):
  CMakeLists.txt:88 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/oden/ssl-vision/build/CMakeFiles/CMakeOutput.log".
See also "/home/oden/ssl-vision/build/CMakeFiles/CMakeError.log".
Makefile:9: ターゲット 'build/CMakeLists.txt.copy' のレシピで失敗しました
make: *** [build/CMakeLists.txt.copy] エラー 1

あれエラーやん....
cmakelist読んだ感じOpenCV3じゃないといけないみたいなので手動インストールですね。
まじapt-getといいメンテナンスしろよそういうとこやぞ
おっと口が滑りました。そういえばAIのslackにパッチあったなと思いつつ、
めんどくさいのでOpenCVをビルドしたいと思います。
参考にしたサイトさんはこちら「Ubuntu16.04: OpenCV3.4.0のインストール

sudo apt install build-essential
sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libhdf5-dev libwebp-dev libtiff-dev libjasper-dev
sudo apt install checkinstall auto-apt ccache

今回はバージョンOpenCV3.4.7で行きたいと思います。ダウンロードしたら解凍します。


cd opencv-3.4.7
mkdir build
cd build
cmake ..
make -j4
結構時間かかるので気長に待ちます。
sudo make install
インストールしたライブラリを反映するために再起動します、
sudo reboot
そしたら再度ssl-visionをgitから引っ張ってきて綺麗な状態でビルドを行います。
git clone https://github.com/RoboCup-SSL/ssl-vision.git
cd ssl-vision
mkdir build
cd build
cmake -DUSE_FLYCAP=true ..

前はいらなかったけどgithubの感じだとcmakeにオプションつけないとだめなのかな?

(追記)よく考えたらflycaptureのドライバを当てるとこのカメラはieee1394にデータ転送されるようになってるのでこんなことしないでmakeして大丈夫です。

make -j4
終わったらvisionを立ち上げてみましょう。
~/ssl-vision$ ./bin/vision -s
そしてThread0>Image Capture>Capture Controlへ行き、
Capture ModuleをDC 1304へ変更しstartを押すと、


見事に映像が出力されます。
cmakeのflycaptureの部分おそらく今までどおりGigEカメラ用みたいですね。関係なかったや。
カメラの解像度などは手動で設定しないといけないので、そこは気をつけます。


今回のカメラだと設定はこんな感じですね。解像度最大にしたら一気にフレームレートが落ちました。
USB2.0の限界ですね。

あとは設定をこつこつ詰めていくだけですが、楽にキャリブレーションするためのコツを少しだけ
カメラの設定変更はThread0>Image Capture>DC1394>Camera Parametersから行います。

そして一番の要になるパラメータはWhite Balanceです。カメラやっている人は解ると思いますが、白の色をとるのがやはり一番基本です。これがしっかりできているだけで色取りが15分かからずに終わるようになります。おそらく最初はオートになっているはずなので、手動で調整しましょう。


ホワイトバランスの調整方法ですが、普通なら色温度なのですがssl-visionはUV色空間というもので調整します。本来ならcie1960に準拠しているはずですが、このパラメータは完全にカメラのハードウェア依存です。firewireの高いカメラでも調整幅が狭いカメラとかもあったなぁ...
オートでもいい線いくんですが、大会中の照明の変化とか、照明の光源なんかでがばがばなことがあるので、必ず手動にして、微調整してください。

CIE 1960 色空間 (wikipediaより)

基本的にこんな感じにパラメーターを変えると変動しますが、カメラによっては微調整できるようにと0.8倍くらいの値で動くカメラもあります。今回のカメラとかまさにそんな雰囲気ですね。

ちなみにこの調整は勘です。パラメーターがカメラ依存なので、カメラを使ってる学校の人がなれてます。

ロボットのマーカーの画用紙を真ん中とどこかの角において、色がちゃんと分離できているか確認しながら行ってください。色温度をわざとずらして黄色と緑、青とピンクの画用紙の色を完全に分離するプロみたいな技もあったりなかったり。

これさえできれば、あとはシャッター速度を微調整したりサテライトで色の濃度調整すればぱぱっと動作環境がつくれます。色取りはなんかオートキャリブレーションが追加されてましたが、昨年までそんなものはなかったので知りません。

というわけで今回はこんな感じにやればできるよってお話でした。
最後に、解像度が増えると、シングルタスクで処理してるっぽいssl-visionはとても重くなります。なので、設定変更して反映されるまで固まりますがそこは気長に待ってください。

というわけでssl-visionで大会の公式環境を立てる方法でした。

それでは。

ssl-visionでusbカメラを使ってみる 前編


この内容は2019年8月現在の内容です.

どうもご無沙汰なおでんです。

今回は題名の通りssl-visionでusbカメラ(USB3Vision)を動作させるお話です。

卒研の内容をちゃんと備忘録として残しておきたいと思います。

これから先SSLに関わるつもりは1ミリもないので書いとかないと聞かれた時に忘れてしまいます。


実行環境
ハードウェア

PC
Let's note CF-F10(core i5 580m RAM4G HDD500GB)

Camera
POINTGREY FL3-U3-13E4C-C(1.3Mpixels(1,280 x 1,024) 60fps USB3.0)

ソフトウェア

Ubuntu 16.04 japanese remixクリーンインストール状態

今回のPCはUSB3.0ポートがないのでカメラの本来の性能が出てないですがお許しください。

まずはアップデートとアップグレードのいつものおまじないを打っていきます。

sudo apt update
sudo apt upgrade

ここで一旦再起動し、その後

sudo apt autoremove

を行いアップデートを終わらせる。

 ssl-visionをビルドするよりも先にcamera関連のプログラムを入れないとvisionが認識しないので、先にカメラのSDKをダウンロードします。


flycapture2というやつをつかうので公式サイトに飛びます。
使うカメラによっては新しいソフトでないと動作しないかもです.


というわけでダウンロードしてください。


でフォルダをてんかいしといてください。


ここでコンソールに戻ります。
確かflycap2-confだけでもssl-visionは認識してくれるはずなのですが、SDK入れるとカメラの画像がそこから見れて便利なのでSDKをインストールします。

ちなみにこっから手動でいくつも修正を行っていく必要があるので長いです。

----------------------------------------------------------------------------------------------------------------
./install_flycapture.sh
This is a script to assist with installation of the FlyCapture2 SDK.
Would you like to continue and install all the FlyCapture2 SDK packages?
(y/n)$ y

Installing FlyCapture2 packages...
[sudo] oden のパスワード:
以前に未選択のパッケージ libflycapture2-dev を選択しています。
(データベースを読み込んでいます ... 現在 210091 個のファイルとディレクトリがインストールされています。)
libflycapture-2.13.3.31_amd64-dev.deb を展開する準備をしています ...
libflycapture2-dev (2.13.3.31) を展開しています...
以前に未選択のパッケージ libflycapture2 を選択しています。
libflycapture-2.13.3.31_amd64.deb を展開する準備をしています ...
libflycapture2 (2.13.3.31) を展開しています...
libflycapture2 (2.13.3.31) を設定しています ...
libflycapture2-dev (2.13.3.31) を設定しています ...
libc-bin (2.23-0ubuntu11) のトリガを処理しています ...
以前に未選択のパッケージ libflycapturegui2-dev を選択しています。
(データベースを読み込んでいます ... 現在 210115 個のファイルとディレクトリがインストールされています。)
libflycapturegui-2.13.3.31_amd64-dev.deb を展開する準備をしています ...
libflycapturegui2-dev (2.13.3.31) を展開しています...
以前に未選択のパッケージ libflycapturegui2 を選択しています。
libflycapturegui-2.13.3.31_amd64.deb を展開する準備をしています ...
libflycapturegui2 (2.13.3.31) を展開しています...
dpkg: 依存関係の問題により libflycapturegui2-dev の設定ができません:
 libflycapturegui2-dev は以下に依存 (depends) します: libgtkmm-2.4-1v5 ...しかし:
  パッケージ libgtkmm-2.4-1v5 はまだインストールされていません。
 libflycapturegui2-dev は以下に依存 (depends) します: libglademm-2.4-1v5 ...しかし:
  パッケージ libglademm-2.4-1v5 はまだインストールされていません。


dpkg: パッケージ libflycapturegui2-dev の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
dpkg: 依存関係の問題により libflycapturegui2 の設定ができません:
 libflycapturegui2 は以下に依存 (depends) します: libgtkmm-2.4-1v5 ...しかし:
  パッケージ libgtkmm-2.4-1v5 はまだインストールされていません。
 libflycapturegui2 は以下に依存 (depends) します: libglademm-2.4-1v5 ...しかし:
  パッケージ libglademm-2.4-1v5 はまだインストールされていません。

dpkg: パッケージ libflycapturegui2 の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
処理中にエラーが発生しました:
 libflycapturegui2-dev
 libflycapturegui2

----------------------------------------------------------------------------------------------------------------

はいエラーが出ました。こいつは絶対に3回くらいエラーを吐くのでひとつずつ修正します。
赤文字の部分がエラーですね。libgtkmm-2.4-1v5とlibglademm-2.4-1v5がないって怒っています。なので、

----------------------------------------------------------------------------------------------------------------

sudo apt install libgtkmm-2.4-1v5 libglademm-2.4-1v5
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています              
状態情報を読み取っています... 完了
以下の問題を解決するために 'apt-get -f install' を実行する必要があるかもしれません:
以下のパッケージには満たせない依存関係があります:
 libglademm-2.4-1v5 : 依存: libglade2-0 (>= 1:2.6.4-2~) しかし、インストールされようとしていません
E: 未解決の依存関係です。'apt-get -f install' を実行してみてください (または解法を明示してください)。

----------------------------------------------------------------------------------------------------------------

まだだめなようですね。言われたとおりにコマンドを打ちます。

----------------------------------------------------------------------------------------------------------------

sudo apt -f install
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
依存関係を解決しています ... 完了
以下の追加パッケージがインストールされます:
  libglade2-0 libglademm-2.4-1v5 libgtkmm-2.4-1v5
以下のパッケージが新たにインストールされます:
  libglade2-0 libglademm-2.4-1v5 libgtkmm-2.4-1v5
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。
2 個のパッケージが完全にインストールまたは削除されていません。
734 kB のアーカイブを取得する必要があります。
この操作後に追加で 5,076 kB のディスク容量が消費されます。
続行しますか? [Y/n]
取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 libgtkmm-2.4-1v5 amd64 1:2.24.4-2 [671 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 libglade2-0 amd64 1:2.6.4-2 [44.6 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 libglademm-2.4-1v5 amd64 2.6.7-5 [18.1 kB]
734 kB を 0秒 で取得しました (1,231 kB/s)     
以前に未選択のパッケージ libgtkmm-2.4-1v5:amd64 を選択しています。
(データベースを読み込んでいます ... 現在 210127 個のファイルとディレクトリがインストールされています。)
.../libgtkmm-2.4-1v5_1%3a2.24.4-2_amd64.deb を展開する準備をしています ...
libgtkmm-2.4-1v5:amd64 (1:2.24.4-2) を展開しています...
以前に未選択のパッケージ libglade2-0:amd64 を選択しています。
.../libglade2-0_1%3a2.6.4-2_amd64.deb を展開する準備をしています ...
libglade2-0:amd64 (1:2.6.4-2) を展開しています...
以前に未選択のパッケージ libglademm-2.4-1v5 を選択しています。
.../libglademm-2.4-1v5_2.6.7-5_amd64.deb を展開する準備をしています ...
libglademm-2.4-1v5 (2.6.7-5) を展開しています...
libgtkmm-2.4-1v5:amd64 (1:2.24.4-2) を設定しています ...
libglade2-0:amd64 (1:2.6.4-2) を設定しています ...
libglademm-2.4-1v5 (2.6.7-5) を設定しています ...
libflycapturegui2 (2.13.3.31) を設定しています ...
libflycapturegui2-dev (2.13.3.31) を設定しています ...
libc-bin (2.23-0ubuntu11) のトリガを処理しています ...
----------------------------------------------------------------------------------------------------------------

こんどは成功したようです。
もう一度インストールスクリプトを実行します。

----------------------------------------------------------------------------------------------------------------
./install_flycapture.sh
This is a script to assist with installation of the FlyCapture2 SDK.
Would you like to continue and install all the FlyCapture2 SDK packages?
(y/n)$ y

Installing FlyCapture2 packages...
(データベースを読み込んでいます ... 現在 210155 個のファイルとディレクトリがインストールされています。)
libflycapture-2.13.3.31_amd64-dev.deb を展開する準備をしています ...
libflycapture2-dev (2.13.3.31) で (2.13.3.31 に) 上書き展開しています ...
libflycapture-2.13.3.31_amd64.deb を展開する準備をしています ...
libflycapture2 (2.13.3.31) で (2.13.3.31 に) 上書き展開しています ...
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
libmultisync-c-2.13.3.31_amd64.deb を展開する準備をしています ...
libmultisync-c2 (2.13.3.31) を展開しています...
libmultisync-c2 (2.13.3.31) を設定しています ...
libc-bin (2.23-0ubuntu11) のトリガを処理しています ...
以前に未選択のパッケージ flycap を選択しています。
(データベースを読み込んでいます ... 現在 210229 個のファイルとディレクトリがインストールされています。)
flycap-2.13.3.31_amd64.deb を展開する準備をしています ...
flycap (2.13.3.31) を展開しています...
dpkg: 依存関係の問題により flycap の設定ができません:
 flycap は以下に依存 (depends) します: libgtkmm-2.4-dev ...しかし:
  パッケージ libgtkmm-2.4-dev はまだインストールされていません。
 flycap は以下に依存 (depends) します: libglademm-2.4-dev ...しかし:
  パッケージ libglademm-2.4-dev はまだインストールされていません。
 flycap は以下に依存 (depends) します: libgtkglextmm-x11-1.2-dev ...しかし:
  パッケージ libgtkglextmm-x11-1.2-dev はまだインストールされていません。

dpkg: パッケージ flycap の処理中にエラーが発生しました (--install):
 依存関係の問題 - 設定を見送ります
bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) のトリガを処理しています ...
Rebuilding /usr/share/applications/bamf-2.index...
gnome-menus (3.13.3-6ubuntu3.1) のトリガを処理しています ...
desktop-file-utils (0.22-1ubuntu5.2) のトリガを処理しています ...
mime-support (3.59ubuntu1) のトリガを処理しています ...
man-db (2.7.5-1) のトリガを処理しています ...
処理中にエラーが発生しました:
 flycap
----------------------------------------------------------------------------------------------------------------

libgtkmm-2.4-devとlibglademm-2.4-devとlibgtkglextmm-x11-1.2-devがないようです。
今回もapt installを行ったらapt -f install を行なえと言われたのでそうします。


----------------------------------------------------------------------------------------------------------------
sudo apt -f install
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています               
状態情報を読み取っています... 完了
依存関係を解決しています ... 完了
以下の追加パッケージがインストールされます:
  autotools-dev debhelper dh-strip-nondeterminism gir1.2-gtk-2.0 icu-devtools
  libatk1.0-dev libatkmm-1.6-dev libcairo-script-interpreter2 libcairo2-dev
  libcairomm-1.0-dev libdrm-dev libexpat1-dev libfile-stripnondeterminism-perl
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
  libxt-dev libxxf86vm-dev mesa-common-dev po-debconf x11proto-composite-dev
  x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev
  x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-randr-dev
  x11proto-render-dev x11proto-xext-dev x11proto-xf86vidmode-dev
  x11proto-xinerama-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
提案パッケージ:
  dh-make libatkmm-1.6-doc libcairo2-doc libcairomm-1.0-doc glade
  | glade-gnome libglademm-2.4-doc libglib2.0-doc libglibmm-2.4-doc
  libgtkmm-3.0-dev libgtk2.0-doc libgtkmm-2.4-doc libice-doc icu-doc
  libpango1.0-doc libsigc++-2.0-doc libsm-doc libxcb-doc libxext-doc libxt-doc
  libmail-box-perl
以下のパッケージが新たにインストールされます:
  autotools-dev debhelper dh-strip-nondeterminism gir1.2-gtk-2.0 icu-devtools
  libatk1.0-dev libatkmm-1.6-dev libcairo-script-interpreter2 libcairo2-dev
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
  x11proto-xinerama-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
アップグレード: 0 個、新規インストール: 95 個、削除: 0 個、保留: 0 個。
1 個のパッケージが完全にインストールまたは削除されていません。
26.3 MB のアーカイブを取得する必要があります。
この操作後に追加で 144 MB のディスク容量が消費されます。
続行しますか? [Y/n]
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
libmail-sendmail-perl (0.79.16-1) を設定しています ...
libx11-doc (2:1.6.3-1ubuntu2.1) を設定しています ...
dh-strip-nondeterminism (0.015-1) を設定しています ...
debhelper (9.20160115ubuntu3) を設定しています ...
libc-bin (2.23-0ubuntu11) のトリガを処理しています ...
----------------------------------------------------------------------------------------------------------------

終わったのでもう一度実行します

---------------------------------------------------------------------------------------------------------------- ./install_flycapture.sh
This is a script to assist with installation of the FlyCapture2 SDK.
Would you like to continue and install all the FlyCapture2 SDK packages?
(y/n)$ y

Installing FlyCapture2 packages...
[sudo] oden のパスワード:
(データベースを読み込んでいます ... 現在 217083 個のファイルとディレクトリがインストールされています。)
libflycapture-2.13.3.31_amd64-dev.deb を展開する準備をしています ...
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
以前に未選択のパッケージ updatorgui を選択しています。
(データベースを読み込んでいます ... 現在 217090 個のファイルとディレクトリがインストールされています。)
updatorgui-2.13.3.31_amd64.deb を展開する準備をしています ...
updatorgui (2.13.3.31) を展開しています...
updatorgui (2.13.3.31) を設定しています ...
man-db (2.7.5-1) のトリガを処理しています ...
Would you like to add a udev entry to allow access to IEEE-1394 and USB hardware?
If this is not ran then your cameras may be only accessible by running flycap as sudo.
(y/n)$ y
 (ここではUSBカメラを管理者権限以外でも使えるようにするか聞いてくるのでyesにします以下はそのための作業です。)
Launching conf script

This script will assist users in configuring their udev rules to allow
access to 1394 and USB devices. The script will create a udev rule which
will add the 1394 cards and USB devices to a group called flirimaging.
The user may also choose to restart the udev daemon. All of this can be done
manually as well.  Please note that this script will change the permissions
for all IEEE1394 devices including hard drives and web cams. It will allow
the user to read and modify data on any IEEE1394 device.


Enter the name of the user to add to this user group.
(ここではユーザーネームを聞かれるので、ログイン時に表示されるアカウント名を打ちましょう)
$ oden
Is this user name ok?: oden
(ここからは確認なのでyesで大丈夫)
(y/n)$ y

Add user oden to group flirimaging.
Is this ok?:
(y/n)$ y

Writing the udev rules file.

Do you want to restart the udev daemon?
(ここでデーモン再起動してくれようとしますが最近はなぜかしてもカメラを認識しなくてマシンの再起動のが早いのでどっちでもいいです。)
(y/n)$ y
[ ok ] Restarting udev (via systemctl): udev.service.

Configuration complete. A reboot may be required on some systems for changes to take effect

Complete
----------------------------------------------------------------------------------------------------------------


少し長くなってしまったのでここから先は次回ということで...
続きはこちら

2019年4月13日土曜日

ssl-visionでUSBカメラを使う話

とてもお久しぶりなおでんです。


今回のネタはRobocupの小型機リーグ(通称SSL)で使用されるssl-visionという画像共有のソフトのお話です。というか卒研の後日談です。


僕SSLに関わっていた(いる?)のは、流れに身を任せた惰性によるものなのですが、なぜか研究もそれがテーマになっていました。

まあやっている理由はやりたかった制御系の研究室がなかったからというのが大きいですが、教授様のご厚意で基板の開発を行ってもよいといわれていたのでこの研究をしてる面もあります。


話を戻しまして、僕が行っていた研究は「ssl-visionで産業用USBカメラを動かす」です。実際のテーマ名は少し違いますが要約すればこうです。

これを行った理由は結構単純で、ノートパソコン1台でSSLの試合を行いたいという教授様のご希望を叶える上で、firewireのカメラだとノートパソコンに接続するのがめんどくさかったんです。
(あと世界的にはUSB3.0より帯域がしょぼくて将来性がないGigEカメラにシフトしようとしててたのが個人的に許せなかったゲフンゲフン...)

結構しょうもない理由で行ったあげく、3日くらいでeTDPの日本語文を書いて(英訳は教授様がしてくださった)世界大会の環境を実質的に変えてしまったのでほんとにあれなんですけど、まあそこら辺のことを備忘録兼ねつつ書いときます。


まあそんなこんなで,USB接続の産業用カメラ規格のUSB3VISIONカメラ(BFLY-PGE-05S2C-CS )の実機テストを行ってたわけですが、案外簡単に接続することができます。これにはいろいろなからくりがありまして...。先ほども書きましたが、firewireカメラもUSB3VISIONカメラも産業用カメラの規格名なのですが、何かと産業向けというものは下方互換性が求められる業界です。

そのため、ありがたいことにUSBカメラのドライバが,firewireカメラと同じように使えるようにfirewireライブラリのlib1394へデータを変換して飛ばしてくれます。そのため,きちんとメーカーの説明通りにカメラを使用できるようにするだけです。上記のカメラをつかえるようになってからこのからくりを知り、他メーカーも調べましたが、どうもどこのカメラでもそういう仕様にちゃんとなってるみたいですね。

そのため何も悩むことなく、どこのメーカーのUSB3VISIONカメラを使用した場合でもドライバ、又はそれに類するようなSDKなどをインストールすればきちんと動作するはずです。また、しっかりと互換性を保つように設計されているため、カメラのパラメーター変更などもそのまま行うことが可能です。


こんな感じに書くとちょろって思われるので問題になったことも書いておきます。

一つ目に問題になったのは、カメラをよくロストすることでした。普通に設定を行っているだけでssl-visionが固まるのです。これは最終的に仮想環境のコントローラーがゴミだったのと、エレコム製の10mの延長ケーブルがゴミだったのですが、これにかなり時間を取られました。ケーブルの大切さを改めて思い知らされました。きちんと純正の高級品を使いましょう(マジで。

二つ目に問題になったのは、SDKがubuntuにしか対応してないところです。これは多くの方には関係ないことですがfedoraでssl-visionをもともと用いていたのでこれが一番痛かった...。幸いubuntuでよくなったので事なきを得ましたが、ドライバやSDKがきちんと自分の用いたいLinuxのディストリビューションで使うことができるかきちんと確認を行いましょう。

てな感じで行ったのが卒研でした。ちなみにeTDPはこちらにあって性能比較やインストールの仕方など詳しく書いたり調べさせられました。あと他チームのeTDP読んでるとマイコンの流行りとかわかるので面白いです。回路やってる身としてはわりと世界の最先端とまではいわないですけど先端の技術に少しふれることができて興味深く読ましてもらえます。

何かここら辺のことで質問がありましたらtwitterでDMなりリプなり飛ばしていただければできる範囲で対応できるのでよろしくお願いします。
それでは
インストール方法を追記しました。