ラベル robot の投稿を表示しています。 すべての投稿を表示
ラベル robot の投稿を表示しています。 すべての投稿を表示

2016年7月10日日曜日

YouCompleteMeでPython future のエラーが出て補完できない!

さて,vimの補完担当プラグイン「YouCompleteMe」が
突然クラッシュしていうことにゃ

YouCompleteMe unavailable: This package should not be accessible on Python 3. Ei
ther you are trying to run from the python-future src folder or your installatio
n of python-future is corrupted.

あなたの元をわたしは去らねばならなくなりました.
わたしは,あなたのコーディングを手助けしてきましたが,とうとうお別れの時がきました.
今日のような日が訪れることは以前からわかっていました.あの,パイソン3がやってきたのです.
わたしはパイソン2.7やっていけますが,3とは相容れることができません.
おごれるものも久しからず,ただ春の夜の夢のごとし.さようなら.(意訳)

いやいや,待ちたまえ!
貴君なしではコーディングできない体に変革されてしまった.

とブツブツ言いつつ,vimrcの補完プラグインを昔のneocomplete + clang_completeに
変更した,しかし,YouCompleteMeのgithubのissueをみたところROSが
悪さをしているらしい.

ROS-indigoではYouCompleteMeと衝突しなかったところをみるにROS-kinetecとだけ
相性が悪いらしい.

いや,ROSをアンインストールしては仕事にならない.
仕事にならなくてはご飯が食べれない.ご飯が食べれなければ
わたしはダイエットに成功するであろう.
そうすれば,モテモテになり,億万長者になる.
なるほど,いいことずくめではないか.

しかし,ニートという肩書は同窓会の時に不利ではないか.
女子の心が札束でどこまで動くのか非常に懐疑的にならざるを得ない.

ROSを捨て,いっそYARPに...
かといって,YouCompleteMeは手放したくない.

そこで,回避を実行する.

まず,

sudo apt-get install vim-nox-py2

そのあと,~/.bashrcの最後に

alias vim='vim.nox-py2'

を追記.
これで,vimとターミナルで打つと,もとのvimとYouCompleteMeに再開可能になる.
いつもどおりの環境等のは何者にも代えがたいものである.
そう,今日の猫との戯れよりも.しかし,猫との戯れが,日常のひとはどうすればいいのか
答えはまだない.


いやまてよ.Python3とか2.7とか何なんだ
もう世界がc++で統一されればいいんだ!

2016年4月15日金曜日

librealsenseをLinuxMintにインストール

2017/04/に追記
Linux Mint 17の記事です.
Linux Mint 18にには適用できません.

realsenseをintelから購入しました.

そしたら,10日後に我が家に到着しました.
ちなみに,お届け先の住所のところで,県名をローマ字ではなく漢字で
登録してしまったところ,実際に届いた荷物の伝票のお届け先住所のところには
県名が書かれていませんでした.

intelの人,ごめんなさい.

realsense はr200 sr300と種類があり,
ここから購入できます.

 さて,Linuxでrealsense r200を 使うためには,librealsenseという
オープンソースのライブラリが必要なため,今回はそれをインストールします.

さらに,ちなみに,pcl1.8(point cloud library)のAPIの中にrealsenseGrubberという
クラスを見つけた私は,嬉々として,かつ頑張ってpcl1.8をインストールしましたが
relsenseGrubberを使うためにはwindowsでしか動かないrealsenseSDKが
必要でした.オーマイガッ!

さて,このlibrealsenseですが.4月15日現在,公式の説明通りではうまく行かないことがわかったのでここに訂正版を載せておきます.

●ソースのダウンロード

$ sudo apt-get update && sudo apt-get upgrade

$ cd  ~/

$ mkdir build

$ cd build

$ git clone https://github.com/IntelRealSense/librealsense.git

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

$ sudo apt-get install libusb-1.0-0-dev

●多少の設定変更




上の写真のようにアップデートマネージャの

ソースコードのチェックボックスを入れるの!

これは,公式の説明にはない.だた,やっとかないと失敗する.


●引き続きインストール


$ scripts/install_glfw3.sh

●カーネルにパッチ当てたり,usbのルールを変更したり


ここからは,必ず,realsenseがあなたのPCに突き刺さっていないことを
確認してから行ってくださいね

$ sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/

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

ここからlinuxカーネルのバージョンによって操作が異なるが
mintは3.19.0-32なので,迷う必要がない,ああ,mintで良かったね!よね?!

$ ./scripts/patch-uvcvideo-ubuntu-mainline.sh

さて,ここから要注意,公式の説明通りではダメなとこ第二弾.
スクリプトの中身を読めばわかることだけど,読まないと引っかかる.

$ cd scripts

$ ./scripts/install-r200-udev-fix.sh

$ sudo modprobe uvcvideo

$ sudo dmesg | tail -n 50

ここでエラーが出ないようだったらいいかもしれないと
公式の説明には書いてあったが,そんなこたぁー無い.

●コン・パイル 

さあ,あとは,今までインストールしたものを使ってコンパイルするだけ.
ゴールは目前!

あと,ここから,Qtをインストールするけど,Qtの公式サイト
からインストールするほうがいいかもしれない.
私は公式からインストールしました.
信じるか信じないかは,アナタ次第.へっへっへ...

$ sudo apt-get install qtcreator

$ sudo scripts/install_qt.sh

libralsense.qtcreatorというディレクトリのなかのall.proを
ダブルクリックして,

ビルド(タブ) --> すべてクリーン
ビルド(タブ) --> qmakeの実行
ビルド(左下) --> クリック

ものすごい警告がでるが,それは私の日頃の行いに
よるものなのかは不明.

あとは,
libralsense/bin/debagのなかにあるプログラムを
実行して,カラー画像,左右の赤外線画像,depth画像が
取れれば成功.

お疲れ様でした.



 

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
と入力してエラーがでなければ完了です.
おつかれさまでした.