2014年12月4日木曜日

Sublime Text 2のインストールと各種設定(Ubuntu 14.04版)


こんにちは、本日も恒例の「Sublime Text 2」の記事です。
私がいつもやっている設定なのですが、PCを設定しなおしたりするときに今まで調べたサイトをまたEvernoteからどこだったか...と探すのが面倒なのでここに書きました。
はじめて使おうかなと思っている人にも分かるように書いていくつもりなのでよろしくお願いします。

手順1 インストール

さっそくSublime Text 2をインストールします。apt-getでインストールするのが一番簡単なのですが、今回は手動でインストールする方法を紹介します。
http://www.sublimetext.com/
にアクセスし、下に少しスクロールした場所にダウンロードボタンがあります。


ダウンロードしたものは「Sublime Text 2.0.2 x64.tar.bz2」です。これを解凍ソフトで解凍します。今回はデスクトップに展開しました。以下の手順はデスクトップに展開したものとして、話を進めていきます。
展開できたら、「Sublime Text 2」というフォルダが生成できたと思います。
このフォルダの名前を「Sublime Text 2」から「Sublime-Text-2」(空白をハイフンに)に変えます。ターミナルでいじるときに空白があると扱いにくいためです。



リネームできたらターミナルを開きます。そして次のコマンドを実行します。

cd デスクトップ
sudo mv Sublime-Text-2 /usr/lib/
sudo ln -s /usr/lib/Sublime-Text-2/sublime_text /usr/bin/subl

上のコマンドで何をやっているかというと、デスクトップにcdし二行目で解凍してリネームしたフォルダを「/usr/lib/」に移動させ、3行目でターミナルでSublime Text 2を「subl ファイル名」で実行できるようにパスが通った場所にリンクを貼るという作業を行っています。
これでインストールは完了です。

手順2 ファイルの関連付け

インストールが完了したら、Sublime Text 2で開きたいファイルの種類を選択します。これについては「Ubuntu Tweak」というユーティリティソフトが便利なので使います。
http://ubuntu-tweak.com/
上のサイトからdebファイルがダウンロードできるので、ソフトウェアセンター経由でインストールできます。
インストールできたらUnity Dashから「Ubuntu Tweak」と検索するか、ターミナルで「ubuntu-tweak」と打つと起動します。


「システム設定(A)」のタブをクリックし、ファイルタイプマネージャーを選択


カテゴリーのテキストを選びます。そしてSublime Text 2で開きたいファイルの種類を選択しダブルクリック。図中では「Cソースコード」です。


残念ながらSublime Text 2は一覧に含まれていませんから、手動で追加します。


そしてカスタムコマンドの「yelp」を消し「/usr/lib/Sublime-Text-2/sublime_text」と入力します。これで追加ボタンを押す。これでSublime Text 2が追加されたはず。これでどんどん設定していきます。次以降はおそらく一覧に表示されているはずですから、前の手順はいりません。ただしチェックが入っているのに変わらない現象が起きますから、1回他のソフトにチェックをいれ、もう一回Sublime Text 2にチェックを入れるとうまくいきます。
これでUbuntu Tweakでの作業を終わります。

次にUnityに登録するためのデスクトップエントリを編集します。
ここまでの手順のチェックを兼ねてSublime Text 2で編集します。以下のコマンドを実行して、下のコードをコピペで上書きしてください。

subl ~/.local/share/applications/sublime_text.desktop


[Desktop Entry]
Version=1.0
Name=Sublime Text 2
GenericName=Text Editor

Exec=subl
Terminal=false
Icon=/usr/lib/Sublime-Text-2/Icon/256x256/sublime_text.png
Type=Application
Categories=TextEditor;IDE;Development
X-Ayatana-Desktop-Shortcuts=NewWindow

[NewWindow Shortcut Group]
Name=New Window
Exec=subl -n
TargetEnvironment=Unity

コピペできたら保存。メニューからSaveでも、Ctrl+Sでも保存できます。
ついでに右クリックで「Launcherに登録」をしておいてください。


手順3 Package Controlのインストール

次にPackage Controlというものをインストールします。Sublime Text 2では欠かせないものになっているので必ず導入してください。
メニューバーからView > Show Consoleを選択し、下に出たバーに
https://sublime.wbond.net/installation#st2
にある呪文をコピペします。必ずSUBLIME TEXT 2のタブのものをコピーして貼り付け、Enter。


Please restart Sublime Text to finish installation
が最後の行に表示されれば成功です。指示に従ってSublime Text 2を1回閉じます。
これでPackage Controlは導入完了です。

手順4 メニューの日本語化と日本語入力

ここからSublime Text 2の日本語化を行います。メニューバーの項目や、右クリックメニューの日本語化が可能です。英語のままでいい人は下の日本語入力の設定にスキップしてください。
日本語化ファイルを提供してくれているサイトがあるのでここからファイルをもらってきます。Main.sublime-menuとContext.sublime-menuを下のリンクからダウンロードします。
【Windowsアプリケーション】Sublime Text 2 メニュー日本語化
http://blog.huwy.org/article/292827228.html
そしてこのファイルを該当の場所に移動させます。
起動先にもすでにこのファイルと同名のファイルが存在しますから、大丈夫だとは思いますがファイル先の元ファイルのバックアップをしておくと安全でしょう。
下のコマンドを実行すると該当フォルダに移動されます。(ダウンロードしたディレクトリで実行してください)

mv Main.sublime-menu ~/.config/sublime-text-2/Packages/Default
mv Context.sublime-menu ~/.config/sublime-text-2/Packages/Default

これでSublime Text 2を再起動されたら日本語化されたはずです。

次にSublime Text 2で日本語を入力できるようにします。というのもSublime Text 2は標準で日本語入力をサポートしていません。これについては次のサイトを参考にします。
この記事も長くなっているので、手順は参考サイトに任せます。
Ubuntu12.04にSublimeText2のインストールと日本語入力設定
http://qiita.com/kanpou_/items/bc739c1215fc222f17c8
”SublimeText2の日本語化力化"のセクションから書かれている手順にしたがいます。
参考サイトの”キーバインドの設定”のセクションで日本語と英語を切り替えるショートカット設定が書かれていますが、私は「Shift+Space」で切り替えたかったので、以下のようにしています。

[
{ "keys": ["shift+space"], "command": "toggle_mozc" }
]

サイトの手順を確実にこなせば日本語入力できるようになっているはずです。

手順5 おすすめのプラグイン

手順4までで最低限使うための設定が終わりました。最後に私が導入しているプラグインのなかで特にお世話になっているものを紹介します。

まず手順3で導入したPackage Controlを使って簡単にインストールできる必須のプラグインです。Sublime Text 2上で「Shift+Ctrl+P」でコマンドパレットを呼び出し、Package Control: Install Packageと入力して入れたいパッケージ名を入力してください。以下に紹介するプラグインはそれだけで導入できます。

