2019の振り返り
1月
Looking Glass 到着
やっとLooking Glass受け取った。さて何を出すか。 pic.twitter.com/dPzqOGz6SD
— higrademe (@EL2031watson) January 10, 2019
Cluster, VRChat初体験
- VRChatのすごさに感動するが、すぐにVR酔いしてしまう。
例のグラボ買う
Windows MR購入
- NorthStarMeetupで安いという情報を得たのでその場でポチる。
echo spot 導入
- カメラがついていて、アプリから遠隔監視ができるので、3Dプリンタの印刷状態を遠隔監視する用途に多用するように。
2月
NorthStarMeetup参加で刺激を受け3Dプリンターを購入(CR-10S)
3Dプリンターの進行状況を遠隔で確認出来るようにEcho Spotをプリンター前に置き、Alexaアプリで外出先から確認できるようにした。
— higrademe (@EL2031watson) February 9, 2019
単純だけどなかなか役に立つ。
プリント終了後にクールダウンして電源落とすところもなんとかしたい。 pic.twitter.com/8KyI21UKJH
3月
HoloLens 2の実寸大モックを作成
- 来日していたHoloLens 2の発表プレゼンをしていたMSの方からも賞賛の言葉を得る。
トルクヒンジを取り付けて、HoloLens 2のモックがフリップアップに完全対応。任意の角度で固定できて便利。 pic.twitter.com/nGVdLyHerb
— higrademe (@EL2031watson) August 10, 2019
Project North Star作成
- 3Dプリンターを使った初の大掛かりな製作作業。電源供給等でかなり手こずったが、なんとか動かせた。
今年の1月にアップデートされたProject North Star Update 3を製作した過程をまとめました。(と言ってもメモ書きみたいな感じ)
— higrademe (@EL2031watson) April 19, 2019
このやり方だとゼロから(と言っても3Dプリンター、工具は購入済みとする)作ると総額は5万近くになると思います。https://t.co/avPpcEmKZX#projectnorthstar
Davinci Color Mini購入
- 安くなってたのでカラープリンターに手を出してしまう。しかし狭い部屋に3Dプリンター二台はやりすぎだったことにあとで気づく(CNCフライスにしておけばよかったか)
4月
JetsonNano購入
Jetson Nano 入手 pic.twitter.com/kha4lZYgmz
— higrademe (@EL2031watson) April 6, 2019
xRTechで令和ことブルームと平成の手話で対応する文字を表示するアプリを展示
- 平成最後のxR Tech Tokyo
本日多くの方にNorthStar体験していただきました。ありがとうございます。
— higrademe (@EL2031watson) April 20, 2019
ちなみにどうでもいいですが、展示直前に改造してジェスチャーで額縁が上がって新元号が発表される仕様に変更しました。官房長官をセットにするところまでは間に合いませんでした...#xRTech pic.twitter.com/s2Zxe8ZpHe
Project North StarをT265で6DoF化
NorthStarにT265つけたら簡単に6DoF化した。アタッチメントの設計ミスってT265のカメラの下の方が少しLeapMotionで遮られるが、それでも位置トラッキングは結構良さそう。
— higrademe (@EL2031watson) April 23, 2019
あとはMapping...#projectnorthstar pic.twitter.com/NPDyHxP50X
5月
Jetson Xavierを購入。現在はxArmの制御用に使用。
やってしまった...
— higrademe (@EL2031watson) May 24, 2019
これでJetson TX2, Nano, Xavierの3つが揃ってしまった。
そして帰ったら不在票が3つも...
多分全部なんかのガジェット。1つしか心当たりがないのだが... pic.twitter.com/Izt36BrMKB
Oculus Questを購入
新しいガジェットを手に入れた喜びを昨日から味わいまくっている。
— higrademe (@EL2031watson) May 25, 2019
Oculus Quest pic.twitter.com/fjC4u1fsxA
6月
Structure Coreを購入
Structure CoreサンプルアプリをAndroid向けにビルドしてPixel3とCoreの直接接続でdepthとRGB表示出来た。
— higrademe (@EL2031watson) June 24, 2019
Mac向けにもビルドできて、少しソースいじったらrgbとかdepth mapとply形式の点群も保存できていたので、色々試せそう。 pic.twitter.com/KxdZInJB06
7月
ZEDを購入
Jetson Nano x ZEDモバイル点群メッシュ収集セットが完成した。
— higrademe (@EL2031watson) July 7, 2019
電力が結構ギリギリで、ZEDはセルフパワーUSB HUBにつなぎ、モバイルバッテリーで電力補助してJetsonNanoに入れている。ZEDそのままNanoにつなぐとアプリ起動時に落ちる。まあメモリもかなり厳しめのようだが、とりあえずZEDfuは使える。 pic.twitter.com/Vf3QZlc23k
Xtion Pro Liveを購入
Xtion pro Live がJetson Nanoで動いた。こちらもおそらく電力不足で直接つなぐと落ちたから、セルフパワーののUSBHubで電力を供給。 pic.twitter.com/9qM2oRHQKl
— higrademe (@EL2031watson) July 25, 2019
SR305を購入
とりあえずMacでlibrealsenseがビルドできたのでSR305を繋いでviewer起動したらSR300として認識された。やっぱ中身は... pic.twitter.com/cXIhA2aMok
— higrademe (@EL2031watson) August 1, 2019
8月
例のグラボで自作PCを作成、TensorflowをGPU使用で動かす
例のグラボ、例のマザボで2つ目の自作PC完成。取りあえずtensorflowいれてMNISTが動いた。マザボにPCIe 3.0が一つしかないため、PCIe 2.0につないでいる2つ目のグラボはROCmで使えず、意味なさそう。
— higrademe (@EL2031watson) July 31, 2019
グラボ一枚としてパーツ代は4-5万かな。諸事情により、CPUはPentiumでケースもまだ買ってないが... pic.twitter.com/TqiHvbaBpo
M5Stick VとCを購入
自作アイトラッキング装置を作成、xRTechで展示
自作アイトラッキングシステム、キャリブレーションして、なんとかそれっぽくアイトラッキングできるようになってきた。アプリケーションを作る時間がほぼなくなってしまった...
— higrademe (@EL2031watson) August 17, 2019
明日展示します。#xRTech pic.twitter.com/xWGwGvtYYz
第二種電気工事士に合格
第二種電気工事士に無事合格。初の業務独占資格だ。
— higrademe (@EL2031watson) August 19, 2019
これでIoT系の作業とかできることの幅が増えるはず。
Mediapipeのハンドトラッキングを試し性能の高さにびっくりする
Googleから公開されたmediapipeのハンドトラッキングをPixel3で早速試してみた。一部トラッキング失敗してるが、単眼でリアルタイムでかなりオクルージョンにも強く驚き。 pic.twitter.com/28ssCDOjqf
— higrademe (@EL2031watson) August 20, 2019
JetRacerを作成
NVIDIAの公開している #JetRacer 、ついに紙コップ(別名パイロン)で作られた円形のコースを自動走行成功。一箇所コップをふっとばすが、2周目そこをうまく避けるという技を披露して感心(そして彼走るの早い)。もっともコースが簡単でこれは難易度は低いかもしれないから、複雑な場所で試したい。 pic.twitter.com/umn7c6gWPC
— higrademe (@EL2031watson) August 25, 2019
Coral Dev Boardを購入
Edge TPUのボード、Coral Dev Boardのサンプルの顔認識プログラムををCoral Camera使って実行できた。120fps超えのようだ。 pic.twitter.com/J5yys7v8Yu
— higrademe (@EL2031watson) September 4, 2019
9月
JetBotを作成するが壊れる
JetBotの障害物避け、Nvidiaの公開している学習済みモデル使っただけでも結構うまく柱とか壁とか避けてて、良いなと思い、調子に乗って狭いテーブルで試してみたらこうなった...
— higrademe (@EL2031watson) September 14, 2019
被害総額はカメラ部分の破損により6000円くらい... pic.twitter.com/QVckNYKdQx
JetRacer作成記事を投稿
NvidiaのJetson Nanoを使ってラジコンを自動走行させるJetRacerの作成過程を以下の記事にまとめました。なかなか物品調達や3Dプリントや加工やらハードルは高いですが、参考までに。https://t.co/RWSPwK0KU7
— higrademe (@EL2031watson) September 11, 2019
Spot MiniにインスパイアされたSpot Microというオープンソースの四足歩行ロボの作成に着手(色は青白)
ついに自作4足歩行ロボットが歩行っぽい動作かできるようになった。と言っても色々問題があって右によってしまう...
— higrademe (@EL2031watson) October 5, 2019
PWMのサーボ12個、Jetson Nano。SpotMicroという某社ロボの小さい版のOSSプロジェクト。ソフトは取りあえず自作。IKの座標とかを間違えまくってかなり時間掛かった。 pic.twitter.com/3MzJIEbRgd
10月
回路Cadに入門、作成した基盤を実際に海外に発注
海外に発注した自作基板ついに到着。値段も安く到着までも1週間ちょっと。
— higrademe (@EL2031watson) October 28, 2019
届いた基板、設計通りだが初心者が作りました感に溢れる見た目... これでpca9685の制約を超えて6V以上、一応10Aまでサーボに電流流せるはず、なにか勘違いなければ... 全部同時にストールトルクに達するとまずいが... pic.twitter.com/jxg8hGQJhS
四足歩行ロボ第二世代を作成(色は青黒)
自作4足歩行ロボット、サーボをハイトルクに交換して、歩行パターンも改造してほんの少しマシになった。でもバランス崩すことも多くまだ安定して動くとは言えない。
— higrademe (@EL2031watson) October 21, 2019
4足歩行の歩容の情報が検索しても最近の論文ばかりで気軽に試せるのが見つからない... なにかいいのあったら教えて下さい。 pic.twitter.com/IcFcO4rEJL
11月
xArmをいじる。自動水やりを試しにやってみる。
少し前に届いてたxArmやっと動かす時間取れたので、取り合えずじょうごをテープでつけて水やりをさせてみた。
— higrademe (@EL2031watson) November 3, 2019
個人でロボットアームで遊べる時代?になったのはありがたい。 pic.twitter.com/mSYdWjSUuO
ラズパイ4を購入
とりあえずラズパイ4の起動からメニュー画面出るまでの温度計測をしてみた。
— higrademe (@EL2031watson) December 2, 2019
8倍速。よくわからないが、起動させるだけならこんなところか。
ちなみにCPUには反射しないようラズパイのケースについてきたテープを貼った。 pic.twitter.com/2AWLXNH587
12月
AI Carのアドベントカレンダーに投稿。初アドベントカレンダー参加。
「JetRacerの自動走行の仕組み」という題でAI RC Car Advent Calendar 2019の12/8の記事として投稿しました。
— higrademe (@EL2031watson) December 8, 2019
初めてのアドベントカレンダー参加で、しかも前日にJetRacerの調子が悪くなるという事件もありましたがなんとか1日で投稿まで持って行けたのでとりあえず一安心。https://t.co/Iir9PKjMAb
四足歩行ロボの骨折を機に足回りの改造、trot歩行に成功
4足歩行ロボット、予備で作ってた足に取り替え再度チャレンジ。
— higrademe (@EL2031watson) December 30, 2019
高速で歩くのに向くトロット歩行に成功。
驚異の時速0.67km/hを達成w
足のジョイント部をプラスチックから金属に変えて足位置がしっかり決まるようになったのが良かったと思われる。 pic.twitter.com/VoGKOy1kMo
総括
- 相変わらず色々ガジェットを買った。
- 3DプリンタでNorthStar, HoloLens 2のモック, JetRacer, JetBot, SpotMicroなどを作成し、3Dプリンターに大変お世話になった。
- 第二種電気工事士試験に合格、また回路cadでサーボモーターの電源供給用の自作基盤を制作し総じて電気系の知識が結構増えた。
- 去年まで継続して出していたアプリは今年作らなかったが、ハード制作系に初チャレンジ。色々難しさを知る。
- xArmをいじり初のロボットハンド操作を体験。購入したセンサー類などと組み合わせ、今後様々なタスクにチャレンジしたい。
- 四足歩行ロボットはやっと前進ができるようになった。今後深度カメラ or LidarとSLAM、深層学習等を組み合わせ自動で動くペットのような動きをさせたい。
JetRacerの自動走行の仕組み
JetRacerとは
Nvidiaが公開しているJetsonNanoを用いた自動走行カープロジェクトがあります。 github.com
前回の記事ではこちらの作り方を説明しました。
作った当時はとりあえずサンプルのJupyter Notebookをただ実行するだけで動かしていただけでした。 今回こちらで自動走行ができる仕組みについて少し調べてみました。
基本的なラジコンの仕組み
まず自動走行する以前に、JetRacerの改造前のラジコンについて考えてみます。
車本体の位置を制御することに関して、ラジコンのコントローラー(プロポ)からステアリング(Steering、進行方向)・スロットル(Throttle、進行速度)の2つの信号が車側の受信機に届き、値に応じて車に取り付けられている2つのモーターの動きを制御しています。

