Monthly Archives: August 2016

(日本語) Gazeboで走るRasPiMouse その5

Sorry, this entry is only available in Japanese.

Read more ›

Posted in Raspberry Pi Mouse
Tags: , , , , ,

(日本語) Gazeboで走るRasPiMouse その4

こんにちは。佐藤です。

前回はGazeboでまっすぐにRasPiMouseが走ることができるようになりました。

概要

今回は制御用のコントローラを設計します。

前回動かしたモデルをもっと簡単に制御できるようにするため、publisherのスクリプトを用意します。

スクリプトの作成

raspimouse_controlのパッケージの中にscriptsディレクトリを作成します。

その中にvel_publisher.pyを作成します。

送っているコマンドは以下のコマンドとほぼ同じです。

実行できるようにするためには実行権限を与える必要があります。

キーボードのw/sで前進/後進、a/dで超信地旋回ができます。

このスクリプトをgazeboと同時に起動します。

このように動かすことができました!

参考文献

Read more ›

Posted in Raspberry Pi Mouse
Tags: , , , , ,

(日本語) Gazeboで走るRasPiMouse その3

Sorry, this entry is only available in Japanese.

Read more ›

Posted in Raspberry Pi Mouse
Tags: , , , , ,

(日本語) Gazeboで走るRasPiMouse その2

Sorry, this entry is only available in Japanese.

Read more ›

Posted in Raspberry Pi Mouse
Tags: , , , , ,

(日本語) Gazeboで走るRasPiMouse その1

Sorry, this entry is only available in Japanese.

Read more ›

Posted in Raspberry Pi Mouse
Tags: , , , , ,

GazeboでRasPiMouseのチュートリアル

こんにちは!佐藤です。

前回はRaspberry Pi MouseをROSを使って動かすためのコマンドを確認しました。

Raspberry Pi Mouseから少し話がそれてしまいますが、今回はGazeboでURDFを使う方法をGazeboのチュートリアルに沿って進めていきます。

Gazebo : Tutorial : URDF in Gazebo
http://gazebosim.org/tutorials/?tut=ros_urdf#Tutorial:UsingaURDFinGazebo

Gazebo

Raspberry Pi MouseのURDFモデル作成 その1では詳しく説明しなかったので今回改めて説明します。

概要

オープンソースの3Dロボットシミュレータです。ライセンスはApacheライセンスです。
Mercurialで管理されているのでBitbucketで公開されています。
https://bitbucket.org/osrf/gazebo

センサのシミュレーションを行うこともできます。つまり、実機を用意しなくてもロボットの挙動を確認することができるようになるということです。

机の上にロボット(Kobuki)をおいたシミュレーションをしてみた様子です。
gazebo

バージョン1.9以上のGazeboでは物理エンジンにOpen Dynamics Engine(ODE)が採用されています。
その他にもバージョン3.0以上ではBullet/Simbody/DARTを選ぶことができます。
今回使用するのはODEです。

ODEについては金沢工業大学の出村先生のページが詳しいです。
demura.net | 1. ODEとは
http://demura.net/tutorials/ode1

demura.net | ODE
http://demura.net/ode

バージョン情報

デフォルトではROS IndigoはGazebo 2.x、ROS JadeはGazebo 5.xがインストールされます。
(Jadeでは手動でGazeboをインストールする必要があるとの情報もあります。)

以下のコマンドでデフォルトバージョン以外のバージョンをインストールすることはできますが、ROSのリポジトリからインストールできるGazebo(とROS)を使うパッケージが動かなくなります。

更に詳細な情報はこちらに書かれています。
Gazebo : Tutorial : Which combination of ROS/Gazebo versions to use
http://gazebosim.org/tutorials/?tut=ros_wrapper_versions

準備
前提

作業マシンは Ubuntu 14.04 64bitのdynabook R73/W4Mです。
ROSのバージョンはIndigoを使用しています。

ROSのインストールについてはこちらをご覧ください。

ROSを使用したCRANE+の動かし方 その2 | RT Robot Shop Blog
http://www.rt-shop.jp/blog/archives/6528

ROSはインストールできている状態で作業をしていきます。

Gazeboのインストール

先ほど紹介したRT Robot Shop Blogに書いてあるとおり、以下のコマンドでインストールした場合にはGazebo2.2.3がインストールされています。

それ以外の方法でインストールしてある場合も再度上記のコマンドを実行すれば差分のパッケージをインストールすることができます。

サンプルデータの用意

以下のGazeboサンプルデータを今回は使用します。
ros-simulation/gazebo_ros_demos: Example robots and code for interfacing Gazebo with ROS
https://github.com/ros-simulation/gazebo_ros_demos

最終的に以下のようにBuilt target gazebo_tutorialsと出力されれば無事にコンパイルできています。

次のコマンドでrvizを起動します。

rviz rrbot

リンクを動かすことが出来ました。

