まぐらぼ

日々の雑記を書いています。

sparkfun/jetbot

spark jetbotは標準ではファンがついていません。jetbotで学習させるならファンをつけないと熱暴走します。故障します。
価格はwaveshareの方がやすいですが18650電池別売りです。ちゃんとした物は5000弱します。sparkfunはモバイルバッテリーがついた値段です。18650電池を始めて使う人は、さらに長さの問題で使えない電池(amazonだとkeeppowerなど)を買ってしまい出費が嵩みます。


(1) HW組立て
準備するもの:spark jetbot KIT,半田ゴテ、半田(一般家庭だと鉛フリーがよいと思う)、モニタ、キーボードマウス
メモ:sparkfun jetbot document : https://www.sparkfun.com/products/15365


・カメラとjetson nanoの接続はケーブル長がギリギリなので難易度たかい

・ブレッドボードから難易度あがる(半田づけ必要)
https://learn.sparkfun.com/tutorials/assembly-guide-for-sparkfun-jetbot-ai-kit/3-motor-driver-assembly--configuration

★ブレッドボード裏にハンダづけする必要あります(重要)

https://learn.sparkfun.com/tutorials/assembly-guide-for-sparkfun-jetbot-ai-kit/3-motor-driver-assembly--configuration

(2)ソフトウェアセットアップ
SDカードはOSイメージインストールされている

a)
nVIDIAの指示は無視する。「手順1と5をスキップすることをお勧めします。」とある。

ステップ1-JetBotイメージをSDカードにフラッシュする
ステップ5-最新のソフトウェアのインストール(オプション)

1と5は上記なのでスルーする。

b) 電源は5Wモードにする
# 最初から5Wになってました。
sudo nvpmodel -m1


c) これも最初から入っている場合はスルー
git clone https://github.com/NVIDIA-AI-IOT/jetbot
cd jetbot
sudo python3 setup.py install

d) IPアドレス確認
後部のモニタにIP表示されるはず


from jetbot import Robot
robot = Robot()
robot.stop()

import time
print("start")
for i in range(0,10):
robot.forward(0.2)
time.sleep(1.0)

robot.stop()

DMM.make料金

https://akiba.dmm-make.com/files/information/MachineList.pdf

https://akiba.dmm-make.com/about/machinesDetail/32
ライセンス有の場合、
1block: 500 円
2block以降: 500 円 /block
※1block = 30分

https://akiba.dmm-make.com/about/machinesDetail/43
LEF-12
1block: 1,000 円
2block以降:1,000 円 /block
※1block = 1時間


刺しゅうミシン PR655
https://akiba.dmm-make.com/about/machinesDetail/52
1block: 1,000 円
2block以降: 1,000 円 /block
※1block = 1時間

python/traitlets

import traitlets
class Hoge(traitlets.HaTraits):
value = traitlets.Float()

def test():
hoge = Hoge(value=1)
hoge2 = Hoge(value=2)

traitlets.directional_link( (hoge,'value'), (hoge2,'value'), transform=lambda x: -x*0.5)

hoge.value = 5 # これでhoge2.valueも連動してかわる。
 

jetbot/コントローラー

jetbotとコントローラーが接続してください。次のURLでコントローラーボタン押下の挙動が確認できます。
html5gamepad.com

Jupyterのスクリプトからコントローラーに接続すると次の表示がでます。

f:id:o-maguro:20200211231703p:plain
正常動作の場合はkey widget がでます。

controller = widgets.Controller(index=1) # replace with index of your controller

INDEX=0に変更しました。
他PCから接続した場合はうまく動きませんでした。jetsonにHDMLケーブルとキーボード・マウス接続して起動したらうまくいきました。理由は不明。

jetbot/Road Following/ライントレース/Line Trace

コントローラーが動作することを確認してからの方がよいと思う。
回帰(regression)学習を行う。
前の衝突回避のように教師データ(写真)を作成する

緑の点を動かして教師データを撮影していきます。