Flow-Developers

Raspberry Pi, Raspbian, python, ROS, IoT, 電子工作, 機械学習, Deep learning, ライフハック

Raspberry Pi 2で, Minecraft(マイクラ)ホームサーバーを作る

はじめに

  • Raspberry Pi 2が余ってたので、Minecraft(マイクラ)ホームサーバーを作ってみた。
  • ヘビーユーザーではないので、Raspberry Pi 2でも快適でした。
  • makecodeでMinecraftのプログラミングすると面白ですよ。

minecraft.makecode.com

作り方

  • ここを参考にしました。

www.makeuseof.com

  • 環境の更新を確認
sudo apt update
sudo apt upgrade
  • raspi-configでOverclockなど各種設定を行う
sudo raspi-config

->Advanced Options > Memory Split > 16MB
->Boot Options > Desktop/CLI > Console
->Overclock > High
->Advanced Options > SSH
->Advanced > Expand Filesystem
  • nukkitサーバー(マイクラサーバー)をinstallする
sudo apt install oracle-java8-jdk
mkdir nukkit
cd nukkit
wget -O nukkit.jar https://ci.nukkitx.com/job/NukkitX/job/Nukkit/job/master/lastSuccessfulBuild/artifact/target/nukkit-1.0-SNAPSHOT.jar
  • nukkitサーバー(マイクラサーバー)を実行する
cd nukkit
sudo java -jar nukkit.jar
  • nukkitサーバー(マイクラサーバー)の設定を変更する

https://sp.ch.nicovideo.jp/komnazsk/blomaga/ar1675635sp.ch.nicovideo.jp

sudo nano server.properties
-> max-players=5
  • nukkitサーバーのpluginをダウンロードしてインストールする

nukkitx.com

cd nukkit
sudo mv MobPlugin-1.9.0.1.jar plugins

ラズパイ起動時にnukkitサーバー(マイクラサーバー)を自動起動する

qiita.com

  • run_nukkit_server.shを作る
cd nukkit
nano run_nukkit_server.sh
  • run_nukkit_server.shの記述内容
#!/bin/bash

#run_nukkit_server.sh

### run server
cd home/hoge/nukkit/
sudo java -jar nukkit.jar
  • /etc/rc.localにrun_nukkit_server.shを追記する
cd /usr/local/bin
ln -s home/hoge/nukkit/run_nukkit_server.sh
sudo nano /etc/rc.local
  • /etc/rc.localの書き方.exit 0の前に.sh名を記載(root権限で実行される)
run_nukkit_server.sh
exit 0
  • 最後リブートしてrun_nukkit_server.shが起動しているか確認
sudo reboot
...(wait...)
ps aux | grep run_nukkit_server.sh

動きました(iphoneでサーバーに入った様子)

f:id:flow-dev:20200328190748p:plain

快適な自宅マイクラサーバーライフを。



iPhoneとopen3Dで快適な3D撮影! Sketchfabに公開

はじめに

  • iPhoneで3D Scanしても全周囲を綺麗に撮影するのは難しい.
  • なので,前面と後面を別々に撮影してから,open3Dで位置合わせした.
  • Sketchfabにuploadして3Dでグリグリ見えるようにした.

sketchfab.com



Capture: 3D Scan Anything

open3D

www.open3d.org

Point cloudを位置合わせするpythonコード

結果

  1. 前面と後面 f:id:flow-dev:20200314185812p:plain

  2. 位置合わせ後 f:id:flow-dev:20200314185832p:plain

  3. Outlier除去(赤が除外点) f:id:flow-dev:20200314185846p:plain

4-1. Outlier除去後(RGB) f:id:flow-dev:20200314185900p:plain

4-2. Outlier除去後(Y) f:id:flow-dev:20200314185920p:plain

4-3. Outlier除去後(Normal) f:id:flow-dev:20200314185936p:plain

5-1. mesh化

5-2. mesh化した領域

まとめ

  • きれいに仕上がると楽しいので,是非お試しください.

https://skfb.ly/6QVJsskfb.ly

UE4でカラーコレクションする(実践編)