とエラーが出ることがあります。その際は以下のようにlibcanberra-gtk-moduleをインストールすれば良いようです。

次はGazeboを起動します。

リンクが振り子のように動く様子を確認できました。

gazebo rrbot

Gazeboを起動する際は、先ほどとは異なりrrbot_descriptionではなく、rrbot_gazeboにあるrrbot_world.launchを起動しました。
ロボットの名称をMYROBOTとしたとき、モデルの定義をMYROBOT_descriptionに、Gazeboの定義をMYROBOT_gazeboに、コントローラの定義をMYROBOT_controllerに書きます。
第1回や第2回では説明なしにraspimouse_descriptionという名前のパッケージを作成しました。実はこのルールに基づいて作成をしていました。
名称やファイルの配置方法はこちらに説明があります。

Gazebo : Tutorial : Using roslaunch
http://gazebosim.org/tutorials?tut=ros_roslaunch#CreatingyourownGazeboROSPackage

では、このRRbotを操作してみます。

再びGazeboを起動し、コントローラも一緒に起動します。同じTerminalでは開けませんので別のTerminalを起動してください。

無事にrrbot_gazeboもrrbot_controlも起動することができれば、Gazebo上のRRBotが中途半端な角度で静止します。

rrbot freeze

静止しなかった場合、おそらくrrbot_control.launchをroslaunchした方のTerminalに次のようなエラーが出ています。

正常な場合はStarted controllersが空白にはなりませんのでそこで判断することもできます。

このエラーはコントローラが正常に読み込めなかった場合に出るエラーでパッケージが一部不足していることが原因となっています。
次のコマンドで不足しているパッケージをインストールすることができます。

ここで、更に別のTerminalを開いてrostopicをpublishします。

joint2は先端に近い方の関節なので0を指定すると延ばすことができます。
ここで指定する値の単位はラジアンです。
gazebo rrbot joint2-0

さて、大まかにではありますがGazeboとGazeboの使い方について説明しました。
これでようやく作成したURDFモデルに不足している情報を書き加え、コントローラパッケージを追加する準備が整いました。
いまのところ表示することしかできていませんが、動く様子が見られるようになると思うとワクワクしてきます!
raspimouse rviz

まだ準備中ですが、最終的にはRaspberry Pi Mouseも同じようにGitHubに公開する予定です。

次回からは公開するファイルをどんどん用意し、Gazebo上で動かせるようにしていきます。

参考文献

Gazebo : Tutorial : URDF in Gazebo
http://gazebosim.org/tutorials/?tut=ros_urdf#Tutorial:UsingaURDFinGazebo

demura.net | 1.

Read more ›

Posted in Raspberry Pi Mouse
Tags: , , , ,

Raspberry Pi MouseのROSコマンド確認

こんにちは!佐藤です。
アールティでブログを書くのにもだんだん慣れてきました。

前回はxacroファイルでモデルの形だけではなく重さなど詳細情報も含めて定義しました。
これから先は実際に動かす方法を踏まえつつ各種ファイルを用意していく必要があります。

概要

今回は実際のraspimouseと同様に操作するためのコマンドの確認を行っていきます。

実機が動くことは大変嬉しいことですが、やはり準備が大変です。
特にROSのインストールに関してはある程度慣れていても多少時間がかかってしまいます。
そこで、シミュレータで簡単に動作確認を行った上で、実機にスムーズに移行できるようにするためにシミュレーション用のモデルの作成を行っています。

どのような方法で制御すればよいのかを確認し、次回以降それらをシミュレーションモデルに実装できるように準備を行います。

ROSではノード(ROSパッケージ内の実行ファイル)に対してトピック(ノード同士でやりとりをするデータや指令)を送受信します。

ROS_CRANE_6_1
ROSを使用したCRANE+の動かし方 その6 | RT Robot Shop Blog より画像引用

またまた手前味噌で恐縮ですが、ノードとトピックについてもRT SHOP BLOGの方に詳しく書かれていますのでそちらをご参照ください。

ROSを使用したCRANE+の動かし方 その6 | RT Robot Shop Blog
http://www.rt-shop.jp/blog/archives/6664

準備

操作はROSがインストールされたUbuntuのPCを使用します。
今回はUbuntu 14.04 64bitをインストールしたdynabook R73/W4Mを使用しています。

Raspberry Pi MouseにもROSがインストールされた状態で使用します。
今回はUbuntu 14.04をインストールしたRaspberry Pi 2 Model Bを使用します。

ROSのインストール方法は様々なところに書かれていますのでその一部をご紹介します。

ROS Indigo の Ubuntu へのインストール – ROS.org
http://wiki.ros.org/ja/indigo/Installation/Ubuntu
Ubuntu 14.04 server用のROS一撃インストールシェルスクリプト –

Read more ›

Posted in Raspberry Pi Mouse
Tags: , , ,

(日本語) Pi:Co Classic Ver3 改造例(4)