1つ目は「ConvertToUTF8」
文字コードの変換を自動でほぼほぼ完璧にこなしてくれます。

2つ目は「BracketHighlighter」
プログラミング中の括弧の対応をわかりやすく表示できます。

3つ目は「Git」
Gitで最近、管理し始めたのでコミットからGithubにPushまでSublime Text 2上でできるので便利。ブランチの変更とかもできる。

次にちょっとインストールだけではだめで設定が必要だけど、便利なパッケージたちを紹介します。
まずSublime Text 2でTeXを使いたかったら以前に紹介した記事を書いていますから是非御覧ください。
Sublime Text 2でTeXを使う (Ubuntu 14.04 LTS版)
http://cirkitrwrc.blogspot.jp/2014/08/sublime-text-2tex-ubuntu1404lts.html

CとC++のコーディングの補助をやってくれるものを記事に書いていますので、すこし面倒ですが挑戦してみてはいかかでしょうか
Sublime Text 2でC/C++の開発環境を強化する(Ubuntu 14.04 LTS)
http://cirkitrwrc.blogspot.jp/2014/10/sublime-text-2ccubuntu-1404-lts.html

Sublime Text 2でC/C++のコード整形(Ubuntu 14.04 LTS)
http://cirkitrwrc.blogspot.jp/2014/10/sublime-text-2ccubuntu-1404-lts_5.html

あとメモ用にMarkdown記法をたまーに使うのでこれにも対応させる。これについては参考サイトで。
Sublime Text で Markdown を快適にする3つのパッケージ
http://webmem.hatenablog.com/entry/sublime-text-markdown

これくらいですかね。他にも便利なパッケージはたくさんあります。

おまけ エディタの設定とキーバインドの設定

最後の最後に私が設定している、レイアウトの設定とキーバインドをメモしておきます。
エディタの設定ファイルであるPreferences.sublime-settingsは「Preferences」の「Settings - User」を選択して開く。

{
 //テーマの変更(要インストールPackage Control経由 Monokai Extended)
 "color_scheme": "Packages/Monokai Extended/Monokai Extended.tmTheme",

 //スペースの表示
 "draw_white_space": "all",

 //フォント(要Rictyフォントインストール)
 "font_face": "Ricty",

 //フォントサイズ
 "font_size": 12,

 //カーソルがある行をハイライト
 "highlight_line": true,

 //行間指定
 "line_padding_top": 4,

 //タブの大きさ
 "tab_size": 2,

 //タブをスペースに
 "translate_tabs_to_spaces": true,

 //空白を削除
 "trim_trailing_white_space_on_save": true,

 //文章が長くなった時、自動で折り返す
 "word_wrap": true
}

このまま適応しても絶対エラーになると思うので適宜コメントアウトを参考にしてください。
あとキーバインド。この設定ファイルの開き方は「Perferences」の「Key Bindings - User」から。特にこだわりはないので、デフォルトで使っていますがコードを整形するためのショートカットが便利なので、これは設定しています。
プログラムを書いている途中「Alt+Ctrl+R」である程度、選択した範囲のインデントを整理してくれます。ただし先程紹介した私達のブログ記事”Sublime Text 2でC/C++のコード整形”で使ったclang-formatのほうが綺麗になります。


[
{ "keys": ["shift+space"], "command": "toggle_mozc" },
{ "keys": ["alt+ctrl+r"], "command": "reindent", "args": { "single_line": false }}
]


おわりに

また長い記事を書いてしまいました。
いろいろ便利に使うためには面倒な設定が必要ですが、これもまたSublime Text 2の面白いところです。また何か便利なパッケージがあれば紹介したいと思います。
何か役に立つことがあれば幸いです。以上です。

2014年11月18日火曜日

つくばチャレンジ2014

つくばチャレンジ2014にKIT-C3とKIT-C4の2台のロボットで出場しました。
昨年は本走行2日前につくばに入りましたが、準備の時間が足りなかったので今年は1周間前からつくばに入りました。おかげで実験走行には3回出ることができました。

走行についてですが、昨年までは主にGPSを使った走行をしていました。しかし、昨年の経験からスタート地点ではGPS(A100)が受信しづらいことが分かっていました。そこで今年は、環境地図を作ってスキャンマッチングで自己位置推定を行う方法に切り替えました。
結果は、KIT-C3(セニアカーを改造したロボット)が370[m]、KIT-C4(独立二輪ロボット)が90[m]でした。
KIT-C3が失敗した理由はオドメトリの精度が悪く、スキャンマッチングが上手く行かないとすぐに自己位置推定が破綻してしまう問題があったためです。オドメトリの精度向上が必要です。
KIT-C4は少しパラメータの調整不足でした。

左がKIT-C3、右がKIT-C4

2014年10月5日日曜日

Sublime Text 2でC/C++のコード整形(Ubuntu 14.04 LTS)


前回の記事の続きです。前回はSublimeClangを使って補完機能と文法チェック機能を追加しました。
この記事はSublime Text 2でC/C++のコードを整形する方法を紹介します。これは長いコードを書いている際や、途中でif文やfor文の中括弧がどこにかかっているのかわからなくなってしまったときに役立ちます。
前回のSublimeClangよりも手軽に導入できるので、さっそくやってみます。

手順1

コード整形に必要なファイルをダウンロードしてきます。
まずclang-formatをダウンロードしてきます。これが今回の機能を使うための根幹になるバイナリファイルです。
LLVM Download Page
http://llvm.org/releases/download.html
Ubuntu 14.04用の物をダウンロードしてきます。
ダウンロードしてきた「clang+llvm-3.5.0-x86_64-linux-gnu-ubuntu-14.04.tar.xz」を解凍します。コード整形に必要なファイルはclang+llvm-3.5.0-x86_64-linux-gnu/bin/にあるclang-formatだけですので、これだけを解凍してもらって構いません。
解凍したclang-formatを/usr/local/binの中にコピーします。
コピーしたら確認のため、ターミナルを開いて、「clang-format -help」と入力してみてください。オプションの説明がつらつら出てきたら問題無いです。


次にSublime Text 2に導入するパッケージをダウンロードします。今回のパッケージはPackage Controlにはありませんので直接ダウンロードしてきます。

https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/clang-format-sublime.py
これを~/.config/sublime-text-2/Packages/Userにコピーします。

手順2

Sublime Text 2を起動してキーボードショートカットを追加します。メニューから「Preferences」→「Key Bindings - User」を選択します。そして次の一行を追加してください。すでに何かのショートカットを追加している場合、追加する行の前の文章のあとにコンマを打ち忘れないように。
{ "keys": ["ctrl+shift+c"], "command": "clang_format" } 

使い方

今までどおり、コードを書いてコードを整形したい箇所を選択してください。すべてについて整形したい場合は「Ctrl+A」で全選択します。そしてそのあと先ほど設定したショートカット「Ctrl+Shift+C」で整形します。大げさに汚くしたコードを整形した結果を下に示します。