はじめに

  • UE4でのカラーコレクションについて.
  • 色再現の異なる複数のカメラデバイスとCGを合成する場合に必要. www.unrealengine.com


LUTCalc

  • .cubeの3DLUTが生成できる.
  • ここで生成した3DLUT.cubeをUE4上で正確に反映させたい. cameramanben.github.io

UE4のLUTテクスチャ

  • UE4では,256x16のLUTテクスチャを使って, カラーコレクションを行うことが出来る. docs.unrealengine.com

LUTテクスチャのリファレンス

  • LUTテクスチャは0-255のRGB階調(Linear値)を16分割した画像.
  • UE4公式からDownload出来るが,内容を理解すため, コード化した.

f:id:flow-dev:20200310080538p:plain https://docs.unrealengine.com/Images/Engine/Rendering/PostProcessEffects/UsingLUTs/RGBTable16x1.png gist.github.com

LUTテクスチャのGammaとGamut

  • UE4上で動作検証した結果,デフォルト設定だと以下の通り.
  • UE4上はsRGB空間のRGB値扱いになっているので,その差分を3DLUT.cubeで生成すればよい.
  • LUTCalcで,Gamma:All->Linear/γ->sRGB(γ2.2), Gamut:All->sRGBを入力とする(出力はお好みで.)
Gamma Gamut
sRGB(γ2.2) sRGB

REDGamma4, REDColor4をターゲットに生成したLUTテクスチャ

  • REDGamma4, REDColor4をターゲットにLUTテクスチャを生成した.
  • UE4でテクスチャが適正露光になっている状態. ポストプロダクションはすべてオフ.

f:id:flow-dev:20200310082549p:plain

LUTテクスチャをUE4に取り込むときの注意

  • LUTテクスチャのpngファイルを取り込み後, Level Of Detailの設定を以下とする.(これをしないと正確に反映されない)
Level Of Detail
Mip Gen Settings -> NoMipmaps
Texture Group -> ColorLookupTable

f:id:flow-dev:20200326101414j:plain

UE4上で現像した結果

LUTなし(デフォルト色)
f:id:flow-dev:20200310082710p:plain
LUTあり(REDGamma4/REDColor4)
f:id:flow-dev:20200310082757p:plain

UE4とLUTCalcの結果を比較検証

  • UE4のLUTなし(デフォルト色)をUE4スクリーンショットした画像をLUTCalc上にLoadして,LUTCalc上でREDGamma4/REDColor4を掛ける.同一ソース画像を,UE4上でLUT現像した画像と,LUTCalc上でLUT現像した画像の比較結果.
  • Look上でほぼ一致していることを確認.

f:id:flow-dev:20200310083231p:plain

まとめ

  • LUTCalcで生成したLUTをUE4上で再現することが出来た.
  • これで,色再現の異なる複数のカメラデバイスとCGを合成する場合のカラーコレクションが容易となる.

付録

  • 出力値確認用のカラーチャート f:id:flow-dev:20200326101718p:plain

  • ffmpegで3DLUTを充てるコマンド

ffmpeg -r ntsc-film -i %d_img_rgb.png -y -threads 0 -b:v 100M -g 1 -vsync 1 -pix_fmt yuv420p -vcodec libx264 -r ntsc-film -vf lut3d="REDGamma4_REDColor4_0-Native.cube" output.mp4

参考リンク

リモート接続でコマンドラインから, Ubuntu 18.04 LTSの自動ログインを有効/無効にする方法

はじめに

  • リモート接続でコマンドラインから, Ubuntu 18.04 LTSの自動ログインを有効/無効にする方法です.
  • リモート環境でハマった時のために.

コマンドラインから自動ログインを有効/無効にする

$ sudo nano /etc/gdm3/custom.conf
  • 以下の2行から#文字を削除し、自動ログインを有効にする
  • ユーザー値「user1」の代わりにユーザー名を指定する

f:id:flow-dev:20200217093230p:plain



参考リンク

vitux.com

python-gphoto2をpython3に入れる.