Sorry, this entry is only available in Japanese.

Read more ›

Posted in Technical Information


Raspberry Pi MouseのURDFモデル作成 その2

こんにちは!佐藤です。

今回は前回の続きでURDFのモデルの作成を行っていきます。

前回はとりあえず動かすことを目的としてパッケージを用意して、URDFを記述するところまで行いました。

URDFファイルについて

はじめに記述したURDFファイルの中身の説明をしたいと思います。
手前味噌で恐縮ですが、データ構造等はRT SHOP BLOGに詳しく書かれていますのでそちらをご参照ください!

ROSを使用したCRANE+の動かし方 その8 | RT Robot Shop Blog
http://www.rt-shop.jp/blog/archives/6711

前回記述したファイルを少し改良したものがこちらです。
本体の底面をグローバル座標の原点に設定していましたが、実際にはボディが床から1.85[mm]浮いています。
原点をbase_footprintとし、Z軸方向に0.00185[m]ずらした座標にbase_bodyをセットします。
(前回のエントリも修正いたしました。)

<robot name=”raspimouse”>
<link name=”base_footprint”/>

<joint name=”base_joint” type=”fixed”>
<origin xyz=”0 0 0.00185″/>
<parent link=”base_footprint”/>
<child link=”base_body”/>
</joint>

<link name=”base_body”>
<visual>
<geometry>
<mesh filename=”package://raspimouse_description/meshes/dae/base/RasPiMouse_base.dae”/>
</geometry>
</visual>
</link>

<joint name=”left-wheel_joint” type=”continuous”>
<origin xyz=”0 0.0425 0.02215″ rpy=”-1.57 0 0″/>
<axis xyz=”0 0 1″/>
<parent link=”base_body”/>
<child link=”left-wheel”/>
</joint>

<link name=”left-wheel”>
<visual>
<geometry>
<mesh filename=”package://raspimouse_description/meshes/dae/wheel/RasPiMouse_wheel.dae”/>
</geometry>
</visual>
</link>

<joint name=”right-wheel_joint” type=”continuous”>
<origin xyz=”0 -0.0425 0.02215″ rpy=”1.57 0 0″/>
<axis xyz=”0 0 1″/>

Read more ›

Posted in Raspberry Pi Mouse


Raspberry Pi MouseのURDFモデル作成 その1

はじめまして。この夏、インターンシップでアールティのお仕事のお手伝いをしています佐藤です。

Raspberry Pi MouseのURDFモデルの作成をし、Gazeboでシミュレーションを行うところまで行っていきたいと思います。

ROSを使うことのメリットや具体的な初期設定方法は過去に長谷川さんがRT ROBOT SHOPの方にエントリを書いていますのでそちらをご覧ください!
ROSを使用したCRANE+の動かし方 その1 | RT Robot Shop Blog
http://www.rt-shop.jp/blog/archives/6419

URDFモデルについての説明はこちらをご覧ください!
ROSを使用したCRANE+の動かし方 その8 | RT Robot Shop Blog
http://www.rt-shop.jp/blog/archives/6711

Gazeboはロボットのシミュレータです。詳しくは実際に使用する際にまた詳しく説明をしたいと思います。
http://gazebosim.org/tutorials?tut=ros_overview

今日は初日ということで、モデルを作成します。

概要

バラバラに作ったパーツが組み上がり、ホイールを回転させるところまで行います。

  • STLデータの作成
  • Colladaファイルへの変換
  • URDFモデルの作成

開発環境
STLデータの作成

PC:dynabook R73/W4M
OS:Windows10 64bit
使用ソフトウェア:Autodesk Inventor 2016

URDFモデルの作成

PC:dynabook R73/W4M
OS:GNU/Linux Ubuntu14.04
使用ソフトウェア:Blender 2.71、ROS Indigo

STLデータの作成

公開されているRasPiMouse.stpはすべてのパーツを組み立てた状態なので、ホイールとボディに分割します。

STLデータの作成1

分割したあと、それぞれをSTLファイルとして保存するのですが、ここで注意しなければならないことがあります。

通常はミリメートル基準で設計していることが多いと思います。しかし、URDFではメートル基準で大きさが定義されているのでメートルに変換してから出力しておきます。

(シミュレータで読み込む際に倍率を変換する方法も有効ですが、今回は予め変換しておきます。)

STLデータ作成2

編集した際にはホイールを駆動する軸の位置が原点から見てどの位置にあるのかも測定しておくと、あとで楽です。

STLデータ作成3

Colladaファイルへの変換

ここからの作業はUbuntuで行います。
この工程は以下のサイトを参考に行いました。

Gazebo + ROS で自分だけのロボットをつくる 3.URDFファイルをつくる- Qiita
http://qiita.com/RyodoTanaka/items/174e82f06b10f9885265

Blenderを起動し、File ->

Read more ›

Posted in Raspberry Pi Mouse