Goodbye, World

日々のプログラミングで得た経験を個人的な備忘録としてまとめてます.他のブログ・ページを参考させて頂いている部分が多いので,参考ページへのリンクを併記しております.

Ubuntuの見た目を格好良くカスタマイズ!

Ubuntuのデフォルト画面も好きですが,より自分好みにカスタマイズしてみます.

f:id:coffeegkgk:20161116080655p:plain

[参考サイト]:
conkyまたアップしてみた。: takayantu
Wallpaper & System Info Management Script — Crowd Surfing Echidnas
How to display your system info on your Linux desktop - Simple Help

続きを読む

tmuxによる複数コンソールの利用

Linuxで作業する際,複数の端末を利用する場面が多々ありますが,端末間でのコピペや他のファイルを参照するための画面分割ができると大変便利です.
そこで,端末を多重化するソフトウェアtmuxをUbuntuに導入してみます.

[参考サイト]:
モテるtmux – 超クールな設定 – まつぼ x Web
tmuxを使い始めたので基本的な機能の使い方とかを整理してみた - 完熟トマト

続きを読む

初心者のためのGitによるコード管理[Bitbucket編]

仕事上,複数のPCからプログラムの編集を行っていますが,Gitによるバージョン管理は非常に利便性が高く強力です.Bitbucketを利用したGitの利用方法を簡単にまとめます.GitHub等でも同様の方法で運用できると思います.

[参考サイト]:
commitとpushしかできない人のためのgithubの使い方まとめ - Just $ A sandbox

【初心者による初心者のためのGitHub】リポジトリへのプッシュまで。(Rails Ver) - Qiita

個人的 Git & GitHubメモ - MyEnigma

BitBucket(Git)が便利すぎるので使い方をまとめとく:なんとなしの日記

ブランチ切って更新してマージするまでの流れ - Qiita

続きを読む

ROSのコーディングのためのIDE:Qt Creator編

以前ROS用のIDEとしてEclipseの設定を紹介しましたが,今回はQt CreatorでROS packageの開発を行うための設定をまとめます.

参考サイト:
How to open ROS package by qtcreator - YouTube
catkin/Tutorials/using_a_workspace - ROS Wiki
Ide - Control Systems Technology Group
IDEs - ROS Wiki

続きを読む

ROS上でのKinect v1の導入方法

ROSでKinect v1を利用するためのパッケージが乱立していてひと目で分かりづらかったのでまとめてみました.

参考サイト:
Getting Started - OpenKinect

1.libfreenectのインストール

OpenKinect/libfreenect · GitHubからファイルを引っ張ってきて,ビルド後インストールします.

$git clone https://github.com/OpenKinect/libfreenect.git
$cd libfreenect
$mkdir build
$cd build
$cmake ..
$sudo make install

また,libfreenect/platform/linux/udev内のudevファイルをシステムにコピーしてあげる必要があります.

$sudo cp ~/libfreenect/platform/linux/udev/51-kinect.rules /etc/udev/rules.d
$sudo udevadm trigger

2.rgbd_launch/freenect_stackパッケージの導入/catkin_make

ros-drivers/rgbd_launch · GitHubros-drivers/freenect_stack · GitHubからそれぞれrgbd_launch,freenect_stackパッケージを取得しcatkin_makeします.

$git clone https://github.com/ros-drivers/rgbd_launch.git     #@catkin_ws/src/  
$git clone https://github.com/ros-drivers/freenect_stack.git  #@catkin_ws/src/  
$cd ../
$catkin_make

3.launchファイルによるkinectデータ取得ノードの起動

下記のように,ノードの起動時は目的に合った適当なlaunchファイルを使用します.
roslaunch freenect_launch freenect-xyz.launch
roslaunch freenect_launch freenect-registered-xyzrgb.launch

Fixed Frame : camera_rgb_optical_frame とした時,
Topic : /camera/depth_registered/points からポイントクラウドが得られます.
rviz等で確認してみて下さい.

