■
ReconJetの起動
目的
ReconJetの起動・初期設定についてです。
ReconJetはスポーツ用のメガネ型ウェアラブルデバイスです。 Microsoft社のHoloLensなどとは違い、現実空間へのホログラム投影ではなく、右下固定で情報を表示することができます。
方法
では、ここからはReconJetの起動を行っていきます。
準備
まずは下記のものを用意してください
- ReconJet
- MicroUSBケーブル
- ネットワークに接続したWindowsマシン
ReconJetとパソコンを接続するためにはインターネット接続が必要です。
ソフトウェアのインストール
パソコンを使って設定をするために、ソフトウェアをインストールします。
まずは、サイトにアクセスしてください。Get StarTed | Recon Engage
ログインを求められるので登録をしてください。
登録をして指示通り進めると、UpLinkのダウンロードボタンが表示されます。押してダウンロードしてください。
ダウンロードしてインストールします。
ReconJetの接続
ReconJetの本体後方にあるポートからパソコンのUSBポートをマイクロUSBケーブルでつなぎます。ReconJetの下部後ろのボタンで電源を入れます。
ここで、(またはそれ以前に)ソフトウェア側でログインを求めれるのでブラウザを使ってログインしてください。
あとは、ソフトウェアの指示通りにアップデートを行ってください。
最後に、マップをダウンロードする範囲を指定します。適宜設定してください。
あとは、ReconJetのインストラクションにしたがって操作をしてください。
スマートフォンにRecon Engageをインストールすると接続することができます。
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/7/10
■
ROSチュートリアル3
messageを使う
メッセージファイルはROSメッセージの型を説明する単純なテキストファイルです。 これはメッセージのソースコードを異なる言語で作成するのに使います。
msgディレクトリに保管されています。
メッセージは1行ごとに型と名前が記載されているテキストファイルです。
型には下記のようなものが使用できます。
- int8, int16, int32, int64 (plus uint*)
- float32, float64
- string
- time, duration
- variable-length array[] and fixed-length array[C]
- Header
メッセージの定義
メッセージを定義してみましょう。
$ cd ~/catkin_ws/src/beginner_tutorials $ mkdir msg $ echo "int64 num" > msg/Num.msg
package.xmlの編集
次にpackage.xmlを編集します。
下記の2行のコメントアウトを外してください。
message_generation message_runtime
CMakeLists.txtの編集
次にCMakeLists.txtを編集します。
まずは、CMakeLists.txtから下記の行を見つけてください。
下記のようになるように、コメントアウトを外して、追記してください。
find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs message_generation )
実行時依存も有効になることをチェックします。
同様に下記の行を見つけて有効になっていることをチェックしてください。
catkin_package ( ... CATKIN_DEPENDS message_runtime ... ... )
次にメッセージファイルを追加します。
同様にして、CMakeLists.txtから下記の行を見つけて、同じになるように編集してください。
add_message_files( FILES Num.msg )
さらに、同様にしてメッセージ生成generate_messages()の呼び出しも有効にします。
generate_messages( DEPENDENCIES std_msgs )
make
makeします
$ cd ../.. $ catkin_make $ cd -
rosmsg
rosmsgを使ってメッセージを確認することができます。
$ rosmsg show beginner_tutorials/Num $ rosmsg show Num
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/7/28
■
ROSチュートリアル2
目的
前回に続きwikiのチュートリアルをやっていきます。
roslaunch
roslaunchを使用すると、lanchファイルで定義したノードを一度に起動することができます。
$ source ~/catkin_ws/devel/setup.bash $ roscd beginner_tutorials $ mkdir launch $ cd launch
launchファイル
下記の内容のturtlemimic.launchファイルを作成してください。
groupでは、turtlesim1,2という名前スペースを持った2つのグループをsimという名前のturtlesimノードで起動します。
nodeでは、turtlesim2がturtlesim1を模倣するmimicノードを起動します。
roslaunch
launchファイルをroslaunchから使ってみます。
$ roslaunch begginer_tutorials turtlemimic.launch
別のターミナルからturtle1にtopicを送ってみます。
$ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
turtle1にのみtopicを送りましたが、turtle2まで動きます。
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/7/28
■
ROSチュートリアル
目的
wikiのチュートリアル を行います。
方法
ファイルシステム
まずは、setup.bashを読み込みます。
bashの場合(標準)
$ source /opt/ros/indigo/setup.bash
zshの場合(シェルを変更している場合)
$ source /opt/ros/indigo/setup.zsh
これにり、rosのコマンドが使えるようになります。
ワークスペース
ROSで作業するためのワークスペースを作成します。 基本的にここで作業を行います。
$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_workspace
ワークスペースのビルドは次のようにして行うことができます。
$ cd ~/catkin_ws/ $ catkin_make
ArchLinuxでcatkin_makeがうまく行かない場合は、こちらをご覧ください。
ワークスペースを適用します。
$ source devel/setup.bash
zshの場合は上記のように.bashを.zshに変更してください。
この読み込みはシェルを起動するたびに必要になるので、.bashrc .zshrcなどに書き込んでおくと楽です。
roscd
roscdを使うとパッケージのディレクトリに移動できます。
$ roscd パッケージ名
タブ補完を使うこともできます。
パッケージ
ROSのcatkinパッケージはCMakeLists.txtとpackage.xmlを含む必要があります。
パッケージの作成
std_msgs,rospy,roscppに依存したbeginner_tutorialsパッケージを作成します。
$ cd ~/catkin_ws/src $ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
rospackコマンドでパッケージの依存を調べることができます。
$ rospack depends beginner_tutorials
ビルド
パッケージのビルド
パッケージをビルドします。
$ cd ~/cakint_ws $ catkin_make
ノード
概念
- ノード:ノードはROSを使用して他のノードとやりとりする。
- トピック:ノードはメッセージをトピックに向けて配信し、購読して受け取る。
- メッセージ:トピックへ配信・購読するROSのデータ型。
- マスター:ROSのネームサービス。
- rosout:ROSのおけるstdout・stderr。
- roscore:マスター+rosout+パラメータサーバ。
roscore
roscoreはROSを使用する際に一番初めに起動させます。
$ roscore
rosrun
rosrunはパッケージ名を使用して、パッケージに含まれるノードを起動します。
turtlesimを起動してみます。
$ rosrun turtlesim turtlesim_node
トピック
セットアップ
rosrunの続きからさらにturtle_teleop_keyを起動します。
$ rosrun turtlesim turtle_teleop_key
これで、亀を矢印キードで操作することができるようになりました。
ROSトピック
turtlesim_nodeとturtle_teleop_keyはトピックを介して通信しています。
rqt_graphを使って、グラフを作成することができます。
$ rosrun rqt_graph rqt_graph
rostopicを使うことでトピックの詳細を得ることができます。 echoを使うとトピックのデータを見ることができます。
$ rostopic echo /turtle1/cmd_vel
rostopic listではトピックのリストを得ることができます。
$ rostopic list -v
rostopic pubではトピックを配信することができます。
$ rostopic pub トピック メッセージタイプ 引数 $ rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
rqt_plotを使用すると、トピックのデータをグラフにすることができます。(略)
サービス
サービスもトピックと同じノード間の通信に使われる手段の一つですが、サービスは、リクエストとレスポンスから成り立っています。
前のままturtlesim_nodeは起動しておいてください。
ROSサービス
rosserviceを使うことでサービスの詳細を得ることができます。
listを使うと提供されるサービスを表示することができます。
$ rosservice list
callでサービスを呼び出すことができます。
$ rosservice call サービス 引数 $ rosservice call clear $ rosservice call spwan 2 2 0.2 ""
rosparamを使用すると、パラメータを操作することができます。(略)
デバッグ
rqt
rqt_consoleはログ収集フレームワークにノードからの出力を表示する機能を追加します。
rqt_clogger_levelはノード実行時の力詳細レベルを変更できます。
両方を起動します。
$ rosrun rqt_console rqt_console $ rosrun rqt_logger_level rqt_logger_level
これらを使用してでログを見ることができます。(略)
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/7/26
2015/8/11 追記
■
ROS
目的
ロボット開発に便利なツールなどを提供してくれるROSのインストールを行います。
方法
準備
まずは下記のものを用意してください
Linux マシン
ソフトウェアのインストール
まず、makepkgで使用するbase-develをインストールします。
$ sudo pacman -Sy base-devel --needed
ROSはyaourtを使用するため、もしインストールしていない場合はyaourtをインストールしておいてください。
パスワードの毎回の入力を省くために、下記のように設定してください。
$ sudo echo SUDONOVERIF=1 >> /etc/yaourtrc
AUR パッケージのインストール
yaourtを使ってros-indigoのフルシステム (ROS,rpt,rviz,ロボットの一般的なライブラリ,2D/3Dシュミレータ,ナビゲーション,2D/3D認識) をインストールします。
$ yaourt -S ros-indigo-desktop-full --noconfirm --needed
かなり時間がかかりますのでしばらくお待ちください。
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/7/15
■
ROSのインストール(Ubuntu・ArchLinux)
目的
Robot Operating SystemをUbuntuにインストールします。
2015/8/7 追記
ArchLinuxでのインストール方法を追記しました。
準備
まずは下記のものを用意してください
- Ubuntu14.04マシン or ArchLinuxマシン
- インターネット環境
(1) Ubuntuは15.04で試したのですが、依存関係がうまくいかないため14.04で行います。
indigoの対応バージョンは13.10と14.04のみのようです。 Ubuntu14.10と15.04を使用したい場合は、indigoではなくjadeをインストールしてください。
ArchLinuxは2015/8/7時点での最新のものです。
今回は(Ubuntu14.04 or ArchLinux)とindigoを使用します。
Ubuntu14.04
Ubuntu14.04の場合です。
sources.listのセットアップ
デフォルトではpackages.ros.orgのパッケージを登録していないため、登録を行います。
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
アップデート
パッケージインデックスを更新します。
$ sudo apt-get update
インストール
インストールを行います。最小から最大までパッケージがありますが、今回はすべてインストールします。
$ sudo apt-get install ros-indigo-desktop-full $ sudo apt-get install python-rosinstall
ArchLinux
ArchLinuxの場合です。
まずは、yaourtをインストールしておいてください。
インストール
インストールします。
$ yaourt -S ros-indigo-desktop-full --needed --noconfirm
ただし現在(2015/8/7)、このまま実行すると下記のようなエラーがでます。
==> ERROR: A failure occurred in build(). Abortin... ==> ERROR: Makepkg was unable to build ros-indigo-catkin.
遡って読んでみると、
ImportError: "from catkin_pkg.package import parse_package" failed: No module named catkin_pkg.package Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
ros-indigo-catkinのインストール中に/tmp/yaourt-tmp-username/aur-ros-indigo-catkin/src/catkin/cmake/parse_package_xml.pyのファイルがcatkin_pkg.packageをimportできなく怒ってるようです。
まずは、catkin-pkgをインストールしましょう。
$ yaourt -S python-catkin-pkg --noconfirm --needed
というわけで、catkin_pkgがどこにあるのか検索すると、
$ sudo find / -name "catkin_pkg" /usr/lib/python3.4/site-packages/catkin_pkg
検索結果のフォルダをPYTHONPATHへ登録します。 PYTHONPATHへ登録すると、pythonスクリプトのインクルードディレクトリに登録されます。
PYTHONPATH=/usr/lib/python3.4/site-packages/
登録したので、catkinがインストールできるか試してみましょう。
$ yaourt -S ros-indigo-catkin --noconfirm --needed
うまくいきましたか?それでは、もとのインストールに戻りましょう。
$ yaourt -S ros-indigo-desktop-full --needed --noconfirm
catkin-pkgの競合
最後に、インストール途中でcatkin_pkgが競合して、python-catkin-pkgが削除されてpython2-catkin-pkgがインストールされます。
ArchLinuxで後にcatkin_makeをした時にうまくできない場合は、ROSシステムがpython-catkin-pkgのpython3バージョンpython2バージョン両方に依存しているにもかかわらず、python2-catkin-pkgのみしか入っていないためだと考えられます。
$ # catkinワークスペースで $ catkin_mae # 〜略〜 ImportError: "from catkin_pkg.package import parse_package" failed: No module named 'catkin_pkg' Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH. CMake Error at /opt/ros/indigo/share/catkin/cmake/safe_execute_process.cmake:11 (message): # 〜略〜
ここでyaourtを使ってpython3のバージョンをインストールしようとすると、競合を怒られてインストールできません。
$ yaourt -S python-catkin-pkg # 〜略〜 looking for conflicting packages... :: python-catkin-pkg and python2-catkin-pkg are in conflict (python2-catkin_pkg). Remove python2-catkin-pkg? [y/N] y error: failed to prepare transaction (could not satisfy dependencies) :: python2-rosdep: requires python2-catkin-pkg :: ros-indigo-catkin: requires python2-catkin-pkg :: ros-indigo-rospack: requires python2-catkin-pkg # 〜略〜
そのため、pipを使ってアップデートしてます。
$ sudo pip install -U catkin_pkg
findで確認してみると、3.4にも2.7にもあることが確認できます。
$ sudo find / -name "catkin_pkg" $ catkin_make
これでcatkin_makeも実行できるようになりました。
共通手順
rosdepの初期化
rosdepを初期化します。
$ sudo rosdep init $ rosdep update
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/7/25
2015/8/ 7 追記
2015/8/11 追記
■
Makefileの書き方2
目的
Makefileの書き方に続いて、もっと簡単なMakefileを書きます。
準備
まずは下記のものを用意してください
- Linuxマシン
make
Makefile
CC = gcc CCFLAGS = -Wall -Wextra -O2 -g SOURCES := $(wildcard *.c) TARGET = $(SOURCES:.c=.bin) all: $(TARGET) %.bin:%.c $(CC) $(CCFLAGS) $< -o $@ clean: $(RM) -r *.bin
wgetを使って保存してください。
$ wget http://tokun.net/bookshelf/program/makefile
これでmakeをすると、.cの拡張子を持つファイルはコンパイルされて、元のファイル名.binという実行ファイルが生成されます。
C++のMakefileを作りたい場合は、CCをg++に、SOURCESとTARGETの.cを.cppに変更してください。
おわりに
いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。
2015/7/28