2017年3月9日木曜日

投稿先を変更しました

お久しぶりです.

github で公開されている新しいバージョンは技術系ブログということで,
こちらは CIR-KIT の活動日誌として活用したいと思います. これからもよろしくお願いします.

2015年2月14日土曜日

ブログ移転しました

お久しぶりです。
cir-kitブログを移転することになりました。
これからもどうぞよろしくお願い致します。

移転先はここです。↓

https://cir-kit.github.io/

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