インデントが綺麗になっているのはもちろん、変数と変数の間に空白がひとつ打たれたり(プログラムの5行目)、12行目にかけての不自然なcoutの改行など色々修正してくれています。

更に極める

今の状態でも十分な気がしますが、プログラムが綺麗だと感じる書き方はひとそれぞれなはず。上の例だとwhileとあとの条件文を書くカッコとの間に空白はいらないな。とか
これを細かく設定することができます。
ホームディレクトリに「.clang-format」の名前で設定ファイルを作成します。
設定については下記のサイトを参考にしてください。
ClangFormatスタイルオプション
http://algo13.net/clang/clang-format-style-oputions.html
サイトに書いてあるBasedOnStyle:をLLVM、google、Chromium、Mozilla、WebKitのいずれかにするだけで大体のスタイルを決定できます。
これを「.clang-format」に一行ずつ記述していきます。
先ほどのサイトにはそれぞれのオプションを1つずつ指定できるような設定項目が記載されてますので、これを参考に自分のスタイルにフィットするように調整してください。


まとめ

2つ記事にわたってSublime Text 2のC/C++の開発環境を整える設定方法を書きました。
確かに設定は面倒ですが、もしかしたら開発の進捗に大きく差がでるかもしれません。
私はこれらの設定方法を確立するのにかなりの時間を費やしてしまいましたので、そういった意味では卒研の進捗に大きな差が出てしまったかもしれません。

Sublime Text 2は標準でも十分に便利な機能がたくさん搭載されていますが、さらに魅力的な機能を追加することができるのがいいですね。情報はemacsより少ないですが。
また便利なパッケージがありましたら紹介したいと思います。

Sublime Text 2でC/C++の開発環境を強化する(Ubuntu 14.04 LTS)

こんにちは。
今回はSublime Text 2の拡張機能である「SublimeClang」を使ってC/C++のプログラミングを楽にしようという記事です。
研究室ではもちろん、つい最近ではサーキットの1年生までがemacs、emacs言い出しているもんで悲しいです。Sublime Text 2のほうが先進的で使いやすいのに...
今回の記事を読んでちょっと使ってみようかなと思っていただければ幸いです。

前準備

今回、動作を確認した環境は
Ubuntu 14.04 LTS 日本語Remix
Sublime Text 2

Sublime Text 2に関してはお決まりのPackage Controlを入れていること
以下Sublime Text 2をST2と記す。

手順1

ST2でパッケージコントロールを呼び出して「Package Control: Install Package」を選択し、「SublimeClang」と入力してパッケージを導入。



これで終わり!と言いたいところですが、一筋縄ではいかないようです。Linuxでは下の写真のようなアラートがでます。Macでは出ないのに...

 

この解決方法はすでに他のサイトで紹介されています。これに関してはとてもわかり易いサイトがありましたので、そちらの方を参考にしてください。
Sublime TextでC++の開発環境を作る
http://qiita.com/nagakenjs/items/e06911f4ff9e9871cd2b
このサイトの”エラー対応”のところを参考にして一行ずつ確実にコマンドを入力してください。

手順2

すべてのコマンドを入力し終えたら1回ST2を閉じて再び起動させます。
すると先ほどのエラーのアラートは出なくなりましたが、次には写真のようなエラーが下のウィンドウに出ます。


どうやら'c++config.h'が見つからないようなので、こいつの場所を教えてやる必要があるみたいです。したがってSublimeClangの設定ファイルをいじります。設定ファイルは下のようにメニューから引っ張ってくるか、ターミナルなりファイラーなりでこの場所にアクセスしてください。
~/.config/sublime-text-2/Packages/SublimeClang/SublimeClang.sublime-settings


このファイルの266行目にかけてのオプションに一文追加します。

    "options":
    [
        "-isystem", "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/",
        "-isystem", "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/c++/4.2.1",
        "-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/",
        "-isystem", "C:\\MinGW\\lib\\gcc\\mingw32\\4.7.0\\include",
        "-isystem", "C:\\MinGW\\lib\\gcc\\mingw32\\4.7.0\\include\\c++",
        "-isystem", "C:\\MinGW\\lib\\gcc\\mingw32\\4.7.0\\include\\c++\\mingw32",
        "-isystem", "C:\\MinGW\\include",
        "-isystem", "/usr/include",
        "-isystem", "/usr/include/c++/*",
        "-isystem", "/usr/include/x86_64-linux-gnu/c++/4.8/",
        "-Wall"
    ],

277行に追加したらSublimeClang.sublime-settingsを保存。これで先ほどのエラーは消えると思います。

実際に使ってみる

SublimeClangでの補完は変数名や関数を定義している場合、該当している変数、関数をサジェストしてくれます。


またClangの文法チェックについては、例えば定義していない変数(図中ではsum)があれば、そのファイルを保存したタイミングで下のように指摘してくれます。



補足

メイン文と関数を別々のファイルで書いてるときに、関数ってどこで定義したっけ?ってときがありますよね。そんなときは右クリックで「Go to Definition」と「Go to Implementation」を使います。「Go to Definition」でそれが宣言されている箇所にジャンプし、「Go to Implementation」で実装されている箇所にジャンプします。変数に関しても同様です。

この機能に関してはショートカットキーがあるのですが、ショートカットキーがUbuntuシステムのHUD (Head Up Display)に使われるAltキーと干渉してしまうので、下のサイトの用に変更するといいです。
ぬるグラマー向け開発環境構築
http://qiita.com/disktnk/items/7e499ddf08935e191bc7

また標準ではC++11の書式には対応しておらず、エラーがでます。これを解決するにはSublimeClang.sublime-settingsを書き換えます。146行目にある"additional_language_options":以下のコメントアウトに従います。149行目の[]にオプション"-std=c++11"を追加するだけです。


長くなりましたが以上です。あとはひたすらコードを書くだけですね。
次はST2でC/C++のコードの自動整形ができるようにする記事を書こうかなと思っています。
書きました→http://cirkitrwrc.blogspot.jp/2014/10/sublime-text-2ccubuntu-1404-lts_5.html
最後まで閲覧していただき、ありがとうございました。


2014年9月16日火曜日

Gim30を購入しました。

こんにちは、プログラミング担当のAです。

株式会社移動ロボット研究所よりGim30というLRFを揺動機構で動かして3次元点群を取れるようにする機械を購入しました。

Windowsでとりあえず動作確認をしましたが、これからどうやって使っていくのか興味深いですね。動作している様子を撮影しましたので載せておきます。

2014年8月16日土曜日

ODEでサイコロのシミュレーション


こんにちは。
突然ですが今日のテーマはODEを使ったちょっとしたプログラムです。
ある日、研究室の隣の人がサイコロを振って、出た目の数×10分ずつしっかり集中するという変なゲームを始めました。
そこでODE(Open Dynamics Engine)を使い、サイコロを振って出た目を判定するシミュレーションを行ってちゃちゃっと勉強時間を決めてしまいましょう!というものです。
サイコロはODEで描画できる基本図形(立方体と円柱)でサイコロの本体と数字を表す目を表現しました。チマチマと寸法、位置、重心を定義して作成した結果が下の図です。