ラジコンの自動走行
ラジコンを自動走行させるには基本的には人間に変わり、何らかのセンサーを使い状況を認識し、判断を行いステアリング・スロットルを適切に制御することで自動走行を実現します。
現在の標準のJetRacerではスロットルはあらかじめ指定した固定値を常に維持し、車正面に搭載のカメラから得られた情報を元にステアリングの値を変化させることでコースに沿った走行が実現しています。
ちなみにJetRacerでスロットルを状況に応じて自動で操作するということは可能で、方法はいくつか考えられます(前に参加した大会ではステアリング角に応じた速度の値を決めることでコーナーでは低速、直線では高速にする改良を行い、タイムを大幅に縮めることができました)
スロットル制御については以下の記事でもmasato-kaさんが触れられていますので、興味のある方は参考にしてください。 masato-ka.hatenablog.com
カメラ画像からからステアリング角を決める仕組み
上で述べたように、自動走行には人間の目に変わりコースの形状・車の位置などを認識し、それに応じた制御をする必要があります。
こちらは実際の自動車の自動運転では車両前方につけたカメラで白線認識を行ったり、奥行きまで認識できるセンサー(Lidar、ステレオカメラ、ミリ波レーダー)などを用い、車の空間における位置関係を把握しステアリング・スロットルの判断を行うということが行われていると思われます。白線認識を行ったり、LidarなどのセンサーをJetRacerに搭載することも可能ですが、システムが複雑になったり、重量・価格などがネックになってしまいます。
もっともシンプルに自動走行を実現するには通常のWebカメラのようなカメラ1つ(単眼カメラと呼ばれる)からステアリングを直接推定することです。 そんなこと可能なのかと思われるかもしれませんが、近年人気のディープラーニングを使って、「画像を入力->ステアリング角を出力」を行ったという論文をNvidiaが数年前に発表しました。
End to End Learning for Self-Driving Cars (2016) https://images.nvidia.com/content/tegra/automotive/images/2016/solutions/pdf/end-to-end-dl-using-px.pdf
詳細は省きますが、内容としては「道路を走行中の画像」と「その画像を撮影した時点での車のステアリング角」のペアのデータを大量に収集し、CNNというニューラルネットワークにその関係を学習させ、走行中にその時点での画像から直ちにその時点で取るべきステアリング角を推定し実際にステアリング角を変化させるということを行っています。

