メリークリスマス。またお会いしましたね。
この記事はWMMCAdventCalendar
の25日目の記事です。
昨日は、「ぼく」さんの「 ${Title}_2」でした。
いやークリスマスですね~。
っていっても話すネタはなにもないのですが......
そういえば、クリスマスといえば、「クリスマスマーケット」というものに行ってみたいとずっと思っていました。
あ、話終わりです以上です。いったことないので、いつか行けるといいなと思います(小並感)
目次
0.はじめに
昨日の話に引き続き、犬型ロボットのお話ですが、ソフトは全然進んでいなくてぇ~
特にお話しすることもないのですよね。(ここ重要)
なので、Champ Setup Assistantを動かす際に引っかかったエラー(そんなにむずく無いので恐縮ですが)の解決方法と、URDF作成のお話を
軽く述べて終わります。
ちなむと、Champ SetupAssistantはROSのプランニングフレームワークであるMoveit!のそれと同じようなやつです。
github.com
1.エラーの殺し方
①Python2.7問題
⇒もともと、このパッケージはubuntu18.04におけるROSディストリビューション、Melodicを前提としていました。
しかし、Python2系統がサポート終了にあたり、MelodicからNoeticに上がる際python2系統のパッケージは使えなくなってしまいました。
直すのが簡単であれば、大元のpython2.7をいじればいいのですが、複雑なパッケージになってくると、
有志によるbridgeパッケージみたいなのがないと正直しんどいです。(自分みたいな雑魚にはきついよぉ)
話は戻って、このパッケージはnoetic対応をサポートしてくれたらしいのですが、色々とpython2の名残が残っていたので、うまく回避します。
話は単純で、roslaunch実行時に下記のエラーが出たら、pythonにpython3へのシンボリックリンクを張ればよいだけです。
/usr/bin/env: `python': そのようなファイルやディレクトリはありません
シンボリックリンクを自分で張らなくとも、それをやってくれるパッケージがあるので それをインストールすればいいだけです。楽。
$ sudo apt install python-is-python3
②Rviz関連のpythonを直す
⇒さて、setup_assistantを実行しようとしても今度は下記のエラーが出てきてうまくいきません
AttributeError: 'module' object has no attribute 'VisualizationFrame'
でも大丈夫。ちょっと調べたら回答出てきました。
ようするに、パッケージ内の「rviz_widget.py」を開いて、下記の画像のように直せばよいってことです。
③Ansible系統のエラー
⇒これもpython2.7の名残です。
.haskeyモジュールが今は使われていないらしいので、
下記を参考に「urdf_parser.py」を直しました
④そういえば、シバンなおしてねえや
⇒関係ありそうなpythonのシバンをpython3に直しておきました。
効果があったかは不明ですが、これを最後に動いたので書いておきました。
2.URDFだるかった
URDFを作成するのはめちゃくちゃだるかったです。
まず、URDF用のメッシュデータを作成します。
SolidWorksのCADアセンブリを作成後、リンクごとに分解し、拡張子をアセンブリ方式から部品の「.sldprt」に変えて保存します。
それを「参照ジオメトリ/座標」から、リンクごとの座標を決めて保存します。
そこで、「オプション/設定/エクスポート」から、単位をmm⇒mに変えつつ、エクスポート時の座標を先ほど作った座標にしておきます。
また、できるだけモデルを軽くするために、表面だけでメッシュデータを作成しました。
で、URDFなんですが、横着して、CHAMPパッケージのchamp_description内のxacroを自分用に色々改変して作成し、 github.com
$ ./gen_urdf
でURDFを作成しました。これでも結構大変でした普通に。
二度とやりません。
最終的に、4足ロボットを「PS4コントローラで操縦」「LiDARを使ってSLAMで指定位置まで行かせる」ことを確認できました。
今後は、実機にこれを適用するつもりです。
下記は、GazeboでのSLAMの様子です。(3倍速です)
3.最後に
これで今年のWMMCAdventCalendarは終了です。
色々な記事を毎日(?)楽しめたおかげで、12月は日付を超えるのが楽しみで仕方なかったです。
ご協力いただきました皆様、ありがとうございました!!!
来年以降の後輩の活躍を祈りつつ、名残惜しいですが最後の主催を終わらせていただきます
では、よいお年を!!!