ROS チュートリアルをやる(1)
前回の続き
チュートリアルをやる。
環境は前回作成したVM上のindigo バージョン。
なので、翻訳された本家ページでやっていこうと思う。
http://wiki.ros.org/ja/ROS/Tutorials
初級
ROS環境のインストールとセットアップ
前回インストールしたので「環境変数を管理する」から。
環境変数を管理する
org、、、キーボードがUS配列だ。
http://yo1000.hateblo.jp/entry/2015/03/07/213154 を見させてもらた。
sudo dpkg-reconfigure keyboard-configuration
気を取り直して
viki@c3po:~$ export | grep ROS declare -x ROSLISP_PACKAGE_DIRECTORIES="" declare -x ROS_DISTRO="indigo" declare -x ROS_ETC_DIR="/opt/ros/indigo/etc/ros" declare -x ROS_MASTER_URI="http://localhost:11311" declare -x ROS_PACKAGE_PATH="/opt/ros/indigo/share:/opt/ros/indigo/stacks" declare -x ROS_ROOT="/opt/ros/indigo/share/ros"
ROS_ROOTが設定されているので、OK
indigo の部分を変えると別のバージョンが使えると書かれている。
kinectic は ubuntu 14.04 はサポート外なのでこのVMは使えない、残念。
http://wiki.ros.org/kinetic/Installation/Ubuntu
ROSのワークスペースを作成する
すでにディレクトリが出来ている。
別のディレクトリを作って試してみる。
catkin_init_workspace のとこ
catkin_make のとこ
ふむ。ワークスペースは空だけど、なんかビルドが走ったようだ。
source devel/setup.bash
自分のワークスペースをインストール環境上に配置するようだ。
ROSのファイルシステムを学ぶ
rospack find コマンド
roscd コマンド
rosls コマンド
を試してみる。
ROSパッケージを作る
3. catkin形式のパッケージを作る
ワークスペースを作るときにあった beginner_tutorials ディレクトリがここに。
別ディレクトリでここの手順をやる。
viki@c3po:~/catkin_ws_pr/src$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp Created file beginner_tutorials/package.xml Created file beginner_tutorials/CMakeLists.txt Created folder beginner_tutorials/include/beginner_tutorials Created folder beginner_tutorials/src Successfully created files in /home/viki/catkin_ws_pr/src/beginner_tutorials. Please adjust the values in package.xml. viki@c3po:~/catkin_ws_pr/src$
成功したようだ。
4. パッケージの依存
viki@c3po:~/catkin_ws_pr/src$ rospack depends1 beginner_tutorials [rospack] Error: no such package beginner_tutorials
おや、エラーが。。
そういえば、source devel/setup.bash やってないのが原因かな。
viki@c3po:~/catkin_ws_pr$ source devel/setup.bash viki@c3po:~/catkin_ws_pr$ echo $ROS_PACKAGE_PATH /home/viki/catkin_ws_pr/src:/opt/ros/indigo/share:/opt/ros/indigo/stacks viki@c3po:~/catkin_ws_pr$ cd src viki@c3po:~/catkin_ws_pr/src$ rospack depends1 beginner_tutorials roscpp rospy std_msgs viki@c3po:~/catkin_ws_pr/src$
予想どおり。
5. 自分のパッケージをカスタマイズする
書いてあり通り進める。
package.xml を編集。
自分用にemailとかURLとかLicense を 設定する。
ROSのパッケージをビルドする
srcフォルダがあるディレクトリで catkin_make を実行する。
(srcフォルダのディレクトリではない点に注意)
間違えると、、
viki@c3po:~/catkin_ws_pr/src$ catkin_make Base path: /home/viki/catkin_ws_pr/src The specified source space "/home/viki/catkin_ws_pr/src/src" does not exist
ただしく catkin_make
あれ、エラーなった。
package.xml を修正する。。。exportタグをなくす。
でけた。
catkin_make install
でけた。
一旦ここまで。
次回は、ROSのmsgとsrvを作る から
ROS をはじめようと思い立った
なんかやりたくなった
ふと、なにかやりたくなった。
以前やったAIでもいいし、Webでもいい、SBC(シングルボードコンピュータ)なんか好きだし。
自分の嗜好として組み込みコンピュータ、ガジェットが好きだ。
さらに出力が現実に見えるものがいい。← これ重要。
画面に絵が出る瞬間きもちいいよね。
ただ画面に絵を出すのはピンキリなのでスコープが広すぎると感じる。
と、ぐだぐだ屁理屈を書いたが、
「なんか動かしたい」というのはずっとあった。
そこでロボット→いやハードはお金が→じゃあソフトで→OSSのROS となった。
ROSという単語は聞いていたけれど、詳しく知らない。
ROSを基点いろいろな技術・知識を広げていこう、という思いで始める。
ROS
公式情報を当たる
公式(日本語): http://wiki.ros.org/ja
インストールとか見てみたけど、若干古いみたい。
indigoというバージョン。
公式(本家):http://wiki.ros.org/
リリース中のものは、ROS Kinetic Kame と ROS Melodic Morenia の2バージョン。
Indigo は Kinetic の2つ前のバージョンで、2019/4 に サポートが終了したようだ。
どこから手を付けるか
方向性と制約はこんな感じ。
というわけで。
- 速度重視:VM Image がある Indigoをやってみる。
- 優先度低:Windowsサポートのある Melodic 。(setupとか情報みつからず)
- LEGO NXTのGithub見つけた、Kinetic がターゲット。
- 優先度低:RaspiでUbuntu ARMの環境作る。
が候補。
まずは1のVM の indigo をやろう。
その次に3+4かなぁ。
2はWindowsプログラム(UWPとか)のアプリとつなぐ感じかな。いまはマッチする用途がなさそう。
環境構築
Virtual Box
ググっていれよう。
32bitも使えるように 5.2.30 にした。(豆:6系から64bitオンリーなんですね)
ROS Installer
公式のここからリンクをたどって入れていくよ。
http://wiki.ros.org/indigo/Installation
Nootrix built VM を選択
https://nootrix.com/diy-tutos/ros-indigo-virtual-machine/
VM once you have installed it from one of the .OVA archives we provide. Please share with the ROS community settings that best worked for you.
文中のリンク先へ
ROS Virtual Machines の 章に 32bit/64bitのOVAイメージのリンクがある。
ダウンロードする。
(後述:32bit版はインポートできず)
VM インポート
32bit版でエラーが出てvmdkに展開できず。
64bit版は問題なし。
VM起動
'Oracle VM VirtualBox Extension Pack' がないと怒られる。
入れます。(利用規約確認しよう。わたしは非営利・個人利用です。)
起動した!!
インストールの手順とかすっ飛ばしてここまで来れるのは結構ありがたい。
(インストールでライブラリの依存関係で挫折したり、あるあるですからね)
次は、チュートリアルやるぞー!!
(できるだけ読み飛ばしてシミュレータを動かしたい。)
コメント
英語のリンク付きコメント付けられてウンザリ。IP変わるし。
最近はQtをやってる
ひさびさメモ
Qtはマルチプラットフォームのアプリケーション開発フレームワーク。
Windows,MacOs,Linux,Android,iOSくらいのアプリは作れる。
UI向けのQtQuickを使用。
QMLというスクリプト言語を使うので、とっかかりは「また別の書き方覚えにゃならんのか~」とな。
Qt部分はC++なのでQMLとC++を使う。後javaな。
さすがUI向けなだけあって画面上の部分はQMLで簡単にかける。これは楽チン。
QML上の関数内はjavaを使う。
簡単なものならQMLとjavaでいける。
C++部分はテンプレート使うけどな。
「QtQuickはC++とjavaとQMLのバイプログラミングが出来るよ!」ということでしめる。
来週もお仕事がんばるべ
Pepperの記録
会社にPepperが来た。
プログラミングしたいのだが、業務が忙しくて触れていない。
Pepperとのやりとりくらいしか、できることがないが、
まぁ思ったことをメモっておく。
・はじめは、いろいろしゃべって興味があった
・適当なことを話し始める
・人の話をきかない
・タッチパネルのききがわるい
・音声認識が弱い
・しゃべっても反応しない
・声かけてるのに別のことをしゃべりだす
出来の悪いこどもを相手にしている感じだった。
なので週末に実在するこどもをPepperに会わせてみた。
こどもなら会話が成立するだろうか。
結果
・話かけても反応がないので、飽きてしまった
・タッチパネルのYouTubeを見たかったらしい
・だが見れなかった
子供のほうが反応はシビアかもしれない。
他のおもったこと
・結構場所をとる。→ 椅子に座れたらいいね。