JetRacerの自動走行もこの論文と同様の原理で自動走行しています。 唯一異なる点は論文のように実際の走行時のステアリング角を学習のターゲットとせず、各画像に付与した車が向かうべきターゲットピクセル座標(x,y)を使って正しいステアリング角を擬似的に作り出している点です。
具体的に見ていきましょう。
上記のレポジトリ内の jetracer/notebooks/interactive_regression.ipynb を順に実行することでデータ収集、学習を行うことができますが、実行して画像を収集していく過程で、TASKという変数名で指定した名前から始まるフォルダが、jetracer/notebooks内に作成されています。 そのフォルダ内のapex内に画像ファイルが以下のようなファイル名で保存されていると思います。 99_109_xxxxxxxxxxxx.jpg
このファイル名先頭の2つの数字が画像を保存する際にクリックしたピクセル座標x,yに対応しています。
なおこのファイルの保存の処理はnotebooks/xy_dataset.py内のXYDatasetクラスのsave_entry関数で行われています。
class XYDataset(torch.utils.data.Dataset):
(中略)
def save_entry(self, category, image, x, y):
category_dir = os.path.join(self.directory, category)
if not os.path.exists(category_dir):
subprocess.call(['mkdir', '-p', category_dir])
filename = '%d_%d_%s.jpg' % (x, y, str(uuid.uuid1()))
image_path = os.path.join(category_dir, filename)
cv2.imwrite(image_path, image)
self.refresh()
filenameを x_y_uuid.jpgという形式にしてフォルダに保存していることがわかります。 jupyter notebook上のカメラ画像の座標をクリックするごとにこの関数が呼ばれ、画像とターゲットのピクセル座標をファイル名内に入れて保持します。
ネットワークをトレーニングする際にこの画像とファイル名を読み込んで学習を行います。 なお実際にネットワークから出力するx,yの値はピクセル座標ではなく、画像サイズを元の値から割って得られる -1 から1の値です。
なおこの処理は上の画像を保存する処理が入っているnotebooks/xy_dataset.py内に記述されており、
class XYDataset(torch.utils.data.Dataset):
(中略)
def __getitem__(self, idx):
ann = self.annotations[idx]
image = cv2.imread(ann['image_path'], cv2.IMREAD_COLOR)
image = PIL.Image.fromarray(image)
width = image.width
height = image.height
if self.transform is not None:
image = self.transform(image)
x = 2.0 * (ann['x'] / width - 0.5) # -1 left, +1 right
y = 2.0 * (ann['y'] / height - 0.5) # -1 top, +1 bottom
if self.random_hflip and float(np.random.random(1)) > 0.5:
image = torch.from_numpy(image.numpy()[..., ::-1].copy())
x = -x
return image, ann['category_index'], torch.Tensor([x, y])
の中の
x = 2.0 * (ann['x'] / width - 0.5) # -1 left, +1 right y = 2.0 * (ann['y'] / height - 0.5) # -1 top, +1 bottom
でターゲットのピクセル座標ann['x']、ann['y'] がそれぞれ-1 ~ 1 に変換された x,yになっていることがわかるかと思います。
お気づきかもしれませんが、このターゲットのピクセル座標を予測しても、実際のステアリング角とは異なるので、通常は予測結果をそのままラジコンのステアリング角には使用できません。
JetRacerではこの予測したピクセル座標(-1~1に正規化)のxの値をそのままステアリング角とみなします。ステアリング角も-1~1の範囲に正規化されているため、例えばもっとも左にステアリング角を取るとき(steering = -1)はx=-1となり、もっとも右にステアリング角を取るとき(steering = 1)はx=1となります。

このxの値をそのままステアリング角とみなすというのはやや極端かと思いますが、カメラが車体進行方向に対してまっすぐに取り付けられているとするならば、画像の真ん中を境にマークの位置に応じて左右のステアリング値に直接変換するというのはもっとも簡単で手軽な方法の1つだと思います。
実際の画像を見ていただくとわかりますが、真ん中から左側をクリックするときはステアリングは左、右側をクリックするときはステアリングは右になっていそうなことがわかると思います。