なんとなくそれっぽいものが出来ました。ソースコードはあとでリンクを貼っておきますが、一つ一つの数字の目を表現するのにコードがとても長くなってしまいました。もうちょっと賢く書けるといいですね。
 あとサイコロを落とすとき落とす姿勢を固定してしまうと、毎回実行して出る目が一緒になってしまいますから乱数をつかってサイコロの姿勢をランダムに決定します。このコードについては下に示します。

//引数:手に入れたい乱数の範囲(minからmax)で少数点第何位(digit)まで求めるか
double GetRandom(double min,double max, int digit){
  double ten,R;
  static int srand_flag = 0;

  if (srand_flag == 0) {
    srand((unsigned int)time(NULL));
    srand_flag = 1;
  }

  ten = pow(10, digit-1);
  R = min*ten + (int)(rand()*((max-min)*ten+1.0)/(1.0+RAND_MAX));
  return R/ten;
}


void Randam()
{
  dReal theta[4];

  for (int i = 0; i < 4; i++) {//※注意1
    theta[i] = M_PI*GetRandom(-2,2,4);//-2piから2piまでの角度をランダムに決定
  }
  dRFromEulerAngles(R, theta[1], theta[2], theta[3]);//サイコロの姿勢の回転行列をオイラー角で決定
}

※注意1:Macで実行したところ配列の一番目の要素が変化しないという不都合な現象が起きたのでひとつ余分に取得して一番目の要素を無視して使っています。
参考: C言語の乱数発生について質問です。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1258942042
これで高いところから落とすだけでコロコロっとランダムに転がりますから本来の目的は達成できるのですが、あと人間の目で出た目を判別するだけではなく、プログラムでもちゃんと転がったあと何が出たのかを判定するコードを書きました。これについては該当する関数についてコードを下に示します。

int detame()
{
  const dReal *linear_vel;
  const dReal *pos1, *pos2, *pos3, *pos4, *pos5, *pos6;
  double pos[6];
  double max = 0.0;
  int max_num = 0;

  linear_vel  = dBodyGetLinearVel(dice.body);//サイコロのそれぞれx,y,z方向の速度を取得

  if(cnt>=300 && linear_vel[0] <= 0.00000001 && linear_vel[1] <= 0.00000001 && linear_vel[2] <= 0.00000001 ){
  //cntはsimloopが何回呼び出されたかのカウンタ、これが300カウントを超えたかつ、x,y,z方向の速度がものすごく小さくなったら
  //サイコロの目の位置を1から6の目に関してゲット
    pos1 = dBodyGetPosition(one.body);
    pos2 = dBodyGetPosition(two[0].body);
    pos3 = dBodyGetPosition(three[0].body);
    pos4 = dBodyGetPosition(four[0].body);
    pos5 = dBodyGetPosition(five[0].body);
    pos6 = dBodyGetPosition(six[0].body);

  //z座標のみ取り出して別の配列に格納
    pos[0] = pos1[2];//1の目のz座標
    pos[1] = pos2[2];//2の目のz座標
    pos[2] = pos3[2];//3の目のz座標
    pos[3] = pos4[2];//4の目のz座標
    pos[4] = pos5[2];//5の目のz座標
    pos[5] = pos6[2];//6の目のz座標

  //z座標の最大値を求めて一番高い位置にある目を決める
    max = pos[0];
    max_num = 0;
    for(int i = 1; i < 6; i++){
      if(pos[i]>=max){
        max = pos[i];
        max_num = i;
      }
    }
    if(judge == 0){//simloopの中で一回だけ出た目をprintf
      printf("出た目は %d !!\n", max_num+1);
      judge = 1;
    }
  }else{
    max_num = -1;
  }

  return max_num+1;//一応出た目をリターン
}

これでサイコロシミュレータの完成です。これで効率的に勉強ができますね。このサイコロシミュレーターすべてのソースコードは下のリンクからダウンロードできます。
ダウンロードはこちら(Googleドライブ)
動作はODE 0.13でOSはUbuntu 14.04とMac OS X 10.9.4で確認しています。Windowsは動作未確認です。ごめんなさい。またいろいろごちゃごちゃやってますので環境によってはうまく動作しないかもしれません...

以上のことができたらサイコロをもっと増やして遊んでみるのも楽しいかもしれません。サイコロを25個定義してシミュレーションを行った動画です。これだったら勉強集中時間も勝手に長くなりますし。となりのお友達も喜んでくれるでしょう。



また本来の活動とは関係のない内容でしたね。しかしODEではロボットの動作シミュレーションもできたりしますから、関係がない訳ではないかもしれません。
今日はここまでです。ありがとうございました。

参考にさせて頂いたサイト
demura.net: ロボットの開発と教育
http://demura.net/
出村先生、「ロボットシミュレーション」の書籍、サイト共にわかりやすい内容でいつもお世話になっております。ありがとうございます。

2014年8月6日水曜日

ROSの勉強をはじめました

プログラム担当のAです。
最近はTeX関連の投稿が多いですね。

ところでタイトルにもあるようにROSの勉強をはじめました。
きっかけは、Ubuntu 14.04がROSでサポートされたからですね。
公式のチュートリアルを一通りやりました。チュートリアルには日本語版もありますが、英語版のチュートリアルを頑張ってやるのがいいと思います。

短いですが、それでは。

2014年8月5日火曜日

Sublime Text 2でTeXを使う (Ubuntu 14.04 LTS版)


こんにちは
最近、WindowsよりもUbuntuを開いている時間が圧倒的に多くなったので、ついにUbuntuにもTeXを導入することにしました。
TeXをUbuntu14.04LTSに導入する手順は以下の記事にプログラム担当のAさんが書いてくれていますのでそちらを参照して行いました。
 Ubuntu14.04LTSにemacsのためのTeXの日本語環境を整える
いつもTeXでレポートを書くのですが、そこで必要になってくるのがエディタです。 Aさんはemacsを使って書いていますが、私はSublime Textに恋しているのです。
そこでUbuntu環境でもSublime Text 2を使ってTeXをコンパイルしたくなったのでその方法を記事にします。


前準備

今回、動作を確認した環境は
Ubuntu14.04LTS日本語Remix(3.13.0-30-generic)
Sublime Text 2 Version 2.0.2, Build 2221

Sublime Text 2に関してはPackage Controlが導入されていることが前提です。


手順1

こちらを参照して”YaTeXのインストール”の手順にいく前までの操作を行ってください。
私が導入した時にはTeXLive2014がリリースされておりましたので、その点注意が必要でした。


手順2

手順1が終わったら、 Sublime Text 2の設定です。
「Shift+Ctrl+P」でコマンドパレットを呼び出し、Package Control: Install Packageと入力してください。


