2019年7月18日木曜日

[メモ] ROS2をMacで動かすときに注意すること

こんにちは。

前回WindowsでROS2試して色々とめんどくさかったので、Macで試してみました。
思ったより色々と地雷を踏んだ末にいちおーサンプルは動きました。(2019.7.18 に動作確認実施)

色々とググって近藤さんのブログ等参考にしたんですが、一番の注意点としては、最新のROS2のバイナリ(https://github.com/ros2/ros2/releases)を使う場合は関連するツールのバージョンがあってないと起動しなかったです。

具体的には以下のようなエラーが大量に出てLibraryがloadできない、みたいな感じだったんですが、エラーにでてくる/usr/local/opt/poco/lib/をみてみたらlibPocoFoundation.62.dylibがあったので、そっちにシンボリックリンクを貼ったら(他のrosbag関連のエラーはちょっとでてたけど無視して)talkerが想定どおり動いてlistener側でTopicが表示されました。(他にもtinyxml2の問題とか踏んだ気もするけど気のせいかもなので省略。)


$ ros2 run demo_nodes_cpp talker

Failed to load entry point 'test': dlopen(/Users/XXXX/ros/dashing/lib/python3.7/site-packages/rclpy/_rclpy.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/poco/lib/libPocoFoundation.60.dylib
  Referenced from: /Users/XXXX/ros/dashing/lib/librosidl_typesupport_c.dylib
  Reason: image not found



以前Ubuntuで試した時は数十分でサンプルは動いた気がするのでもし変なとこではまりたくなかったらUbuntuでやるのが無難なのかなーとは思いました。
ただMacで動くには動くことがわかったので、Ubuntu準備するのがめんどくさい!て場合はバージョン等に気をつけて使ってみるのはありかもしれません。(エラーちゃんと読めば何となく問題もわかるし)


とりあえず動いてめでたしめでたし。

[追記 2019.7.19]
console_bridgeがなくてエラーが表示されていたのでconsole_bridgeを入れてみたら実行時のエラーメッセージがすべて消えた。console_bridge入れる手順見逃してたかな。。

$ brew install console_bridge


次はざっとこの辺みてみよう。
https://index.ros.org/doc/ros2/Tutorials/







2019年6月27日木曜日

[メモ] ROS2のインストール(Windows編)

こんにちは。

前回チュートリアル一通りやろう!と思ったけどそもそもまだ環境設定をしてなかったので、Windowsの設定を行ってみる。

https://index.ros.org/doc/ros2/Installation/Dashing/Windows-Install-Binary/

どうせなら最新を、ということでDashingを選択。

事前準備

Install Chocolatey

chocolateyってのを入れる必要があるらしい。

ここのInstalling Chocolateyを参考にインストールする。

Install OpenSSL

公式でのバージョンの指定が" Win64 OpenSSL v1.0.2."になっていたので、新しいバージョンもあったけど古いのを入れた。

環境変数のPathに”C:\OpenSSL-Win64\bin\”を追加するのを忘れない。

Python、Visual Studio のインストールはスキップ。(インストール済みだったので)

Install OpenCV

サンプルでOpenCV使うことがあるから入れとく模様。
https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.6-vc16.VS2019.zip

Pathの追加しとくと捗る。C:\opencv\x64\vc16\bin

Install Dependencies

色々必要なものを入れる。ダウンロードしてきてから、以下のコマンドを実行。
$  choco install -y -s <PATH\TO\DOWNLOADS\> asio eigen tinyxml-usestl tinyxml2 log4cxx
<PATH\TO\DOWNLOADS¥>は実際にasioとかダウンロードしたところを指定すればOK。

途中で環境変数書き換わるメッセージがでるが、以下のコマンド打てば開きなおさなくてもいいよと表示されてた。便利~
$ refreshenv

さらにPython関係の設定。
$ python -m pip install -U catkin_pkg empy lark-parser lxml numpy opencv-python pyparsing pyyaml setuptools

RQt関係の設定もして、事前準備完了。
$ python -m pip install -U pydot PyQt5

ROS2 Setup & サンプルの実行


Downloading ROS2

事前準備意外と長かった、、こっからはすんなりいくはず。

ここからwindows用の最新のzipファイルをダウンロードする。とりあえずdebug版にしたら1GBくらいあった。。展開先はC:\dev\ros2を想定してるっぽいのでそこに展開する。

Set up the ROS2 environment

以下のコマンドを実行する。

$ call C:\dev\ros2\local_setup.bat

ROS1でubuntuで実行するときのsetup.bash的なやつかと思われる。
Warningが出るけど、”Install additional DDS implementations (optional)¶”を無視して出ているだけなので、とりあえず問題ない。


Try some Example



おなじみのtalker/listenerのサンプル試したら地味にはまってしまった。。

$ ros2 run demo_nodes_cpp talker
$ ros2 run demo_nodes_py listener

実行しようとすると
C:\>ros2 run demo_nodes_cpp talker
failed to create process.

となってさっぱり理由がわからなかったのでググったら似たような地雷を踏んだ人を発見。

ros2_script.pyの中のPythonのPathが実際にインストールされてるのと違ったので、ros2-script.pyの一行目を書き換えたらいちおーうまく動いた。ちなみにrelease版だとPathが違う模様、うーむ。。みんな踏んでない人はrelease版使ってるのかなあ。

ちなみに以下のエラーが出てるけど、何かミスったかなぁ。Windowsやっぱり使おうて思ったらちゃんと調べてみる。
C:\>ros2 run demo_nodes_cpp talker
Failed to load entry point 'test': No module named 'yaml'
Failed to load entry point 'launch': No module named 'yaml'
Failed to load entry point 'info': No module named 'rclpy._rclpy'


感想

思ったよりはサンプル動かすまで手順少なかったけど、それでもやっぱりちょっとめんどくさかった。わざわざWindows使う理由もないからMacかUbuntuでやろうかな。。


2019年6月26日水曜日

そろそろROS2始めたくなってきた

こんにちは。

今日昼間にROS2本の予約が開始されたのを知った。
https://www.amazon.co.jp/gp/bestsellers/books/500920/ref=zg_b_bs_500920_1

近藤さんの本、早く読みたい、楽しみ~。

だいぶ前にROS2について調べたときにチュートリアルとかないのかーと思って放置してて、久々に見てみたらチュートリアルがあったので、とりあえず一通りこれから見ていこうと思います。

https://index.ros.org/doc/ros2/Tutorials/

あえてUbuntuじゃなくてWindowsかMacでやってみよう。

2019年1月17日木曜日

[備忘録] VirtualboxでGazebo使ったら落ちる時にチェックすること

最近作業メモが多いですが、意外なとこで詰まったのでメモ。

なんとなく家のMacでVirtualbox使ってGazeboを起動したら、強制終了してたので調べたら解決方法発見。

http://syoamakase.hatenablog.com/entry/2016/04/25/163857

 virtualboxの高速化のため3Dアクセラレーションをオンにしていると OpenGL系統でエラーを吐いて強制終了してしまいます。

まさにこれが原因でした。Google先生ありがとう。

2019年1月10日木曜日

[お散歩] LOVOT見てきた [浜町]

そういえば今週LOVOTの体験会に行ってきた。

新しい産業が作られる、と発表会で言ってたのと、実際に見てみると印象が変わる、と聞いたのが気になって、仕事中に散歩がてら浜町へ向かった。
平日の昼間だったからかほぼ貸切でじっくりみれてよかったです。

重さ・固さ


実際に触ってみて思ったよりも固いな、というのと高い高いをしたときに重くて腕が疲れるなー、てのが気になった。

人間の赤ちゃんで、重さが6kgくらいでもここまで重くは感じない気がしたので、もしかしたら硬さや形が抱っこしやすさに大事なのかもしれんなーと気付いたのは実際に触ってみてよかった点。

見た目など


目は10億通りパターンが試せる、てのと声もこだわりのつくり方、ということだったが正直あんまりピンとこなかった。(目玉がプルプル震えてるのと、まぶたが上下書いてあるのは生きてるっぽくは見えた。)寝てる状態で鼻のボタンポチー、で起きるのがちょっと面白かった。体温は熱いは熱いけど思ってたほどではなかった。(夏場は抱っこきついかも)

動き


名前を読んだら近づいてきたり、歩いたらちゃんと付いてきてくれた。
だっこをせがむ時に車輪をたたむのはかっこよかった。

結論


自分のお小遣いではとても買えないので予約はしなかったが、ロボットの市場を作る、という意味ではぜひ頑張ってほしいです。(しかし1年でロボットに100万払う人ってどういう人なんだろう、周りにあまりいなそうでちょっと会ってみたい。)

展示のポスターで犬型よりも早い、と割とaibo意識してるのかなー、てのを感じたので、とりあえずaiboの2万台は超えるといいなー、と思いました。

写真見てたら急にコロ助が欲しくなってきた。。ユカイ工学さんあたりが作ってくれないかなぁ


こげ茶、かな?
薄茶色、かな?こっちのが可愛い気がする



[備忘録] rostopicをpubするときにtopic名入れるだけで補完が効いた

こんにちは。

今日同僚から聞いてえっ、知らなかった。。というのがあったのでメモ。

rostopic をコンソールからpublishするときに

$ rostopic pub -1 トピック名 型 値

と打ちますが、実はトピック名さえ入れてtabを打てば型、値(サンプルで"data: 0.0"みたいなのまで入ってた)ることを初めて知りました。教えてくれた同僚に感謝。


自分が新入社員の頃に、めちゃくちゃできる同期がタブで色々補完できることを知らずにへぇー、そういうこともあるのかーと思ったんですが、まさか10年後に自分が似たような経験をするとはびっくりしました。