2015年12月11日金曜日

倒立振子をつくろう!? #1 arduino IDE 1.7x インストール編




 世の中には倒立振子と呼ばれるものがあることはご存知だろうか?
私だって知っていた.そして憧れた.あの倒立振子である.
博識な皆様なら,当然ご存知であろう.

そう.コレ(下の図参照)


わたしも,制御の世界に身を置くものとして,一度は作って見たいものである.

じゃあ,作っちゃおう!

幸いにも,ドキュメントはWWWの世界に腐らないケド,腐るほどあるので問題ないはず.
そもそも,必要な知識などは私の頭の中にあるはずである.
少なくとも,私の履修科目一覧はそう言っている.(制御工学,現代制御,システム制御...)


さて, 御託はこのへんにしておいて,タイトルにもあるとおり,
arduinoのIDEをパソコンにインストールする.
倒立振子を立たせるためには,制御用コンピュータが必要なのであるが,
今回はarduinoを使うよ.


arduinoとは使いやすくなったマイコンである.しかも,オープンソース.
IDEとは統合開発環境の略で,プログラミングに必要なアレコレが一緒くたになったものである.


今回はarduino M0 を使用することに決めた.
arduinoの開発会社が真っ二つに別れた影響により,
arduino M0では今までのarduino IDEが使用できない.そこで,新しくIDEをインストール
しなければならないが,今まで,arduino UNOなどで使用していたIDEを
アンインストールする必要もない.理由は後述します.


  •  環境設定 