このあとLaTeXToolsと入力し、LaTeXToolsをインストールします。以下のメッセージが出たら成功です。


次に「Shift+Ctrl+P」でコマンドパレットを呼び出し、「LaTexTools: Reconfigure and migrate setting」と入力します。


入力してEnterしたあと、成功したよ!のメッセージウィンドウが出ればOKです。



手順3

ここから重要な作業になります。
Sublime Textのメニューの「Preference」の項目から「Browse Package…」を選択し
LaTeXTools→builders→traditionalBuilder.pyを開きます。
この操作はターミナルからサッっと行ってもいいです。
ファイルの場所は「~/.config/sublime-text-2/Packages/LaTeXTools/builders/traditionalBuilder.py」
でした。
このファイルの18から20行目のコード

DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd",
    "-e", "$pdflatex = '%E -interaction=nonstopmode -synctex=1 %S %O'",
    "-f", "-pdf"]

をコメントアウト(該当箇所を選択したあとCtrl+/)し、以下の記述を追加する

DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd",
     "-e", "$latex = 'uplatex %O -interaction=nonstopmode -synctex=1 %S'",
     "-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
     "-e", "$bibtex = 'upbibtex %O %B'",
     "-e", "$makeindex = 'makeindex %O -o %D %S'",
     "-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
     "-f", "-norc", "-gg", "-pdfdvi"]

次にホームディレクトリ直下に「.latexmkrc」というファイルを作成し、下のおまじないを記述。
これはUbuntu14.04LTSにemacsのためのTeXの日本語環境を整えるで紹介されている記述と共通です。

$latex = $latex='platex -kanji=utf8 -guess-input-enc -synctex=1 -interaction=nonstopmode %S';
$bibtex = 'jbibtex';
$dvipdf = $dvipdf='dvipdfmx -f ptex-ipaex.map %S';
$dvips = 'pdvips';
$dvi_previewer = 'start xdvi';
$pdf_previewer = 'start evince';
$pdf_mode = 3;

ここまでできたら設定は以上です。


確認

例のごとくテスト用のTeXファイルを作成します。以下のような文章で「test.tex」としてファイルを保存し、「Ctrl+B」でコンパイルします。

\documentclass{jsarticle}
\begin{document}
English

日本語

余弦定理
\begin{eqnarray}
f(x)  =  \sin(x)
\end{eqnarray}
\end{document}


TraditionalBuilder: Invoking latexmk... done.
の一行が表示されれば、成功です。生成されたPDFを確認してみてください。

これでSublime Text 2を使ったTeX文書の作成は以上です。
最近はなぜかTeXの記事が多いですね...
サーキット本来の活動も後輩たちががんばっているみたいなので、そういった記事も公開されていくと思います。お楽しみに。

参考にしたサイト

みずぎわブログ様
【2014-3-12以降版】Mac Sublime Text2 or Sublime Text3 で Tex 導入の初歩からhttp://yusuke0.hatenablog.com/entry/2014/04/06/111945

2014年7月14日月曜日

Ubuntu14.04LTSにemacsのためのTeXの日本語環境を整える

こんにちは、プログラム担当のAです。今回はUbuntu14.04でTeXの環境を整えたときの備忘録です。ちょっと昔にやったものなので間違いがあるかもしれません。間違いがあれば、ご指摘お願いします。
また、今回はemacs+latexmkを使います。あと基本的にTeXWikiに載ってますし、最新情報はそちらを参照すべきでしょう。

前提

  • emacsの基本的な操作がわかる
  • TeXで何か書いたことがある
  • Linuxの基本的なコマンドがわかる(lsやcdなど)
  • ホームディレクトリ内のディレクトリ名が英語にしてある(Desktop,Documentsなど)英語でなくても動くかもしれませんが検証はしてません。やり方はここでは紹介しません。

環境

  • Ubuntu14.04LTS日本語Remix(3.13.0-30-generic)
  • GNU Emacs 24.3.1

手順


TeXLive2013のインストール

[追記(2014/08/05)]
2014.8.5時点で他のメンバーが試してみたところ、wgetがうまくいきませんでした。公式サイトからinstall-­tl-­unx.tar.gzをブラウザ経由でダウンロードしてください。
あと、ブラウザ経由でダウンロードできるものはTeXLive2014です。最後の手順のパスを以下のように変更してください。これ以外は問題ないと思います。

 $ sudo /usr/local/texlive/2014/bin/x86_64-linux/tlmgr path add
[追記ここまで]

端末を開いてDownloadsディレクトリに移動します(実際にはどのディレクトリでもいいでしょう)。その後、
 $  wget  http://ring.maffin.ad.jp/pub/text/CTAN/systems/texlive/tlnet/install-­tl-­unx.tar.gz
を入力してエンターキーを押して実行します。するとinstall-tl-unx.tar.gzがカレントディレクトリに保存されます。install-tl-unx.tar.gzを以下のコマンドで展開します。
 $ tar xvf install-tl-unx.tar.gz
展開されたディレクトリに移動します。
$ cd install-tl-xxxxxxxx
install-tl-xxxxxxxxのxxxxxxxxには日付が入ります。root権限でインストールを実行します(ここが時間かかる)。
$ sudo ./install-tl
パスワードが要求されるので入力します。そのご「I」(アイ)を入力してインストールを開始します。インストールが終了したら以下のコマンドで/usr/local/binディレクトリにシンボリックリンクを追加します。ただし、以下のコマンドの2013の部分とx86_64-linuxは環境やインストールTeXLiveのバージョンによって変わる可能性があります。
 $ sudo /usr/local/texlive/2013/bin/x86_64-linux/tlmgr path add

extracbbの追加

これはバウンディングボックスを設定するツールです。以下引用。ただしweb2cディレクトリは筆者の環境ではすでに存在する模様。TEXMFLOCALの値を確認します。
$ kpsewhich -var-value TEXMFLOCAL
/usr/local/texlive/texmf-local
/usr/local/texlive/texmf-local/web2c/texmf.cnfを作成します。
$ sudo mkdir -p /usr/local/texlive/texmf-local/web2c
$ sudo touch /usr/local/texlive/texmf-local/web2c/texmf.cnf
/usr/local/texlive/texmf-local/web2c/texmf.cnfを編集します。shell_escape_commandsを以下のように編集して保存します。
shell_escape_commands = \
bibtex,bibtex8,bibtexu,upbibtex,biber,\
kpsewhich,\
makeindex,mendex,texindy,\
mpost,upmpost,\
repstopdf,epspdf,extractbb
※上記で\はバックスラッシュです。
mktexlsrを実行します。
$ sudo mktexlsr

 

フォント埋め込みの設定


フォント埋め込みのための設定です。
$ sudo kanji-config-updmap-sys ipaex

 

