20190707のMacに関する記事は5件です。

【Mac】nodebrewでNode.jsのバージョン管理を行う

自分のメモ用に。

OSのバージョン

mac OS Mojave 10.14.5

前提

Homebrew、Nodeberewをインストールしてあること

現在インストールされているバージョンを表示する

nodebrew ls

インストール可能なバージョンを表示する

nodebrew ls-remote

バージョンを指定してインストールする

nodebrew install [バージョン名]

バージョンを指定してアンインストールする

nodebrew uninstall [バージョン名]

使用するバージョンを切り替える

nodebrew use [バージョン名]

バージョンを切り替える際は、以下のようにすると良いでしょう。

  1. 使用したいバージョンをインストールする
  2. バージョンを切り替える
  3. 不要なバージョンをアンインストールする

バージョン確認

最後に、今使用しているバージョンを確認し、使用したいバージョンに切り替わっていればOKです。

node -v
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Docker + macでLittleSLAMを動かす

SLAM入門: ロボットの自己位置推定と地図構築の技術(友納 正裕) のサンプルコード、LittleSLAMをMacのDockerで動かす。
gnuplotを使っているので、ホストにXQuartzを用意してXを表示する。

Prepare files

Clone the repo

$ git clone --recursive https://github.com/furo-org/LittleSLAM.git

もしくは

$ git clone https://github.com/furo-org/LittleSLAM.git
$ cd LittleSLAM
$ git submodule init
$ git submodule update

Download the dataset

https://github.com/furo-org/LittleSLAM の通り、支持されたリンクからデータセットをダウンロードする。
LittleSLAM/datasetディレクトリに置くことにする。

$ cd /path/to/LittleSLAM
$ mkdir dataset
$ cd dataset
$ wget https://furo.org/software/little_slam/dataset.zip
$ unzip dataset.zip

path/to/LittleSLAM/dataset以下に *.lscファイルが置かれる。

Prepare X11

dockerコンテナ内からgnuplotで描画したのをホスト(Mac)のGUIで見れるよう、Xを準備する

参考: http://raphine.hatenablog.com/entry/2018/08/14/004634

Install XQuartz

  1. https://www.xquartz.org/ からXQuartzをダウンロード→インストール
  2. インストール後、macからログアウト→ログイン

Enable X11

  1. XQuartzのメニュー→「環境設定」→「セキュリティ」タブ→「ネットワーク・クライアントからの接続を許可」にチェック
  2. XQuartzを終了→起動
  3. この後起動するdockerコンテナからのXの接続を許可
  $ xhost + 127.0.0.1

Run LittleSLAM in a docker container

Launch a docker container

$ docker run -it \
-e DISPLAY=docker.for.mac.localhost:0 \
-v /path/to/LittleSLAM:/workspace \
-w /workspace \
--name little-slam \
debian:stretch bash
  • -e DISPLAY=docker.for.mac.localhost:0: Xの接続
  • /workspace: コンテナ内の作業ディレクトリを指定。好きな場所を指定すればよい。
  • --name little-slam: dockerコンテナの名前を指定。好きな名前を付ければよい。
  • debian:stretch: この例ではdebian:stretchイメージを利用。好きなイメージを使えばよい。

以下は、上記で起動したdockerコンテナ内での作業となる。
https://github.com/furo-org/LittleSLAM/blob/master/doc/install-linux.md の通りに進めていけばよい。

Build LittleSLAM

# apt update
# apt install build-essential cmake libboost-all-dev libeigen3-dev gnuplot gnuplot-x11
# mkdir build
# cd build
# cmake ..
# make

Run LittleSLAM

# cd /workspace/build/cui
#  ./LittleSLAM ../../dataset/corridor.lsc
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

はじめてのhomebrew…どのような手順でhomebrewを導入したか

今までまともにMacを触ったことはなかったのですが、つい最近、MacBook Airを購入しました。購入して最初に導入したのは、鉄板のパッケージマネージャーであるhomebrewです。

homebrewの導入

インターネット接続さえ確立したならば、公式サイトの手順通り、以下のコマンドをターミナルで入力することにより導入プロセスが始まります。sudoは必要ありません。導入プロセスが始まったならば、あとは終わるまで見ているだけです。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

homebrewの導入プロセスは、自宅のフレッツ光回線であれば、開始から合計数分で完了しました。

homebrewで驚いたこと

