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 に サポートが終了したようだ。

どこから手を付けるか

方向性と制約はこんな感じ。

  • 手っ取り早くROSの知識をつかみたい。
  • Windows PCで。
  • 最終的にロボットは動かしたい。
  • ロボットは、高いねぇ。。。
  • 古いけど LEGO NXTがある。(ROSサポート事前調べ済み)

というわけで。

  1. 速度重視:VM Image がある Indigoをやってみる。
  2. 優先度低:Windowsサポートのある Melodic 。(setupとか情報みつからず)
  3. LEGO NXTのGithub見つけた、Kinetic がターゲット。
  4. 優先度低: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' がないと怒られる。
入れます。(利用規約確認しよう。わたしは非営利・個人利用です。)

起動した!!

f:id:shinnosukeh:20190619001304p:plain

VM起動画面

インストールの手順とかすっ飛ばしてここまで来れるのは結構ありがたい。
(インストールでライブラリの依存関係で挫折したり、あるあるですからね)

次は、チュートリアルやるぞー!!
(できるだけ読み飛ばしてシミュレータを動かしたい。)

最近は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のバイプログラミングが出来るよ!」ということでしめる。

来週もお仕事がんばるべ

人工知能のネタ

今日3回くらい調べたのに、すぐ忘れる。
なのでメモっとく。

多変量自己回帰

過去データから未来データを生成するときに使う。
多変量であるところに注目しています。

使い方わからないのでググる

2016~2017年 使用技能

ただただ列挙。

言語

Python:勉強レベル
Qt:がっつり、ほぼC++
QML:勉強レベル
HTML5:勉強レベル
Objective-C:そこそこ
Android-Java:そこそこ
C/C++:がっつり

プラットフォーム

Yocto
Debian/Ubuntu
HEW
mbed
MSVC
Android Studio
XCode
Qt Creator

いろいろやれて充実してます。
C/C++技術者なのでお察し。

Pepperの記録

会社にPepperが来た。
プログラミングしたいのだが、業務が忙しくて触れていない。

Pepperとのやりとりくらいしか、できることがないが、
まぁ思ったことをメモっておく。

・はじめは、いろいろしゃべって興味があった
・適当なことを話し始める
・人の話をきかない
・タッチパネルのききがわるい
音声認識が弱い
・しゃべっても反応しない
・声かけてるのに別のことをしゃべりだす

出来の悪いこどもを相手にしている感じだった。
なので週末に実在するこどもをPepperに会わせてみた。
こどもなら会話が成立するだろうか。

結果

・話かけても反応がないので、飽きてしまった
・タッチパネルのYouTubeを見たかったらしい
・だが見れなかった

子供のほうが反応はシビアかもしれない。

他のおもったこと

・結構場所をとる。→ 椅子に座れたらいいね。