ピクセル座標の値をステアリング角とみなして、実際にラジコンにステアリング指示を行う処理はjetracer/notebooks/road_following.ipynbの最後のセルに記述されています。
import numpy as np
STEERING_GAIN = 0.75
STEERING_BIAS = 0.00
car.throttle = 0.15
while True:
image = camera.read()
image = preprocess(image).half()
output = model_trt(image).detach().cpu().numpy().flatten()
x = float(output[0])
car.steering = x * STEERING_GAIN + STEERING_BIAS
の中の
x = float(output[0])
car.steering = x * STEERING_GAIN + STEERING_BIAS
の部分が、学習済みモデルに画像を入れて出力されたピクセル座標のxの値を取り出し、ステアリング角(car.steering)に変換している部分です。 実際の処理ではSTEERING_GAINという値をかけることで、ステアリングの値を多少小さめに指示する操作を行っています。こちらの値は使用するラジコンの最大ステアリング角等を見て調整することでより性能の良い自動走行を実現できると思われます。 またSTEERING_BIASはステアリング値に一定値を常に加える処理ですので、カメラが車体本体から左右にずれていたり、重力の軸周りに回転してしまっている場合あるいはラジコンのステアリング機構自体の左右へのズレを補正するためのもので、そういうズレがなければ通常STEERING_BIAS=0.00で問題ないと思います。
ピクセル座標のyの値は標準のJetRacerでは使用しておりませんが、こちらは画像をクリックしてアノテーションを行うときのことを考えると、奥行き方向に関連する情報を持っている可能性があると思いますので(コース上をクリックするとするならば視界の先をどれだけ見渡せるかで速度を出せるかどうかの目安にできる?)、速度(throttle)に関する制御に使えるのではないかと考えられます。
以上で簡単ですが、JetRacerの自動走行の仕組みについて自分の理解の範囲で解説させていただきました。 勘違いや、JetRacerの自動走行の仕組みについてより詳しい背景等ご存知でしたら是非ご指摘願います。
JetRacerの組み立て
NVIDIAからJetson Nanoを使ったAI自動走行車JetBotに続く、JetRacerが発表されました。 github.com
こちら市販のラジコンカーにJetson Nanoとカメラを取り付け、カメラの画像からその時点でどちらに転舵すべきかを機械学習で学習させ、それを元にラジコンカーを自動走行させるというものです。
参考動画:
NVIDIAの公開している #JetRacer 、ついに紙コップ(別名パイロン)で作られた円形のコースを自動走行成功。一箇所コップをふっとばすが、2周目そこをうまく避けるという技を披露して感心(そして彼走るの早い)。もっともコースが簡単でこれは難易度は低いかもしれないから、複雑な場所で試したい。 pic.twitter.com/umn7c6gWPC
— higrademe (@EL2031watson) August 25, 2019
JetBotと異なり、ラジコンカーならではのスピード感ある自動走行を楽しむことができます。(もっと大きい場所でより複雑な形状のコース作って試してみたいが、なかなか東京付近で場所がない... どなたか場所の提供 or いい場所を教えてください...)
ラジコンカーに馴染みない方向けに簡単に補足しますと、今回取り扱うラジコンカーは二つのモーターから構成されており、
サーボーモータ
- 角度を細かく調整できるモータ
- 前輪の回転軸をサーボーモーターによってずらし、ラジコンカーの進行方向を左右に変更する。
DCモーター
- 角度は細かく調整できないが高速で回転させられる
- 前後輪を回転させ、ラジコンカーを前進・後進させる。
という役割を担っています。 デフォルトのJetRacerではDCモーターは常に一定速度で動かし、カメラから得られた情報からサーボーモータをどの程度動かすかを決め、サーボーモーターにそれを伝え、コースアウトしないように走行することで自動走行を実現しています。
今回こちらをパーツの仕入れから、実際に動かすまで一通りやってみたので、その過程をまとめました。なお車体はlatraxというものとtamiyaの2通りありますが、日本で入手しやすいtamiyaのシャーシのものを作成しました。
作成に関する注意事項
作成部品の入手難易度はやや高めかと思います。その理由は、
- パーツ合計がやや高額になる。(3Dプリントパーツ無しでも5万ぐらい?)
- 3Dプリントするパーツが3点ある。(ボード類取り付け用のベース板、シャーシへの穴あけ用の補助板、カメラモジュール取り付け台)
- まあまあ分厚いシャーシに穴あけするボール盤などの道具を利用する必要がある。(私はDMM.make AKIBAを利用しました。固定を接着剤とか別の方法でやるなら不要かもしれません)
一方で上の3つがクリアできれば組み立ては配線系が少しややこしいことを除けば、ラジコンの知識はほぼなくてもできます。
ただし注意事項として、ラジコン本体・プロポ(ラジコンのコントローラー)の調達はよく調べたほうがいいです。 私の場合、横着をして、シャーシ・プロポ・バッテリー・バッテリー充電用ACアダプタセットのものを買ってしまいました。(これと単三電池4本を買うだけで、ラジコンとして遊ぶことができる)
しかしプロポが2つの信号(進行・後退と左右転舵)しか送れない2chのものだったので、公式で推奨している3chのものとは異なり、プロポから自動走行or手動走行を切り替えることができませんでした。このままだと学習させる時、面倒だったので結局3chプロポを買って受信機を取り替えました。 ただし、マルチプレクサを経由せずモータードライバからの信号or受信機からの信号の配線を手で繋ぎ変えて手動・自動を変えることはできますので、予算厳しい方は私と同じく2chの車体・プロポセットを購入すればマルチプレクサなしで最低限手動自動共にJetRacerを動かすことはできます。
なお3chプロポを最初から使うと言う方は、シャーシ、プロポ、受信機、サーボモータ、ラジコン用バッテリー、ラジコン用ACアダプタを個別で調達すると安く上がると思います。
パーツ一覧(購入するもの)
3Dプリントが必要なパーツ
- ボード類を取り付けるベース板
- シャーシに穴あけするときに穴あけ位置を特定するための補助板
- カメラモジュールを取り付ける台
組み立て
基本的にはこちらに従って組み立てます。 jetracer/hardware_setup.md at master · NVIDIA-AI-IOT/jetracer · GitHub
フェーズ1 (シャーシの穴あけ、モーターカバーの除去、スタンドオフの取り付け、受信機の取り付け)
シャーシに穴あけするため、上で3dプリントした2番の補助板をシャーシの裏側(地面側)にテープなどで固定します。この際3dプリントした板の突起がある部分がシャーシ裏側のネジ部分と一致するはずです。(一部ネジを取り外さないとはみ出るので適宜ネジを外す)
補助板に空いている3mmの穴4箇所をターゲットとして3mmドリルで穴あけ、シャーシまで貫通させます。
(オプション) ネジの皿部分がシャーシからはみ出ないように上の4つの穴に対して、皿穴加工をします。私は適当に6,7mmぐらいのドリルで数ミリ穴あけしました。(公式のStep2 Countersink)
シャーシ表側のDCモーター付近のカバーを外します。(大きなモーターの方) これがあると、あとでベース台を固定するときに邪魔になるかと思います。

モーターカバーを外したシャーシ 先ほど開けた4つの穴を通じて、シャーシにM3x8mmのネジでスタンドオフを取り付けます。

シャーシ背面図 (オプション)受信機を3chプロポ対応のものに取り替えるor取り付けます。 車体・プロポセットで買った方はシャーシに2ch用の受信機が付いていますが、こちらを取り外します。粘着力強めの両面テープで付いているだけですので頑張って外してください。


2ch用の受信機を外した後、3ch用の受信機を取り付けます。

フェーズ2(3Dプリントしたベース板に各種基盤を取り付け)
マルチプレクサをM2x8mmのネジ2つでベース板に取り付けします。2箇所だけで少し不安なので、ネジのない側に何か台なり設置したい気はします...
PWMサーボモータードライバーをM2x8mmのネジ4つでベース板に取り付けします。
Jetson Nanoを M2x8mmのネジ4つでベース板に取り付けします。
カメラモジュールのカメラ部分をIMX219のカメラに取り替え、カメラモジュールを3Dプリントしたカメラ台にM2x8mmネジ4つで取り付けます。カメラモジュールのコネクターをJetsonNanoに取り付けます。さらにカメラ台をベース板にM2x8mmネジ4つで取り付けます。最後にカメラモジュールとJetsonNanoを接続します。ラズパイ公式のカメラモジュール仕様の場合、ケーブルが半ねじりの状態になってしまいます。
USB WiFiアダプタをJetson Nanoに取り付けます。
フェーズ3 結線
- Jetson Nanoとモータードライバの接続
これによって、JetsonNano側から来る前進・後進・右転舵・左転舵の指示をモーター側に伝えることができるようになります。1ピンのジャンパーケーブル1つと、3ピンのジャンパーケーブル1つを取り付けします。
Jetson側
- 1ピンジャンパーはGNDに接続します。(図のJetsonNano上のGPIOピン上、右列側の黒線)
- 3ピンジャンパーは3V3, 3番, 5番 に接続します。(図のJetsonNano上のGPIOピン上、左列側の黒線(3V3)・赤線(3番)・白線(5番) )
サーボモータードライバー側
- 1ピンジャンパーはGNDに接続します(図の下側のモータードライバ上の一番上の黒線)
- 3ピンジャンパーはVCC(黒線), SDA(赤線),SCL(白線)に接続します。
なお、JetsonNanoとモータードライバ間の3ピンの結線は以下のような対応になります。
- 3V3 がVCCに(黒)
- SDAが3番に(赤)
- SCLが5番に(白)