EclipseへのVrapperの導入

IDEの機能が使いたくてEclipseを利用していますが,Vimライクな編集も行いたいと思い調べてみるとVrapperなるものを発見.VrapperはEclipse上でVimによるテキスト入力を可能にするプラグインで,Eclipseに導入することでVimモードのON/OFFができるようになります.導入方法をまとめてみましょう.

[参考サイト]:
Non Title
EclipseでVimのキーバインドがつかえるVrapperで世界変わったわ | メモ帳代わりのブログ
Eclipseのキーバインドをvim風にできるVrapperが素晴らしすぎる件について - ( ꒪⌓꒪) ゆるよろ日記
Eclipseのキーバインドをvim風にできるVrapperが "マジで" 素晴らしすぎる件について - basyura's blog

1.EclipseにPyDevをインストール

EclipseメニューのHelp->Install New Software...を選択し,Work with:欄に”http://pydev.org/updates”を入力する.後は流れに沿って.

2.EclipseにVrapperをインストール

PyDevと同様にWork with欄に”http://vrapper.sourceforge.net/update-site/stable”を指定して,表示される関連ソフトウェア全てにチェックをつけてインストール.


導入手順は以上です.Eclipseの再起動後にVimのアイコンが現れるので,アイコンをクリックすることでVimモードのON/OFFの切り替えが可能になります.ただし,Eclipseで定義されているショートカットキーの中にはVimで使用するものと重複しているものがあり,基本的にEclipse側の定義が優先されるのでVimコマンドに制限が生じてしまいます.

そこで,メニューのWindow->Preference->General->Keys内に定義されているコマンドのうちVrapper側で使用したい重複コマンド(Ctrl+Vなど)は,UnbindCommandでショートカットを削除してしまいましょう.

また,Eclipseフォルダ内の.vrapperrcファイルを編集することで,オリジナルのVim同様にVrapperをカスタマイズすることもできます.上記の参考サイトにいくつか例が載っていますので参考にして下さい.

ROS Indigo + C++11 使用時のPCLのエラー [未解決]

ROS IndigoではPCL1.7が利用されているのですが,C++11のコンパイラ使用時にpcl/filter内の関数を利用しようとしてヘッダをインクルードすると,コンパルは通っても実行時にSegmentation faultで死んでしまいます.

rosrun your_pkg your_node
-> segmentation fault (core dumped)


既に数人困っている方がいるようで,下記でディスカッションされていますが,結局のところPCL1.7自体に含まれるバグが原因のようです.

github.com
github.com



従って,上のサイトに書かれている通り,バグを避ける正当な方法は,PCL1.8を自分でビルドしPCL1.7の代わりとして利用することだと思います.

In the CMakeLists.txt of the latest PCL:

CMakeLists.txt: SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11"

In the CMakeLists.txt of your catkin package:

find_package(PCL 1.7 REQUIRED) -> find_package(PCL 1.8 REQUIRED)
(Instead of depending ros_pcl etc...)

この方法,PCLのみを利用した単体のプログラムでは決定的な解決法になると思いますが,ROSを利用している場合,PCL1.8を利用する自作パッケージとPCL1.7を利用しようとする他の(Built-in)パッケージとの間で競合が起こり,ライブラリへのリンクエラーが発生してしまう?ようです.

warning: libpcl_common.so.1.7, needed by /usr/lib/libpcl_kdtree.so, may conflict with libpcl_common.so.1.8

不勉強なため上記の解釈が正しいのか自信がありませんが,試行錯誤してもリンクエラーが解消できないため,現在はお手上げ状態です.
ROS自身がPCL1.8を取り込むのを待つしかないかなぁ。。。

[追記]
どうやらDebugモードでビルドした時のみのエラーのようです.CMAKE_CXX_FLAGS_DEBUG に -O1 オプションをつけることで何故か回避できるとの情報あり.stackoverflow.com