YaTeXのインストール 

 ここからyatexのRelease版をダウンロードして展開します。展開したフォルダ名をyatexに変更します。ちなみに筆者の環境では~/Downloads/yatexとなっています。emacsを使ったことがあれば~/.emacs.dディレクトリがあるはずです。先ほど名前を変更してyatexフォルダをコピーして.emacs.d/site-lisp/にコピーします.site-lispディレクトリがなければ作ります。
$ mkdir ~/.emacs.d/site-lisp
$ cp -r ~/Downloads/yatex ~/.emacs.d/site-lisp/
~/.emacsか~/.emacs.d/init.elに設定を記述します。

;;YaTexの設定
(setq auto-mode-alist
      (cons (cons "\\.tex$" 'yatex-mode)  auto-mode-alist))
(autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t)
(setq load-path (cons (expand-file-name "~/.emacs.d/site-lisp/yatex") load-path))
(setq YaTeX-inhibit-prefix-letter t)
(setq YaTeX-kanji-code nil)
(setq YaTeX-latex-message-code 'utf-8)

;;(setq tex-command "latexmk -pvc")  ;;保存したら自動で再コンパイル
(setq tex-command "latexmk")
(setq dvi2-command "evince")
他にも便利な設定がありますが、ここではやりません。「;」はコメントアウトです。次にlatexmkの設定です。上のyatexの設定ではlatexmkを使うことになっています。TeXLiveのインストール時にlatexmkもインストールされているはずです。
 ホームディレクトリ直下に.latexmkrcというファイルを作ります。(頭にドットについています)そして以下を記述します。
$latex = $latex='platex -kanji=utf8 -guess-input-enc -synctex=1 -interaction=nonstopmode %S';
$bibtex = 'jbibtex';
$dvipdf = $dvipdf='dvipdfmx -f ptex-ipaex.map %S';
$dvips = 'pdvips';
$dvi_previewer = 'start xdvi';
$pdf_previewer = 'start evince';
$pdf_mode = 3;
上記の細かい説明は参考サイトに譲ります。以上で終わりです。お疲れ様でした。 
  
[追記(2014/08/05)]
 init.elと.latexmkrcのソースがうまくコピーできない事象が確認されました。googleドライブにアップしたのでうまく行かない場合はダウンロードしてみてください。
ダウンロードはこちら↓
init.el
latexmkrc

.latexmkrcに関してはファイルネームにドットを抜いております。自分で書き換えてください。

[追記ここまで]

テスト

それでは動作確認をしましょう。TeXではいろいろなファイルができてしまうのでドキュメント毎に専用のディレクトリを用意するのがよいでしょう。
$ mkdir ~/Documents/tex-test
$ cd ~/Documents/tex-test
$ emacs test.tex &
と入力すればemacsが立ち上がり「やてふ」モードになっているはずです。半分より上の白いところに以下の記述を貼り付けましょう(C-y)。
\documentclass{jsarticle}
\begin{document}
English
日本語
余弦定理
\begin{eqnarray}
f(x)  =  \sin(x)
\end{eqnarray}
\end{document}
貼り付けたら保存します。保存はC-­x  C-­sです(cntlを押しながらxを押して、cntlは押しながらxを離してsを押す。)下の方に wrote  〜〜〜 test.tex  と書かれたら保存できています。
 では次にコンパイルしてみましょう.
まずC-­c  C-­t(cntlを押しながらcを押して、cntlは押しながらcを離して、tを押します)と押します。すると下の方にいろいろ出てきますね。そこで「j」を押します。この時日本語入力モードだとダメです。ちゃんと「j」が押されると下半分にいろいろ出てきてその後成功すればpdfが表示されるはずです。
表示されれば完璧です。お疲れ様でした。なお警告が出ますが、上手く行っていれば問題ないようです。
 YaTeXのコマンドはたくさんあるのでここでは紹介しませんが、多くの便利なコマンドがあるので頑張って使いこなすと早く書けるようになれるでしょう。

参考

TeX Wiki : http://oku.edu.mie-u.ac.jp/~okumura/texwiki/
初心者がLinux Mintを導入する(9) : http://note.chiebukuro.yahoo.co.jp/detail/n221034

2014年7月12日土曜日

定期更新[7月12日]

http://shopdd.jp/blog-entry-1097.html
上のサイトを参考に、自分のパソコンでやったことを報告させて頂きます。

今回、Windowsパソコンでやってみた事は、

「コマンドプロンプトで"ls"を使えるようになりたい」という、太古の昔から私が欲していた技術です。
人類が欲するべき根本的な欲求ですね。

さあ、必要なことはすべて上記のサイトにあります。実行あるのみです。

方法1:"doskey ls=dir"
この方法は、doskeyコマンドによってエイリアス設定を一時的にする方法です。
他人のPCをいじくる時には確かに、この方法の方がいいですね。

doskeyコマンドは、"doskey マクロ名=テキスト"のような使い方が一般的なようです。
ここで、"doskey /macros"
を入力しましょう。

ls=dir

という表示が出ましたでしょうか?では、一旦コマンドプロンプトを終了して、もう一度コマンドプロンプトを立ち上げてみましょう。

"doskey /macros"

あれ?なにも出てこないぞ?そうです、なにも出てこないのです。
つまり、一時的な設定なので、他人のPCでも気軽に設定を変えられるという事なのですね。

方法2:"ls.bat"
この方法を説明します。
まず、メモ帳に"dir%1"と打ち込み、"ls.bat"という名前で、テキストファイルではなくすべてのファイルで保存してみましょう。
次に、C:/Windows/の中にファイルをコピーします。

以上です。
後は、コマンドプロンプト上で"ls"を入力してみて下ちい。


はい、という事で、私はワードソフトをコマンドプロンプト上で"word"と打てば開けるようにしてみました。使うかどうかは聞かないでください。

2014年7月2日水曜日

技術レポ

3D CAD

CAD(Computer Aided Design)
CADは、どうやら今の設計において、なくてはならないものであるようです。
http://itpro.nikkeibp.co.jp/article/NEWS/20130918/505383/

上のページにあるように、今、3DCADの無料ソフトが存在するようです。九州工業大学のCADは、何万円とするものより、初心者には扱いやすそうですね。(精神的に)

ところで、今現在テザリングでダウンロードしているのですが、20分もかかるではないですか・・・。

兎にも角にも、インストールは超簡単でした。

定期更新[7月2日]

1月程更新をやめていましたが、久しぶりに戻って来て参りました。
お久しぶりです。

いよいよ後1月程経てば、夏休みですね^
残りの学生生活を十分に楽しみましょう。

とはいっても、もはや自分はマンネリ化しとりますが。

ここ最近のCIR-KITの活動は、6月の20日程に、じゃんけんゲームの発表会があったぐらいですね。(他にもいろいろやってますよもちろん)
新しくサークルに入って来てくれた人たちには、C言語の理解を深めてもらっていますが、早くも進行に差が出てきましたが大丈夫でしょうか。わからない事があれば聞きに来てね。

今回は少し趣向を変えまして、Windowsでのusbのマウント・アンマウントについて紹介したいと思います。(1時間程度の私の冒険の軌跡です。)

要は、Windowsを使い慣れていなさすぐるので、コマンドプロンプトをもっと使い慣れましょうね、という理屈なわけだす。

目的:コマンドプロンプトからのusbメモリのマウント・アンマウントができるようになる。

 

手順1:ググる

1:windowsマーク + R :「ファイル名を指定して実行」
2:cmdと入力
3:mountvolと入力
4:「現在のマウント ポイントとボリューム名の考えられる値」を見ると、今繋がっているusb,sdカード,Windows(C:)などがあるのが分かります。
5:mountvol D:\ /P を入力(アンマウント)
6:「アクセスが拒否されました」と言われ、びっくりする。
7:ならば、と、mountvol D:\ ボリューム名 と入力。この際、コマンドプロンプトに表示されている文字をコピーするには、まず左クリック→範囲指定→ど☆ラッグ→左上のアイコン→編集→コピー→右クリック→貼り付け。はあ、疲れましたね。やっぱlinuxがいい・・・。(使い慣れてます)
8:Enter‼
9:「ディレクトリが空ではありません」と言われ、そりゃそうだと思う。

ここまでが手順1です。なぜマウント・アンマウントができないのでしょうか。

linuxでのマウント・アンマウントを思い返してみましょう。
sudo とうち、管理者権限にわざわざなっていたはずです。
ならば、Windowsでの管理者権限のなり方が分かれば、こっちのもんですね。

手順2 :ググる

1:検索にかけると、下のサイトが見つかりました。右クリックすれば、管理者として開ける・・・。

引用元 http://windows.microsoft.com/ja-jp/windows/command-prompt-faq#1TC=windows-8

2:さあ、開いたら、アンマウントしましょう。

mountvol D:\ /P

3:うまくいったら、マウントしてみましょう

mountvol D:\ /ボリューム名

私はうまくいきました。
これで、ひとまず終了としましょう。
コマンドプロンプトのコピー・貼り付けがマウスなしでできるようになれれば便利なんだけどなぁ・・・。

2014年6月6日金曜日

定期更新[6月6日]

定期更新です。

随分期間が空いてしまいましたが、最近はテストで忙しいらしく、活動があまりできていません。
が、しかし、

本日は前々からお話しのあったバイトの件でミーティングがありました。

医学系のバイトですが、この件が成功と認められれば、もっと本格的に連携をしていくようです。
今日のお話しでは、人間は他人と比較されるよりは、1か月前の自分、1年前の自分と比較される方が衝撃を受けるという印象的なお話がありました。医学系と工学系のコンビネーションがうまくいけば、新しい商品ができる予感が・・・

大学生になって、忘れてしまった事と新しく身に着けた事の差分を取ったら、プラスでしょうか、マイナスでしょうか。これからも日々精進していきましょう。

ところで、今1年生には今現在、じゃんけんゲームをして頂いていますが、もう完成に近いような人もいます。が、あまり来てくれない人もいます。みんなが完成させてほしいので、周りの人にいっぱい聞いてください。

2014年5月21日水曜日

定期更新[5月21日]

定期更新です。

思えば、この2週間は大きくこの3つの出来事がありました。

1)ビュートローバー大会

2)新入生歓迎会

3)プレゼン


1,2はどちらも同日の出来事ですが。・・・なにか?

1)ビュートローバー大会終了


 この大会は1年生が大活躍でしたね。お疲れ様でした。最初は無理があるのではないかと心配していたんですが、皆が一生懸命に取り組んでくれて、とても充実した大会となりました。


 という事で、顧問の先生も招待して、当日はほとんどのCIR-KITメンバーがそろってくれました。お集まりいただき、本当にありがとうございました。思いの外大盛況だったので、ぜひまた来年もしましょう。