Windowsの著名なパッケージマネージャーであるchocolateyでは、インストールプロセスでシェル上に出力されるメッセージは、以下の箇条書きに挙げるくらいでした。多くの場合、インストールプロセス自体はほぼサイレントで進んでいきます。

  • Downloading
  • (Downloading) Progress
  • Hashes match
  • Installing
  • Installed

一方のhomebrewでは、依存関係にあるソフトウェアのインストールプロセスや、インストールに必要なシステム設定の変更までシェル上に出力されていきます。私がhomebrew-caskをインストールした際には、以下のようなメッセージがシェル上に出力されていました。

  • gmpのインストール
  • libtasn1のインストール
  • libunistringのインストール
  • nettleのインストール
  • libffiのインストール
  • p11-kitのインストール
  • opensslのインストール
  • libeventのインストール
  • unboundのインストール
  • gnutlsのインストール
  • emacsのインストール
  • caskのインストール
  • libffiの実行結果
  • opennsslの実行結果
  • unboundの実行結果
  • emacsの実行結果

モジュールの依存関係等の管理手法がWindowsとUNIX系では異なるためなのでしょうが、シェルに出力されるものがここまで違うと、強く印象に残ります。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac + Docker + Git Labインストール

Docker on Macで、GitLabを構築した時のメモです。

0. 追記

記事を書き終えた後に気づいたのですが、docker-composeでインストールする方法も公式ドキュメントに書かれていました・・・(;ω;)
Mac用にボリュームを書き直せば動きそうです。

 Installing GitLab using docker-compose(公式)

Mac用にボリュームを書き直した記事もありました。

 MACでDocker(docker-compose)を使用してローカルで使用するgitlabを起動

1. はじめに

基本的には以下記事を参考にしていただければ8割型は解決します。
私もお世話になりました。ありがとうございました。

 dockerを使ってmacOSにGitlabを構築する

上記手順でうまくいかない場合は、公式ドキュメントを見ましょう。
私はこの2つでどうにかなりました。
 
 Install Gitlab with docker(公式)

Docker使わずにMac上に直接インストールする記事もいくつかありますが、
Docker を使う方が楽だし、Macも汚れないのでオススメです。

2. 詰まったところ

(1) localhostにアクセスしても、It worksと表示される。

公式ドキュメント にも書かれていますが、初回起動は、GitLabが立ち上がるまでに少し時間がかかるようです。
全然立ち上がらないので、あれ?あれ?と再起動を繰り返してしまいました。
docker logs -f gitlab でログが見られるので、気長に起動を待ちましょう。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

DonkeyCar3シミュレーターで強化学習してみる

はじめに

DonkeyCar 3.0 is Released!でいろいろと新しくなったらしいのでそろそろやってみようと思いました。ラジコン等を買うお金を貯めるまでとりあえずシミュレーターで学習などの予行演習をやっておきます

レポジトリを漁っているうちにシミュレーターで強化学習するのが簡単になってるっぽかったのでやってみることにしました

環境をセットアップする

macOS Mojave 10.14.5

pyenvで専用の環境をつくります

pyenv virtualenv 3.7.3 donkeycar

pyenv activate donkeycar

python -V
Python 3.7.3

後で重複するものもあるが以下のモジュールをインストールしておきます

pip install python-socketio flask eventlet pygame numpy pillow h5py scikit-image opencv-python gym

donkeycarのレポジトリをクローンします

git clone https://github.com/wroscoe/donkey donkeycar

必要なモジュールをインストールします

pip install -e donkeycar

self-driving sandboxのレポジトリをクローンします

git clone https://github.com/tawnkramer/sdsandbox.git

必要なモジュールをインストールします

pip install -r sdsandbox/requirements.txt

次にdonkey_gymをクローンします

git clone https://github.com/tawnkramer/donkey_gym

必要なモジュールをインストールします

pip install -e donkey_gym

Releaseページから現行最新版のシミュレーターバイナリDonkeySimMac_10_13.zipをダウンロードして展開しdonkey_simを /Applications に配置します

シミュレーターを起動して強化学習する

reinforcement_learningのディレクトリに移動します

cd donkey_gym/examples/reinforcement_learning/

シミュレーターのパスを指定してddqn.pyを実行します。Deep Reinforcement Learning with Double Q-learningの実装のようです

python ddqn.py --sim=/Applications/donkey_sim.app/Contents/MacOS/donkey_sim