はじめに

  • pipだとpython2.7にしか,python-gphoto2をinstall出来ません.
  • python3.6python-gphoto2をinstallするには,下記の方法が必要です.
  • 2020年2月現在. (python3以降の準備を進めましょう.)

方法

wget https://files.pythonhosted.org/packages/17/cf/ddc633af7644216217a8b85e094ebee0641cad220baa2632174b14a4d50d/gphoto2-2.1.0.tar.gz
tar xzf gphoto2-2.1.0.tar.gz
cd gphoto2-2.1.0
python3 setup.py build
sudo python3 setup.py install


参考リンク

gphoto2 · PyPI

flow-developers.hatenablog.com

libghoto2でliveviewを高速表示するためには、最新のlibghoto2(libgphoto2-2_5_19-release以上)を使いましょう

要約

  • Ubuntu 16.04で環境を作ると, libgphoto2-2_5_11(2016年リリース)がデフォルトでインストールされている場合がある.
  • libgphoto2-2_5_11が事前にaptでインストールされていると, gphoto2-updaterを使っても,libgphoto2がlibgphoto2-2_5_11のまま更新されない.
  • なので, "sudo apt-get remove libgphoto*"で,libgphoto2-2_5_11をuninstallしたのち, gphoto2-updaterでbuildすると最新のlibgphoto2環境となる.
  • SONY_DSLRのLiveView対応は,2017-2018年頃に行われており,libgphoto2-2_5_11(2016年リリース)では,3fpsのパフォーマンスしか出ない.
  • 最新のlibgphoto2環境(具体的にはlibgphoto2-2_5_19-release以降)のlibghoto2を入れることで25fps相当でLiveViewを描画できる.

libgphoto2-2_5_11のuninstall

dpkg -l
sudo apt-get remove libgphoto*
  • gphoto2-updaterで最新verにするなら,removeが必須.

gphoto2-updaterで最新のlibgphoto2とgphoto2をbuild&install

wget https://raw.githubusercontent.com/gonzalo/gphoto2-updater/master/gphoto2-updater.sh && chmod +x gphoto2-updater.sh && sudo ./gphoto2-updater.sh
  • これが便利なgphoto2-updater github.com

  • liveview support for Sonyが, 2017年1月ごろにコミット. github.com

  • Sony A7r II also is liveview capableが, 2017年1月ごろにコミットされ,コマ落ちに対応. github.com

  • Sony A7R2 preview is very slow and unstable #180 が,2018年6月ごろにコミットされ,25fps相当のLiveViewに対応. github.com

  • LiveView対応に関するPTPの記述はこの辺り,通信のコアはlibgphoto2で,gphoto2はCUIのラッパー github.com



gphoto2 --versionでversionを確認

gphoto2 --version
gphoto2: 2.5.23
libgphoto2: 2.5.23
てな感じで最新verで出力されればOK

time gphoto2 --capture-previewを実行して,30msくらいでliveviewが取得できればOK

time gphoto2 --capture-preview
で30msくらいでliveviewが取得できればOK

素晴らしき,LiveViewライフを! flow-developers.hatenablog.com

Pythonで高速にGUIを作りたければ,PySimpleGUIの一択

おすすめです!

  • PySimpleGUI、良いです!
  • Pythonで高速にGUIを作りたければ、PySimpleGUIの一択 !!!
  • 兎に角すぐ! pythonGUIが作れます。

github.com

サンプルコードはこちら

[https://github.com/MikeTheWatchGuy/PySimpleGUI/tree/master/DemoPrograms:title]

  • ここを時間を取って読んでみてください! 「とっても簡単!」ですよ。
  • Tkinter」と「Qt」を選ぶこともできます~

こんなのすぐ作れます!

  • やばいです。。。

https://user-images.githubusercontent.com/13696193/44959854-b1d23800-aec3-11e8-90b6-5af915a86d15.jpg



openCVと連携させたい方はこれ!

  • 88行OpenCV用のGUIが作れますよ。

[https://github.com/MikeTheWatchGuy/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV_Simple_GUI.py]

  • Raspberry Piで、ちょっとしたGUI作りたいとき。PySimpleGUIがおすすめです!