私の環境はLinux Mint 17.3 Rosa(Ubuntu 14.04)

  • ソフトウェアのダウンロード
    ここから arduino IDE17.xをダウンロードする.

  •  インストール手順
   インストールはここにあり(英語)
   上のサイトを自分用に翻訳すると下のようになる.

   1.端末を開いて
   
      $ sudo vim /etc/udev/rules.d/90-extraacl.rules

    するとvimというテキストエディタで設定ファイルが開かれるので,
    そこに以下の設定を書き込む.

   KERNEL="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="<your_username>"
   KERNEL="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="<your_username>"

    
    ただ,ここで<your_username>というのはあなたのパソコン上の
    ユーザーネームなので以下の新しく端末を開いて,以下のコマンドを打つ.

                       $whoami

    すると,遠い昔,遥か彼方の銀河系で...設定したユーザーネームが表示される.
    私の場合は,sharuと表示されるので設定は,

   KERNEL="ttyUSB[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="sharu"
   KERNEL="ttyACM[0-9]*", TAG+="udev-acl", TAG+="uaccess", OWNER="sharu"


     となる. 

    エディタで設定を保存して閉じる場合はエディタ上で

      :wq

                 と打つ.


  2.引き続き端末上で作業するよ.

      $ sudo usermod -a -G tty <your_username>
      $ sudo usermod -a -G dialout <your_username>

           
    とタイプしてくだされ.<you_username>は前述の通り,
    あなたの名前を入れてね.


  3.もちろん,端末上で作業するよ.

                     $ sudo apt-get remove modemmanager
                
    削除して大丈夫なのか...コレ...
    ちょっと調べたけど,大丈夫そうですな...


  4.端末上で(ry
    ここから,スーパーユーザーに変身して作業するので以下のコマンドを
    カチョー オーン!!

      $ sudo -s
      $ sudo vim /etc/udev/rules.d/98-openocd.rules

    開いたファイルにすかさず設定を書き込むべし.

      #Copy this file to /etc/udev/rules.d/

      ACTION!="add|change", GOTO="openocd_rules_end"
      SUBSYSTEM!="usb|tty|hidraw", GOTO="openocd_rules_end"

      #Please keep this list sorted by VID:PID

      #CMSIS-DAP compatible adapters
      ATTRS{product}=="*CMSIS-DAP*", MODE="664", GROUP="plugdev"

      LABEL="openocd_rules_end"


    で閉じる(保存も)ためにエディタvim上で

     :wq

     そして,パソコンを再起動してください.もう一息です.


  5.端末上で打つべし!打つべし

     $ sudo udevadm control --reload-rules
     $ sudo udevadm trigger

さあ,パソコンの設定はコレで終了です.
最初の方でダウンロードしたものを解凍して,中に入っている
arduinoというシェルスクリプトを以下のコマンドで立ち上げてください.

     ./arduino

するとおなじみの画面が立ち上がる.しかし,読者諸君は興奮のあまり座席から立ち上がる
という愚行を犯してはならない.隣人から白い目で見られる.

このように,シェルスクリプトでIDEが立ち上がるため,以前のarduino IDEを削除する必要が
無いことがお分かりいただけただろうか.


さて,ここで注意点!!!

パソコンとシリアル通信するときはSerial.println()ではなく,SerialUSB.println()を使用
しないと通信できないゾ.


おつかれさまでした.



 

2015年8月10日月曜日

YARP(Yet Another Robot Pratform)解説 No.1

ロボットのプラットフォームのお話. 第一話

 〜知名度の超低空飛行〜

YARPとは、ロボットのための分散コンピューティングの
フレームワークなのであるが。。。

「YARPって聞いたことあるかな??」 
「シーン...」
「まぁ,そうダヨネ...日本だとマイナーだモンネ...」


こんな感じの会話が日夜,ロボット業界ではされているのかもしれない.
いや,されてないって? そうですか,されてないですか.


しかし,以下の会話ならロボット関連の研究室でされてそうじゃないかな?

「YARPってものがあるんだけど,それ使ってロボット作ってみて」
「ヤープ? それって食べると美味しいの?」
「私は,後載せサクサク派だ!! 断じて先に載せることは許さん!!」
「ナンノコッチャ」

このようにして,YARPの恐るべき知名度の低さによって
YARPの日本進出は遠のくのであった...(完)


今回は,そんな(超マイナーな)YARPの使い方を教えちゃうYO!!

とりあえずYARPのホームページ

賢い諸兄はこう思われたことだろう.
「え.英語じゃねーかっ」

そう,YARPのホームページはすべて英語なのである.
徹頭徹尾英語なのである.何度見返しても英語.
実はそのホームページでF5を7回押すと日本語に...

...なったりしない. 

人生そんなに甘くないのである.


今日から,自分の勉強も兼ねてYARPを解説していくことにした.
誰かの助けになれば幸いである.


インストール方法

Ubuntu,Linux mintへのインストール

1.必要なものをインストール  

 YARPをインストールするにあたって,バイナリとコンパイルする方法があるのだが,
私の環境(Linux mint17.2)では,バイナリがインストールできなかったので ,
今回はコードからコンパイルする方法でいく.
端末を開いて以下のコマンドを入力.
 sudo apt-get install git cmake cmake-curses-gui libgsl0-dev libace-dev libreadline-dev
また,続いて以下のコマンドも入力
sudo apt-get install qtbase5-dev qtdeclarative5-dev qtmultimedia5-dev \
qml-module-qtquick2 qml-module-qtquick-window2 \
qml-module-qtmultimedia qml-module-qtquick-dialogs \
qml-module-qtquick-controls libqt5svg5
さて,これでコンパイルに必要な,cmakeやらqt5などをゲットしました.

 2.YARPのダウンロード

端末に以下のコマンドを入力
cd /home/user
git clone https://github.com/robotology/yarp.git
 これで,githubからYARPのソースコードをダウンロード完了です.

3.ソースのコンパイル

まず,コンパイルするためのディレクトリを作成します.
以下のコマンドでそれを行います.
cd yarp
mkdir build
cd build
ccmake ../
 ccmakeの設定画面が立ち上がったともいます.
ここで,設定を2つほど変更する必要があります.
  • CREATE GUIの設定をONにすること
  •  CREATE_LIB_MATHの設定をONにすること
EnterキーでONとOFFの設定を変更することができます.
設定を完了したら後はコンパイルが可能になるまで
数回”c”を押してください.コンパイルができると表示されたら”g”を押してください.
それでコンパイルの設定が完了します.

以下のコマンドでコンパイルを開始します.
make
sudo make install
sudo ldconfig
最後に,きちんとインストールできたかどうか確認します.
yarp check
と入力してエラーがでなければ完了です.
おつかれさまでした.