- サーボモータドライバとマルチプレクサの接続
マルチプレクサとはA,Bという二つの信号のどちらかをCから出力するという時にDという別の信号によって電気的にA・Bを切り替えることができる装置です。今回、A・Bの信号はJetsonNano・プロポに対応し、マルチプレクサを使うことで、自動走行or手動走行を切り替えすることができるようになります。
具体的には図のようにマルチプレクサを上から見た図で、
- M1~M4 (上の例でいう信号Aたち。Masterの略か)
- S1~S4 (上の例でいう信号Bたち。Slaveの略か)
- Out1~Out4(上の例でいう信号C。ここをモータに繋ぐことでM1~M4 or S1~S4のどちらかの信号がモーター側に伝わります。 )
- SEL (上の例でいう信号D。M1~M4 or S1~S4の切り替えを担当)
となります。

二箇所取り付けます。 この時向きはGND通しが繋がるように注意してください。
- サーボモータドライバ上の0番(黒赤黄上でJetsonと接続したピンから最も近い方)をマルチプレクサのS1に接続。(転舵信号を担当)
- サーボモータドライバ上の1番(黒赤黄上でJetsonと接続したピンから最も近い方)をマルチプレクサのS2に接続。(前進・後進の信号を担当)

- 受信機とマルチプレクサの接続
マルチプレクサのM1,M2,SELを受信機の1番・2番・3番と接続します。この接続によりプロポからの操作信号(転舵・前進後進・手動自動運転の切り替え)をマルチプレクサに送ることができるようになります。マルチプレクサのGND側のピンと受信機の右側のピンが繋がるように注意してください(図では黒線)

- マルチプレクサとサーボモータ、ESCの接続
上の手順でマルチプレクサにJetsonNano(自動運転)とプロポ(手動運転)の信号が入るようになり、この二つはSELの信号によって切り替えられるようになっています。さらにこの信号をサーボモータとESCに送り実際にモーターを動かせるようにします。
なおESC(Electric Speed Controller)は前進後進を行うDCモーターに電流を供給する装置です。入力として駆動信号とバッテリーからの電流の二つをもち、駆動信号を増幅してモーターに駆動に十分な電流を供給します。放熱用のファンがついているものです。
以下の二つの接続を行います。 なおいずれも黒線がマルチプレクサのGNDに接続されるように気をつけてください。
- サーボモータ(受信機の下に付いている)とマルチプレクサのOut1の接続(図で左側の指あたりから出ているESCの赤白黒の線)
- ESCとマルチプレクサのOut2の接続(図で右側の指あたりから出ているサーボモータの赤白黒の線)

フェーズ4 最終組み立て
JetsonNanoなどが取り付けてあるベース板をM3x8mmのネジ4つを使ってスタンドオフに取り付けます。これによってベース板がシャーシに固定されます。