2)新入生歓迎会

よろしくお願いします。これから面白い事を皆で経験していきましょう。新入生歓迎会として、平和通り横のカルビ市場に行きました。食べ、飲み放題で1人2500円ほどかかりましたが、とても良い会をさせていただきました。カルビ市場さん、本当にありがとうございました。

3)プレゼン


先日、CIR-KITの予算が決まるプレゼンが終わりましたね。
部長さん、おっつーです。
スーツ姿でプレゼンしたんですが、先生方からの質問攻めに見事耐えきり、CIR-KITの活動の有意性をしっかりアピールできたのではないかと思います。結果が待ち遠しいですね。

最近は中間テストがたくさん入って来て、気が抜けない日々が続いています。
中間テストは気をしっかり入れて頑張りましょう。

来週のC言語講習会はCIR-KITの担当なので、ぜひ1年生の方、来てみてください。

2014年5月3日土曜日

定期更新 [2014年度GW]

5月

早くも春の季節も過ぎ去り、日が照れば汗がにじむような日々となりました。

今のところ、今年度入って来てくれた人は以下のとおりです
学部1年…9人
学部2年…1人
学部3年…2人

計12人の人たちぃ!!  (ぱちぱち~)

よろしくお願いします。

大会について

今度開催されるビュートローバーのライントレース大会は、
 
こんな感じです。
 
これがなかなかにムズイ…‼
 
でも、人数が増えれば大会っぽくなるし、結構楽しみにしてます。
部長曰く、”みんなでゴールできればいいね” だそうですが、果たして何チームゴールできるのか
 
乞うご期待!!?
 

C言語講習会についてお知らせ

皆にはmailで連絡してありますが、他団体と合同でやります。
前日に再度連絡しますので、C言語について自身が持てない方や、全くこういうの知らなかったという方は、ぜひ来てください。


2014年4月23日水曜日

CIR-KIT、五月の予定

今日は4月23日です。
いよいよ5月がやってくるぞ、というこの頃でありますれば、来月の予定を考えてみました。

こちら↓

5月
 
初旬
 

新入生歓迎
 
GW
 
なし
 
16
 
ビュートローバー大会・プレゼン
 
19~

 
試験休み(テスト一週間前)
 
26~中間試験

なんと!
新入生歓迎会が5月初旬に入っちゃってます!

(確定ではありません・・・)

こうしてみると、後一か月程で中間テストが入りますね。
中間テストの勉強と、CIR-KIT、大変ですが頑張ってまいります。

突然ですが、ビュートローバーの大会をCIR-KIT 内で開催することになりました。
新入生がたくさん来てくれて、我々も遊びたくなっちゃった~という事です。

今回企画した大会の内容は、プレゼン後にビュートローバーを走らせ、その得点・速さを競うというものです。1チーム2人で、自分らしいプレゼン・アルゴリズムを考え、ギャンギャンヌメヌメ走らせましょう。

て感じです。
わざわざビュートローバーも新しく買ってきちゃうので、
今年入ってきてくれた人たちは、ぜひ頑張って欲しいですね。