実行すると以下のようになってシミュレーターの起動画面が表示されます

/Users/user/.pyenv/versions/donkeycar/lib/python3.7/site-packages/skimage/viewer/__init__.py:6: UserWarning: Viewer requires Qt
  warn('Viewer requires Qt')
WARNING: Logging before flag parsing goes to stderr.
W0706 22:06:32.471105 4405204416 deprecation_wrapper.py:119] From ddqn.py:26: The name tf.keras.initializers.normal is deprecated. Please use tf.compat.v1.keras.initializers.normal instead.

W0706 22:06:32.475600 4405204416 deprecation_wrapper.py:119] From ddqn.py:218: The name tf.ConfigProto is deprecated. Please use tf.compat.v1.ConfigProto instead.

W0706 22:06:32.475827 4405204416 deprecation_wrapper.py:119] From ddqn.py:220: The name tf.Session is deprecated. Please use tf.compat.v1.Session instead.

W0706 22:06:32.508859 4405204416 deprecation_wrapper.py:119] From ddqn.py:221: The name tf.keras.backend.set_session is deprecated. Please use tf.compat.v1.keras.backend.set_session instead.

starting DonkeyGym env
donkey subprocess started
binding to ('0.0.0.0', 9091)
waiting for sim to start..
2019-07-06 22:06:33.317 donkey_sim[38189:2539567] Could not find image named 'ScreenSelector'.
waiting for sim to start..
waiting for sim to start..
waiting for sim to start..

画面下の Play! ボタンをクリックします

スクリーンショット 2019-07-06 22.07.27.png

シミュレーターが起動し自動的にコースが選択されて学習がはじまります。動画のように何度も運転が繰り返されます

donkeycar-dqrl.gif

ログをみると学習が繰り返されているのがわかります

got a new client ('127.0.0.1', 59824)
W0706 22:07:47.631042 4405204416 deprecation.py:506] From /Users/user/.pyenv/versions/donkeycar/lib/python3.7/site-packages/tensorflow/python/ops/init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Call initializer instance with the dtype argument instead of passing it to the constructor
Episode:  0
EPISODE 0 TIMESTEP 30 / ACTION [-0.08891889, 0.3] / REWARD 0.9979240885446676 / EPISODE LENGTH 30 / Q_MAX  0
fps 14.380368140227569
EPISODE 0 TIMESTEP 60 / ACTION [-0.31381074, 0.3] / REWARD 1.22906461238042 / EPISODE LENGTH 60 / Q_MAX  0
EPISODE 0 TIMESTEP 90 / ACTION [-0.46118185, 0.3] / REWARD 1.283182117658 / EPISODE LENGTH 90 / Q_MAX  0
fps 19.979947188928957
episode: 0   memory length: 107   epsilon: 0.9895139999999955  episode length: 107
Episode:  1
episode: 1   memory length: 108   epsilon: 0.9894159999999954  episode length: 1
Episode:  2
 episode: 2   memory length: 116   epsilon: 0.9886319999999951  episode length: 8
Episode:  3
episode: 3   memory length: 117   epsilon: 0.988533999999995  episode length: 1
Episode:  4
EPISODE 4 TIMESTEP 120 / ACTION [0.5056638, 0.3] / REWARD 0.6079470236506799 / EPISODE LENGTH 3 / Q_MAX  6.9752893
episode: 4   memory length: 126   epsilon: 0.9876519999999946  episode length: 9
Episode:  5
episode: 5   memory length: 131   epsilon: 0.9871619999999944  episode length: 5
Episode:  6
episode: 6   memory length: 142   epsilon: 0.986083999999994  episode length: 11
Episode:  7
episode: 7   memory length: 149   epsilon: 0.9853979999999937  episode length: 7
Episode:  8
EPISODE 8 TIMESTEP 150 / ACTION [-0.971151, 0.3] / REWARD 0.90009812538202 / EPISODE LENGTH 1 / Q_MAX  13.961587
episode: 8   memory length: 155   epsilon: 0.9848099999999934  episode length: 6

ディレクトリに学習済みモデルrl_driver.h5が生成されています

ls -1
README.md
ddqn.py
ppo_train.py
rl_driver.h5
unitylog.txt

おわりに

シミュレーターで簡単に強化学習できました。しばらく学習させてみて、ちゃんと走るようになるかみてみようと思います

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む