以上でハードウェア部分は完成です。気が向いたら、別の記事でソフトウェア部分について書こうと思います。
Coin Roller Master Privacy Policy
Privacy Policy
hygradme built the Coin Roller Master app as a Free app. This SERVICE is provided by hygradme at no cost and is intended for use as is.
This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.
If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy.
The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at Coin Roller Master unless otherwise defined in this Privacy Policy.
Information Collection and Use
For a better experience, while using our Service, I may require you to provide us with certain personally identifiable information, including but not limited to None. The information that I request will be retained on your device and is not collected by me in any way.
The app does use third party services that may collect information used to identify you.
Link to privacy policy of third party service providers used by the app
Log Data
I want to inform you that whenever you use my Service, in a case of an error in the app I collect data and information (through third party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing my Service, the time and date of your use of the Service, and other statistics.
Cookies
Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.
This Service does not use these “cookies” explicitly. However, the app may use third party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.
Service Providers
I may employ third-party companies and individuals due to the following reasons:
- To facilitate our Service;
- To provide the Service on our behalf;
- To perform Service-related services; or
- To assist us in analyzing how our Service is used.
I want to inform users of this Service that these third parties have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.
Security
I value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and I cannot guarantee its absolute security.
Links to Other Sites
This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by me. Therefore, I strongly advise you to review the Privacy Policy of these websites. I have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.
Children’s Privacy
These Services do not address anyone under the age of 13. I do not knowingly collect personally identifiable information from children under 13. In the case I discover that a child under 13 has provided me with personal information, I immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact me so that I will be able to do necessary actions.
Changes to This Privacy Policy
I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately after they are posted on this page.
Contact Us
If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact me.
This privacy policy page was created at privacypolicytemplate.net and modified/generated by App Privacy Policy Generator
Project North Star Update3 の作成
はじめに
1月に機構がアップデートされたProject North Star Update 3を作ってみました。 きっかけは今年の初めに参加した某ミートアップで結構多くの人が3Dプリンターを所持しているようで私も買わないとこのビッグウェーブに乗れないなと思い、6万ぐらいのプリンターを買いました。買ったプリンターを有効活用したいと思い色々考えて、Project North Starのことを思いつきました。 周りの人の話で、リフレクターを仕上げるのが難しいという話で大変そうだなとは思っていましたが、ちょうど参加したミートアップですでに出来上がったリフレクターが買えるという話を聞き、それなら結構簡単にできるのかもと思い製作を決意しました。
作成の結果感想としては、
- パーツのプリントに時間が結構かかる(私のプリンターで1週間ぐらい)。そしてプリントしてたものが歪んでてショックだったことも...
- 図面通りのネジ、部品が日本では入手困難なものがある。
- 部品が揃えば組み立て、アプリ立ち上げはそんなに大変じゃない。
- 自作ガジェット(とは言っても説明書通りに組み上げただけだが)を作った達成感を味わえる。
と言ったところです。
懸念として現在、私が購入したディスプレイのドライバーボード(https://www.smart-prototyping.com/Project-North-Star-Display-Driver-Board)が品切れのようで、すぐに入手できないと思われます。ドライバーボード、ディスプレイ基盤が入手できない場合はexiiiさんが公開されている簡易版(https://exiii.jp/2018/07/19/project_north_star_jp-2/)を製作すると良いと思います。 というか基盤系の入手難易度が理由だか、この記事のようにgithubのProjectNorthStarのレポジトリみて作るほうがマイナー? とりあえず可能な限り忠実にgithubのProjectNorthStarのレポジトリの指示通りに作成しましたが、結構お金かかるのでお気をつけください。 なおPCはWindows10、GTX1070 Max-Qのものを使用して動作確認しました。 また説明が結構適当でメモ書きみたいになっており申し訳ございませんが、不明点があれば質問願います。
材料費
- 基盤: $80 (約9000円)
- ディスプレイx2 :$65x2 (約14500円)
- リフレクター: $40 (約4500円)
- LeapMotion: 9900円
- 3Dプリンターフィラメント代: 1000円ぐらい?
- MiniDisplayPort-DisplayPortケーブル:2000円
- USB2.0ケーブル:200円
- ボルトナットスプリング類:計4000円?
- ジャンパーワイヤー:500円程度?
- (溶接ヘルメット 3000円)
概算で48700円ですね。もっともジャンパーワイヤーやLeapMotionなど過去に買っていたものを流用したので、実際は3万程度追加で使ったかなという印象です。
手順説明
設計図などのダウンロード
githubのレポジトリを一式ダウンロードします。特にMechanicalのなかの North Star Release 3 3D Files/3D Printing STL.zip にフレームの3Dデータ(.stl)が保存されているので、こちらを解凍します。 GitHub - leapmotion/ProjectNorthStar: The open-source files comprising Leap Motion's Project North Star AR Headset. こちらの部品を揃えていきます。
購入が必要なパーツ
- LeapMotion: 私は前から持っていましたが、最近はどこで買うのがいいのでしょうか? とりあえずアマゾンでありそうだったので貼っておきます。
基盤(ディスプレイ用のドライバーボード) 左右のディスプレイを接続できるようになっています。またminiDisplayPortを搭載しており、PC側DisplayPortで接続します。 $80かかります。 Project North Star Display Driver Board
ディスプレイ(1440x1600) x2
リフレクタに投影する映像を表示します。こちらが二つ必要です。$65 x 2=$130かかります。 www.smart-prototyping.comリフレクタ 反透過で現実空間を観れる一方、現実空間にディスプレイの映像が重ねられて表示され、AR体験ができます。 こちらは左右で1セットになっています。$40です。 Project North Star Lens
DisplayPort Mini - DisplayPort ケーブル 上述基盤とPCを接続します。Smart PrototypingのHPには1mのケーブルが良いということでしたが、2mのケーブルでもいけました。
https://www.yodobashi.com/product/100000001002134414/
- 5V電圧供給用ケーブル: 基盤に+-のピンが取り付けられており、そこに5V電圧で電力供給する必要があります。お手頃なのは安いUSB2.0ケーブルを買ってきて、USB Aオス側を残して逆側を切断し、電源供給用の線2本をジャンパーワイヤーと接続してピンに取り付けるのが楽だと思います。(USB 2.0ケーブルはなんでも良いと思います。私は秋葉原で200円ぐらいのものを買ってきました)
配線4本のうち、5V電圧の+-となる赤黒のみを使用します(データ転送用の緑白は使いません) なお基盤の販売サイトにも注意書きとして書いてますが、基盤のピン二つの+(赤、MiniDisplayPort側)と-(黒、MiniDisplayPortからみて奥側)の順序を間違えないようにしてください。逆流防止のダイオードは組み込まれておらず、最悪基盤が破損するようです。

(参考)USB2.0の生贄ケーブルですが、アマゾンで調べたらこの辺りがヒットしました。 Amazon CAPTCHA
ジャンパーワイヤ:上記のUSB2.0ケーブルの赤黒の導線を接続し、基盤に刺して電力を供給します。 (参考) https://www.amazon.co.jp/uxcell-%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97%E3%83%AF%E3%82%A4%E3%83%A4-%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%91%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%BC-1%E3%83%94%E3%83%B3%E3%83%97%E3%83%A9%E3%82%B0-%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%BC/dp/B01BV68CYW/ref=sr_1_19?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%91%E3%83%BC%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB&qid=1555133234&s=diy&sr=1-19
ボルト・ナット類
M4x0.7ナット(660-001) ヘッドセットのメインフレーム(パーツ番号110-001)と左右のレール状の部分(113-000,114-000)を固定するためのものです。こちらは110-001側に取り付けます。下のセットにM4用のナットがあるので、そちらを買えば不要かもしれないです? Amazon CAPTCHA
M4x20mm ,M2x8mm ボルトなどを含むボルト・ナットセット。 M4x20mm(640-002): ヘッドセットのメインフレーム(パーツ番号110-001)と左右のレール状の部分(113-000,114-000)を固定するためのものです。こちらはセットになっており、次に記載しているM2x8mmも入っております。ただし20本しか入っておらず、足りません... M4x20mm単体で手に入るならそれを買ったほうがいいかもしれません。 https://www.amazon.co.jp/gp/product/B07PB8MDDT/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&psc=1
M2x8mm(650-001) : こちらはいろいろなところで使うので(図面中には28本分登場する)、追加で購入しました。 www.amazon.co.jp
M2.5x6mmボルト(640-001):20個以上? ただしプラスチックが仕込まれていてパーツに溶け込む特殊なM2.5ナット?( 690-001)が入手できず実際あまり使用しませんでした。 Amazon CAPTCHA
ワッシャー(670-001): こちら完全に失念してました。M4x20mmのボルトと使うようです。オススメのものあれば教えてください。
ヘッドバンド 公式の図面のパーツだけだと、頭に固定できないので、溶接用ヘルメットのヘッドバンド部分を使いました。 ヘッドバンド単体のものもAmazonで注文したのですが、未だ届かず、Prime対応のものを追加購入しました。 Amazon CAPTCHA
今なら単体のものも再入荷しているようです。 Amazon CAPTCHA
- 3Dプリンター用フィラメント(黒) 私の保有している3Dプリンター(CR-10S)で使用したフィラメントです。他のものでもいいと思います。なお3Dプリントを外注する方は不要です。 https://www.amazon.co.jp/gp/product/B07KXSWHBB/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1
3Dプリントが必要なパーツ
3Dプリンターは初心者でいまいち適切な設定がまだわかっておりませんが、 普通にstlファイルをスライスソフトで読み込み、接地面が最大になりそうな方向に回転させ、65mm/s、積層ピッチ0.2mm、ラフトありで印刷しました。 以下がプリントが必要なパーツです。
メインフレーム側
HMDメインフレーム(110-001) メインとなる部分。ディスプレイ、リフレクターを取り付けるフレームとなります。一番綺麗に印刷したほうがいいパーツだと思います。ちなみに私のプリンターなら分割なしで印刷できましたが、0.2mm積層ピッチで14時間ぐらいかかりました。
Facial インターフェース (115-001):おでこと接触するパーツ。
Leapmotion固定フレーム(120-001): Leapmotionを取り付けるフレームで、メインフレームの上側に来るパーツです。次に説明する基盤を取り付けるパーツ121-000がその上にきます。
基盤固定フレーム(121-001): 基盤を取り付けるパーツです。 上記のLeapmotionを取り付けるフレームの上にくるパーツです。
基盤固定パーツ(121-002): 基盤のMiniDisplayPort付近を固定するパーツです。ただこれをつけると基盤の5Vピンとぶつかってしまうのと、なくても一応なんとかなるので組み立て時は使用しませんでした。Release3.1バージョンではピンの部分がかけていて、ピンが通せるようになっているみたいです。
上蓋(120-002): 上記の基盤を取り付けたパーツ121-001を上から蓋するパーツです。T265とかD435iとかStructure Coreで6DoF化したり、Mappingしたりする場合はここを差し替えるのだと思います。
Display固定パーツ(111-001:左 112-001:右 または 111-002:左 112-002:右) ディスプレイをはめ込み、メインフレームにディスプレイを固定させるためのパーツです。薄くてディスプレイとリフレクターへの距離が遠くなるバージョン(111-001、112-001)と 厚くて距離が近くなるバージョン(111-002、112-002)の選択になります。私は組み立ての部分で述べますが、薄いバージョン(111-001,111-002)を選びました。
頭部側面関連
メインフレーム接続パーツ 左右 (113-000,114-000) メインフレーム(110-001)とスライド式の側面パーツを繋げる部分です。スライド機構のレールとなるパーツ(900-005)をM2.5ボルトで固定します。
スライド機構用レール(900-005) x2 スライド部分(230-002,240-002)を通して、HMDを前後に調整できるようにするためのレール部分です。図面では6061のアルミニウム合金を使用するよう指定されていますが、加工が大変そうなので、こちらも3Dプリンターで作成しました。なお、レールの断面部分は少し小さめに(1mmぐらい)印刷しないとスライド部分をレールに通した時キツキツとなってしまい可動できなくなるので注意が必要です。
レール終端キャップ(110-002)x2 レールからスライド部分が抜け落ちないようにストッパーとなる部分です。
頭部上面固定関連
スライド部分(230-002,240-002) レールを通して、HMDを前後調節できるようにするパーツです。
スライダー取り付け部分(複合パーツ番号230-000,240-000)
- 円形状パーツ(220-001) x2
- 円形状パーツ(220-002)x2
- S形状のパーツ(230-001,240-001) 左右
- スライドブレーキ(230-003,240-003) 左右
- ケーブル止めフック(230-004,240-004) 左右
頭部上面メインパーツ(210-001) おでこ辺りの1/4ドーム形状のパーツです。
頭部上部頭側パーツ(210-002) 上の1/4ドーム形状のパーツの内側に取り付けるパーツです。本来はウレタンフォームなどをここに挟んで頭へのクッションにするものと思われます。 なおこちらのパーツ印刷後にドーム形状のパーツに沿うように曲げないといけませんが、私はコンロで炙りながら少しづつ曲げました。
組み立て
基本は図面通りに組み立てていけば大丈夫です。 私は以下の順に組み立てました。(NorthStarの図面を転載)
左右のレール部分を組み立て

sideframe メインフレームにディスプレイ、左右のレールを取り付け
なお図面中の3番(690-001)の特殊なナット(加熱しながら部品の穴に入れると溶けて入り込む)が入手できなかったため、薄いバージョンを選び、4箇所の穴を少し広げ、ディスプレイ側からM2のナットを入れ、メインフレーム側からM2x8mmボルトで固定しました。なお図面でM2.5ボルトとM2.5の特殊ナットを使うペアが何箇所が出てきますが、ナットが手に入らないため全て無視しました。


基盤を基盤用の台に取り付け

基盤の台をLeapMotionを搭載する上側フレームに取り付け、上蓋で閉じる。上蓋で閉じる前に基盤へMiniDisplayportを繋いで、上蓋の溝にケーブルを合わせて閉じるとケーブルがすっぽり埋まって良い。

上側フレームをメインフレームに取り付け。

レールに通すスライダーの作成(左右対称)

頭の上に乗るドーム部分の作成。なお3,4番はそのままつけるのではなく、6で作成したスライダーの穴に通してからつけるものと思われる。

スライダー部分とメインフレーム部の結合

完成図

なお図面の通りに組み立てて完成させても、頭に組み立てたNorthStar一式を固定することができず、ヘルメット形状の何らかの支えが必要になります。 他の方もよくやっているようですが、溶接ヘルメットの頭部固定部分を流用しました。 なお面の部分無しバージョンが配達に時間がかかるようで、一方面付きのバージョが3000円でしかもPrimeで買えるのでこちらを買いました。面はそのうち溶接したくなった時に有効活用します。
ディスプレイの接続確認
ディスプレイドライバーをMiniDisplayPort経由でPCに接続および電源をUSBなどで供給(PCなどのUSBポートですと電力供給不足でディスプレイがチカチカするだけで起動しないなどのことがあるので、USB電源アダプター経由で電源供給してください。なお私は当初5V-2.4Aのアダプタを使おうとしていましたが、電力供給が足りないらしく5V-3Aのものを追加購入しました。当初は5V-2AのアダプタとUSBケーブルを二つ用意し、並列でつなぎ電流をあげていましたが、試行錯誤しているうちにケーブルを買い換えたのもあるのか、5V-3A、USBケーブル1本で供給が十分になりました。
ディスプレイがしっかりと表示されたら、PCからNorthStarのディスプレイ2枚が1枚の追加ディスプレイとして認識されているはずです。ディスプレイ設定で「ディスプレイの拡張」を選択してください。 PC側ではNorthStarの2枚のディスプレイを1枚と認識しており、ここに真ん中で半分に分かれた映像を表示し、それが左右のリフレクターにそれぞれ投影され立体的に見えるという仕組みです。スマホVR・ARの仕組みに近いと思います。
アプリ起動
LeapMotionのドライバーのダウンロード
必ずLeapMotionのgithubのページのzipを解凍してexeを実行してインストールしてください。(公式サイトのものだと動かなかったです) 確認時点ではLeapDeveloperKit_4.0.0+52238_win.zipというファイル名でした。 UnityModules/Multidevice Service at feat-multi-device · leapmotion/UnityModules · GitHub
Unity2018.2 以降?のダウンロード
2018.2以降が必要であることが、Project North Starのレポジトリのページに記載されています。
LeapMotionのUnity Plugin(unitypackage)のダウンロード、プロジェクトへの読み込み。
githubのProjecrNorthstarページからpackageをダウンロード、Unityプロジェクトにインポートしてください。 github.com
サンプルシーンはAssets->Plugins->LeapMotion->North Star->Scenes->NorthStarです。
キャリブレーション
ヒエラルキーのAR CameraRigのwindow Offset ManagerのX Shiftの値を変更して、NorthStar実機のスクリーン上にゲームシーンが表示されるように調節してください。 値変化後にMove Game View to Headsetを押すことで画面を表示することができます。(押せば押すほどゲームビューが増殖するので、適宜Close all Game Viewsを押してゲームビューを消してください。
また、AR CameraRig->Head -> Leap Providerのxyzを変更することで、手の表示位置を調整することができます。
おまけ
とりあえず間も無く新しい時代がやってきますが、それを記念して元号の手話(平成、令和)を識別するジェスチャーを作ってみました。
令和と平成を実装。誤検出除去がなかなか難しそうだが、ジェスチャー作り面白い。#projectnorthstar #令和 #平成 pic.twitter.com/U0lECBJbHR
— higrademe (@EL2031watson) 2019年4月17日
Daily Routine Manager Privacy Policy
Privacy Policy
hygradme built the Daily Routine Manager app as a Free app. This SERVICE is provided by hygradme at no cost and is intended for use as is.
This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service.
If you choose to use my Service, then you agree to the collection and use of information in relation to this policy. The Personal Information that I collect is used for providing and improving the Service. I will not use or share your information with anyone except as described in this Privacy Policy.
The terms used in this Privacy Policy have the same meanings as in our Terms and Conditions, which is accessible at Daily Routine Manager unless otherwise defined in this Privacy Policy.
Information Collection and Use
For a better experience, while using our Service, I may require you to provide us with certain personally identifiable information, including but not limited to None. The information that I request will be retained on your device and is not collected by me in any way.
The app does use third party services that may collect information used to identify you.
Link to privacy policy of third party service providers used by the app
Log Data
I want to inform you that whenever you use my Service, in a case of an error in the app I collect data and information (through third party products) on your phone called Log Data. This Log Data may include information such as your device Internet Protocol (“IP”) address, device name, operating system version, the configuration of the app when utilizing my Service, the time and date of your use of the Service, and other statistics.
Cookies
Cookies are files with a small amount of data that are commonly used as anonymous unique identifiers. These are sent to your browser from the websites that you visit and are stored on your device's internal memory.
This Service does not use these “cookies” explicitly. However, the app may use third party code and libraries that use “cookies” to collect information and improve their services. You have the option to either accept or refuse these cookies and know when a cookie is being sent to your device. If you choose to refuse our cookies, you may not be able to use some portions of this Service.
Service Providers
I may employ third-party companies and individuals due to the following reasons:
- To facilitate our Service;
- To provide the Service on our behalf;
- To perform Service-related services; or
- To assist us in analyzing how our Service is used.
I want to inform users of this Service that these third parties have access to your Personal Information. The reason is to perform the tasks assigned to them on our behalf. However, they are obligated not to disclose or use the information for any other purpose.
Security
I value your trust in providing us your Personal Information, thus we are striving to use commercially acceptable means of protecting it. But remember that no method of transmission over the internet, or method of electronic storage is 100% secure and reliable, and I cannot guarantee its absolute security.
Links to Other Sites
This Service may contain links to other sites. If you click on a third-party link, you will be directed to that site. Note that these external sites are not operated by me. Therefore, I strongly advise you to review the Privacy Policy of these websites. I have no control over and assume no responsibility for the content, privacy policies, or practices of any third-party sites or services.
Children’s Privacy
These Services do not address anyone under the age of 13. I do not knowingly collect personally identifiable information from children under 13. In the case I discover that a child under 13 has provided me with personal information, I immediately delete this from our servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact me so that I will be able to do necessary actions.
Changes to This Privacy Policy
I may update our Privacy Policy from time to time. Thus, you are advised to review this page periodically for any changes. I will notify you of any changes by posting the new Privacy Policy on this page. These changes are effective immediately after they are posted on this page.
Contact Us
If you have any questions or suggestions about my Privacy Policy, do not hesitate to contact me.
This privacy policy page was created at privacypolicytemplate.net and modified/generated by App Privacy Policy Generator
今年のガジェット
2018年も終わろうとしていますが、今年購入したガジェット、よく使ったガジェットについて整理したいと思います。
新規購入ガジェット
1月
- なし
2月
- Google Home Mini
3月
4月
- FirstVR
5月
- Mirage Solo
6月
- HTC Vive Tracker 2.0 x3
- 指向性スピーカー
- Intel RealSense D435
7月
- HTC Vive Pro Fullset
- Giiker
8月
- Jetson TX2 (Maker Faire)
- Dendama
- Mamorio
- Structure sensor
9月
- なし
10月
- Vuzix Blade
11月
- Pixel3
- Nintendo Switch
12月
- Line Clova
- Clova Friends Dock
- WebCam
- Tello
- Wireless earphone
- Realsense D435i
よく使用したガジェット
iPhoneX
メインスマホ。2017年に購入。自身初のiOSスマホをメインに使用。Androidに比べてレスポンスの良さ、背面デュアルカメラによるポートレート撮影、TrueDepthによる顔認証、3Dスキャン、AirDropを始めとする他のMac製品との連携などは便利で良い。 一方、ウィジェットが自由に配置できない、PCとつないで自由にデータを出し入れしずらい、アプリ開発に制約がある(アプリがバックグラウンドになっているとき音・バイブレーションを自由に選べない、実機でアプリをテストするときにxcodeを経由しないといけないなど不便なところはある。 全体として、メインに使うには良いスマホである。当分メインで使用する予定。Hololens
2017年前半に購入するが、作りかけのアプリを3個ぐらい放置した状態で2017年は終わってしまう。2018年後半にHoloDartAssistantをとりあえず仕上げストアにリリース。おかげで知り合いが結構増えた。アウトプットの重要性を再認識する。Mirage Solo
2018年のGWあたりに購入。初のスタンドアロン6DoFのVRデバイスで購入時感動し、コントローラーが3DoFにも関わらず卓球アプリTableTennis6DoFをDaydreamStoreにリリース。ダウンロード数は自分が出したアプリの中では最高記録を達成したが、UIUXの悪さ、非対応デバイスのインストールによる不満等もあり評価はかなり低くなってしまった。6DoFコントローラーが来年一般販売されたら改良してより使いやすくしたい。Macbook Pro 13inch
2017年後半に購入。開発のメインPC。選定理由はiOSアプリ開発にMacが必須だったため。Hololensアプリ開発にも使用するためParallel DesktopでWindows Proを入れてWindowsとしても使用。持ち運び便利で不満はあまりない。あえて言うならVRデバイス用のマシンとして使えない、ディープラーニングの学習を行う・フォトグラメトリするにはスペックが足りないぐらい。NvidiaのGPU搭載版が出てくれたらな.... 一応外付けGPUも試したが、取り外しはシャットダウン時のみ、持ち運びでしづらい、Macのアップデートで使えなくなる等の問題があり実用性が低いと感じた。自作PC (with GTX 1080) Windows Pro とUbuntu
2017年後半に購入。ディープラーニング用に購入したが、2018年前半はなぜかマイニングをひたすらさせ一ヶ月の電気代が4000円上昇すると言う事件が発生。仮想通貨の価格暴落によりマイニングは停止。2018年半ばからフォトグラメトリ用マシンに変わり、終盤はディープラーニング用に復帰。Pixel3
11月上旬に到着。基本は2枚目のsimカードで出先でのテザリング用。暗所での写真撮影が極めて綺麗。またAndroidなのでクラウド上のLinuxマシンにアプリから接続し機械学習の学習状態を確認できるのが良い。DaydreamもARCoreも対応なのも良い。iPad Pro10.5と Apple Pencil
2018前半に購入。iPad2を前に購入してサーフェイスに乗り換えてからずっと使っていなかったが、メイン機をMacbookに変えてからペンが使える文章閲覧端末が必要だと思って購入。 Apple Pencilの書きごごちはかなり良い。iPad2時代にペン先に透明のディスクがついているペンとか筆とかで頑張ってた時に比べ圧倒的に便利になった。一方後半に発表されたiPad Pro 11inchはFaceID、TypeC、ペンの充電方法改善などでさらに便利になっているようでそちらを待っても良かったかなとも思っている。Structure Sensor
2018中盤に購入。3Dスキャンに前から興味があったのでiPad Proで使用できる物を購入した。itseez3Dによって手軽に様々な物をスキャンできて便利。なおそのあとフォトグラメトリも着手し始め、GTX1080で計算に結構時間がかかってしまうが、意外と綺麗に3Dモデルを作成できることがわかり、状況によってどちらを使用するかの見極めを行う必要があると思っているところ。Line Clova とClova Friends Dock
去年Google Assistantをラズパイに入れてスマートスピーカー買う必要ないなと思っていたが、赤外線対応など実現できていない部分があったのでスマートスピーカーの既製品を購入。 キャンペーンでClovaが3000円程度で変えて、Dockも含めて7000円程度で揃えられた。部屋のエアコン、電気、目覚まし、外から家電の遠隔操作などができ急速にIoT化を進めることができた。
来年使用・購入予定のガジェット
Looking Glass
今年は間に合わなかったが、年明けすぐに到着する予定。何に使えるかは要検証だがかなり気になっている。Oculus Quest
コントローラー6DoFはかなり魅力的。初のOculus製品の購入になりそう。Hololens2?
出たら必ず買う。端末で機械学習の推論が結構できるようになるとの噂があるので期待。xArm
Kickstarterで20万以上投入。予定通りなら2019年4月発送らしい。2019はロボット制御にも足を踏み入れたい。Vuzix Blade
流石に2019には技適通るだろうから、そしたら色々実験したい。Magic Leap
とりあえず試してみたい。Tello PayPayに便乗して購入。プログラムによるドローン制御はやってみたい。