2014年4月22日火曜日

新入生歓迎イベント最終報告

こんにちは!

先日、予定していたCIR-KIT体験会の期日が終了しました!!

お疲れ様でした~

3月の時点では、新入生が入ってくれるかさえ心配していましたが、今年は大変意欲的な学生さんがいっぱい来てくれたので、技術系サークルCIR-KITに活気があふれております。

4月からはも繁にブログの更新をしていきますので、よろしくお願いします。

2014年4月14日月曜日

新入生歓迎イベントの中間報告

 桜も散り始めていたこの頃ですが、今日の日の雨で完全に桜の花びらも落ちてしまったのではないかと思われます。入学式から早いもので約一週間が過ぎ、九州工業大学の新入生または編入生の方々は慣れない事が多く、戸惑う事があったかもしれませんが、日々精進して頂きたいと願うばかりです。
 我々CIR-KITでは新入生歓迎イベントとして、ビュートローバー体験会を開催しましたが、思いの外例年よりも多くの学生が来てくれて、毎日がより忙しく、より騒がしい日々を過ごしています。まだ体験会に行きたかったけど行けていないという方がおられましたら、ぜひ来てください。二年生や三年生の学部生も大歓迎です。また、体験会の期日を過ぎてしまっても良いので、ものつくり工房に立ち寄ってほしいと思います。
 新入生の方々は、早くももビュートローバーのコースを一周できる人が続出し、皆さん高い意識を持って頑張ってます。また、Arduinoに手を出したり、C言語の勉強を本格的に始めたりと自由に活動してもらってます。この調子で、前期を乗り切ればいいですね。

2014年4月6日日曜日

ライントレースロボット体験会を開催します!

ライントレースロボットの体験会を開催したいと思います。

プログラミングの経験がなくても大丈夫。
ロボットとパソコンはこちらで用意しますので手ぶらでこれて気軽に体験できます。

ライントレースロボットとしてビュートローバーを使います。

ところ : ものつくり工房
とき : 4月7日(月) ~ 4月20日(日)
    平日は17 : 30 - 21 : 00、土日は10 : 00 - 18 : 00の間で1、2時間程度

何時から来ても大丈夫です。
みなさんのお越しをお待ちしています。

【追記】
説明を聞きに来るだけでもOKです。



2014年3月26日水曜日

Ubuntu12.04 LTS に PlayStation(R)3 DUALSHOCK 3 を Bluetooth を使って繋ぐ

お久しぶりです (-0-)/

このブログを開設してから最初の方は勢いがあったものの、最近は全然更新していませんでしたorz
 やっぱり、当番制にして更新しないとダメなようですね....

間が開きましたが、ロボットの開発は着実に行ってます!!
今回は、ロボットをコントローラで動かせたらいいなぁ....と思って、
まずはコントローラをパソコンに繋ぐ方法を調べてやってみました!
相変わらずぐーぐる先生の素晴らしさを知った今日この頃でした。

それでは、本題に入ります。
尚、本記事を読んで行われた処理や事故に対し、
当方は一切の責任を負いませんのであらかじめご了承ください。

★開発環境
  ・パソコン
    OS Linux Ubuntu 12.04 LTS  64bit
    Kernel 3.8.0-37-generic

  ・Bluetooth (受信機)
    Logitech 株式会社 LBT-UAN04C2BK

  ・コントローラ
    PlayStation(R)3 DUALSHOCK3 

★手順
  そもそも、パソコンとコントローラを繋ぐには方法が二つあります。
  それは、有線で繋ぐ方法と無線で繋ぐ方法です。
  何を当たり前のことを...と思うかもしれませんが、設定の大変さが全然違うので、
  まずは有線のやり方から紹介します。

  ・有線で繋ぐ場合
    USBポートにコントローラをぶっ挿す。
    以上です。めっちゃ簡単です。
    因みに、ちゃんと認識しているかは、

    /dev/input/js0   (他にもコントローラとか挿さってたら、js0->js1 or js2 ...etc)  
    
    があれば認識できてます!   

  有線で繋ぐのはめっちゃ簡単でしたね。
  でも、ロボットを"無線"で動かすことに意義があるんです。もう少し掘り下げましょう。
   今回使用したPCには残念ながら内臓のBluetoooth受信機が無かったため、
  上記のような受信機をUSBポートに挿して 使用しています。
  送信機にあたるコントローラはPlayStation(R)3のコントローラを使用しているため、
  Bluetoothでの通信が可能です。
  さて、ここまで準備ができたら、必要なライブラリを入れていきましょう!
  
  まず、Bluetoothの使用環境を整えます。
  
  $ sudo apt-get update
  $ sudo apt-get install bluetooth bluez-utils bluez-compat bluez-hcidump
  $ sudo apt-get install libusb-dev libbluetooth-dev

   できたら、BluetoothモジュールをUSBポートに挿して、(Bluetooth の電源を入れて)
  次のコマンドにより、Bluetoothが起動していることを確かめましょう。

  $ /etc/init.d/bluetooth status

  確認できたら、今度はコントローラの認識環境を整えていきましょう!

  $ sudo  apt-add-repository ppa:falk-t-j/qtsixa
  $ sudo apt-get update
  $ sudo apt-get install sixad

  ここまでできたら、ペアリングと呼ばれる、
  通信の際の機器のアドレス設定的な事を行います。
  方法は、まずコントローラをパソコンにUSBで繋ぎ、以下のコマンドを実行します。

  $ sudo sixpair

  ここで、以下のような結果が帰ってきたらペアリング成功です!
  失敗したと言う方は、エラーコードでググってみてください。
  するとQtAxiAのFAQサイトにひっかかると思うので、
  それぞれの指示にしたがってください。
  
  Current Bluetooth master: xx:xx:xx:xx:xx:xx
  Setting master bd_addr to: xx:xx:xx:xx:xx:xx

  この設定は一度うまくいったらあとはする必要はありません。
  ここまでできたら、もうあと少し!
  以下のコマンドを実行し 、パソコンからコントローラを外して、
  PSボタンを押してください!


   $ sudo sixad --start

  実行したら、PSボタンを押すように指令が出ますので、確認後押してください。
  コントローラがブルブルっと震え、
  4つのLEDのうち、どれか1つだけが光ったら成功です。
  おめでとうございます!!!
  一応、/dev/input/js0 が認識されているか確認しておきましょう。
  因みに、終了したいときはCntrl+Cで終了します。
   さらに、次回以降、パソコンの起動時に、接続を行いたいときは、
  
  $ sudo sixad --boot-yes

  と入力しておけば、おっけいです。

★ おわりに
  一通り説明しましたが、間違いも多々あるかと思います。
  何か間違いを発見した方は、是非、コメントにてお知らせください。
  次回は、接続したコントローラの情報をC言語を用いて取得する記事を書きます!

★ 参考サイト
  工作と小物のがらくた部屋 様
  ask Ubuntu 様