Blog Archives

Raspberry Pi Mouseの無線LAN設定の仕方 Ubuntu編 固定IP設定

Yukiです。Raspberry pi Mouseの固定IPのつけ方について説明したいと思います。

環境は、Raspberry pi 3 で、Ubuntu 16.04です

Raspberry pi mouseのubuntuは無線LANが使えない設定だというお問い合わせをよくいただきます。質問がある場合は、ここから”New Issue”を立てて質問しましょうね。

さて、固定IPをつけるときはどんなときか?
ロボットが大量にあって、ホスト名で解決するのが大変な教室での使用とかが多いです。

前回の説明から、DHCPだと下記の設定になっているはずです。

$cd /etc/network
$sudo vi interfaces

を見てください。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Source interfaces
# Please check /etc/network/interfaces.d before changing this file
# as interfaces may have been defined in /etc/network/interfaces.d
# See LP: #1262951
#source /etc/network/interfaces.d/*.cfg
auto eth0
iface eth0 inet dhcp

auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
wireless-power off

これを下記のように編集します。

# This file describes the network interfaces available on your system
# and how to activate them.

続きを読む ›

Posted in Raspberry Piで学ぶROSロボット入門の補足, 技術情報
Tags: , , , , ,

Raspberry Pi Mouseの無線LANのDHCP設定の仕方 Ubuntu編

Yukiです。久方ぶりの登場です。
2017年8月19日にGroove Xさんの会議室をお借りして、Raspberry pi Mouseを使ったROSハッカソンをしてきました。
LANの設定がちゃんとできてないという話が結構出てたので、LANの設定徒然を書いておこうと思い立ちました。

環境は、Raspberry pi 3 で、Ubuntu 16.04です

Raspberry pi mouseのubuntuは無線LANが使えない設定だというお問い合わせをよくいただきます。
質問がある場合は、ここから”New Issue”を立てて質問しましょうね。

まず、そもそも論として、外に繋げられてないみたいだという方。

$cd /etc/network
$sudo vi interfaces

を見てください。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Source interfaces
# Please check /etc/network/interfaces.d before changing this file
# as interfaces may have been defined in /etc/network/interfaces.d
# See LP: #1262951
#source /etc/network/interfaces.d/*.cfg
auto eth0
iface eth0 inet dhcp

auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/RT-WIFI.conf
wireless-power off

こんなふうになっていますか?上記の記述の中で、下記が書いてあればとりあえずDHCPが設定されるので有線LANで繋げられて外に出られるはずです。

# This file describes the network interfaces available on your system
# and how to activate them.

続きを読む ›

Posted in Raspberry Pi Mouse, Raspberry Piで学ぶROSロボット入門の補足
Tags: , , , , ,

Gazeboで走るRasPiMouse その6

こんにちは。佐藤です。

前回はRaspberry Pi MouseのシミュレーションモデルがGazebo上のサンプル迷路で動くところまで確認しました。

そして、公開の予告だけで終わってしまっていました。

今回は、そのファイルをすべて公開いたしましたのでセットアップ方法をはじめからご紹介します。

概要

Gazeboを動作させる環境が整っているPCで、今回公開したシミュレーションモデルを動作させる手順を説明します。

ファイル概要

GitHubに公開しています。
公開先はこちらです。
https://github.com/rt-net/raspimouse_sim

使用方法

READMEにも少し書いてありますが、こちらでも簡単に説明したいと思います。
さらに詳細な説明はROS Wikiにまとめるべく現在準備中です。

Gazeboの起動までの大まかな手順は先月のエントリと同じです。
GazeboでRasPiMouseのチュートリアル | RT MicroMouse
https://products.rt-net.jp/micromouse/archives/3262

動作環境

以下の環境で動作確認を行っています。

  • OS : Ubuntu Desktop Trusty 14.04 64bit
  • ROS : ROS Indigo
  • Gazebo : 2.x

なお、Gazeboを使用しますので、ある程度のスペックを必要とします。
今回執筆に使用したマシンのスペックは以下の通りです。

  • dynabook-R73W4M
  • CPU : Intel Core i7-4710QM
  • RAM : 16GB

Screenshot from 2016-09-12 16:34:20

パッケージのインストール

ROS IndigoやGitはインストールされており、ネットワークに接続されている状態です。
以下の3つのパッケージが必要です。

  • ros-indigo-desktop-full
  • ros-indigo-gazebo-ros-control
  • ros-indigo-ros-controllers

以下のコマンドでapt-getを使用してインストールします。

apt-getコマンドでinstallする前に以下のコマンドでパッケージリストは最新版にしておいてください。

以下のコマンドでワークスペースに追加のパッケージを保存します。

無事にgit cloneできていれば以下のように表示されます。

Gazebo起動方法

パッケージを保存したあとはビルドします。

まずはroscoreとベースシステムを起動します。

このようなウィンドウが出てくると思います。
Screenshot from 2016-08-19 19:57:06

Gazebo関連で出てきたエラーについてはこちらに書いていますのでご覧ください。

Gazeboで走るRasPiMouse その5 | RT MicroMouse
https://products.rt-net.jp/micromouse/archives/3348

ロボットの操作

次に動いているところを確認するためにvelocityコマンドを送信します。
ベースシステムを起動したウィンドウではそのまま起動することはできません。ですから、screenやtmuxなどのターミナルマルチプレクサを使用するか、ターミナルを別ウィンドウで新たに開いてください。

これでコマンドを送信できるスクリプトを呼び出せましたので、wasdの4つのキーでRasPiMouseを操作できます。
Screenshot from 2016-08-22 01:11:23

今回のこのモデルを作成するにあたり、その途中過程をブログにて公開してます。よろしければご覧ください。
なお、現在GitHubに公開しているファイルはブログ公開時とは名称や表記方法が異なる場合があります。ご了承ください。

続きを読む ›

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

Gazeboで走るRasPiMouse その5

こんにちは。佐藤です。

前回はGazeboでまっすぐに走るRasPiMouseをコントロールすることができるようになりました。

概要

今回はセンサを取り付けてみます。さらに試験用に3×3のGazebo用のフィールドを用意して走行させてみます。

センサは実機と同様に近づけば近づくほど大きくなるような値を返すようにします。

センサの取り付け

センサを取り付けます。
実機と同様に光らせることができればかっこいいのですが、見た目にしか影響しません。
ですから今回は直方体をセンサとして取り付けることにします。
センサはレーザーレンジセンサなので返ってくる値はセンサから物体までの距離です。
raspimouse_descriptionのパッケージ内でモデルを定義します。
lightsens.urdf.xacroとして保存します。

こちらはGazebo用の設定値ファイルです。同様にしてlightsens.gazebo.xacroとして保存します。

これらを呼び出すための設定を書いていきます。
raspimouse.urdf.xacroとして保存していたものにセンサの設定を書き加えています。
センサの位置が前とサイドに向くように合わせます。

センサ値変換スクリプトの作成

先ほどまでの設定だと返ってくる値はセンサから物体までの距離なので実際のセンサと同じような値に変換する必要があります。
変換するために、実機で距離ごとに測定値を記録し、近似式を求めました。

スクリーンショット 2016-08-18 18.52.01

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

作成led_converter.pyとして保存します。

ROSのノードが使用するメッセージ形式を定義する必要がありますので、raspimouse_control以下に”msg”ディレクトリを作成し、
raspimouse_rosパッケージの”msg”ディレクトリの”LightSensorValues.msg”をコピーしてきます。

その他CMakeLists.txtに以下の依存関係を追記しておきます。

publisherを作成した際にどのような変更を加えればよいかを知るためにはraspimouse_rosのこのコミット3d08155cを参考にしました。

このままだと毎回手動でスクリプトを実行する必要があります。Gazebo起動時に同時に起動するようlaunchファイルを書き換えます。

これで起動時に/raspimouse/lightsensorsに距離センサの情報がpublishされるようになります。
ためしにempyworldで起動してみるとセンサの値が確認できました

Screenshot from 2016-08-22 01:11:23

サンプル迷路データの作成

emptyworldやガソリンスタンドではマイクロマウスらしくないので、迷路のサンプルを作成します。
worldデータの作成もxacroのマクロを利用します。おそらくxacroファイルを直接読み込むことも可能なのだと思いますが、
launchファイルでの記述方法についての資料を見つけることができませんでした。今回はworldファイルに変換して読み込みます。

まず、壁のデータを作成します。samplemaze.wall.xacroとして保存しました。

次に壁を呼び出すxacroファイルを用意します。

そしてworldファイルに変換するスクリプトを用意し、実行します。

これで3×3の迷路が用意出来ました。

Screenshot from 2016-08-19 19:57:06

これで起動してみます。

前回紹介したvel_publisherの値を以下のように書き換えると、前進/後進、左右の超信地旋回ができます。
Gazeboで走るRasPiMouse その4 | RT MicroMouse
https://products.rt-net.jp/micromouse/archives/3348

これで簡単なシミュレーションを行うことができるようになりました。

簡単ではありますが、これで作り方の紹介兼メモは今回で終了となります。
GitHubに公開できるよう準備しています。公開したらまたブログで紹介したいと思います。

2016年9月13日追記
公開しました。
https://github.com/rt-net/raspimouse_sim
紹介記事も公開しました。
Gazeboで走るRasPiMouse その6 | RT MicroMouse
https://products.rt-net.jp/micromouse/archives/3544

 

補足

セットアップしたばかりの新しい環境だとパッケージが不足することがよくあります。

ros-control不足1

このようなエラーが出る場合は以下のパッケージのインストールで解決できます。

ros-control不足1

このようなエラーが出る場合は以下のパッケージのインストールで解決できます。

Gazeboのモデルデータ不足

このようなエラーが出て、Gazeboのウィンドウが真っ黒な場合、モデルデータが不足しています。
インターネットに接続されていれば自動的にデータをダウンロードできますので、しばらく待ってみてください。
環境によっては数分かかることもあるようです。

worldファイル変換スクリプト

worldファイルに変換するスクリプトを実行する際、zshを使っているとファイルを上書きできない場合があります。
その場合は最終行を以下のように変更したスクリプトを実行することで解決できます。

参考文献

続きを読む ›

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

Gazeboで走るRasPiMouse その4

こんにちは。佐藤です。

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

概要

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

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

スクリプトの作成

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

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

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

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

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

Gazeboを起動した後、このスクリプトを別ウィンドウで実行します。

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

次回はこのセンサの話についても触れていきます。

補足
Gazebo+ROSでの二輪駆動について

今のところ、diff_drive_controllerを使用してモデルを制御しています。
しかし、実機ではそれぞれのステッピングモータに周波数を与えて動かすように制御しています。
シミュレーションモデルでも同様にするべく、jointをPositionJointInterfaceとして設定し、コントローラをposition_controllers/JointPositionControllerでモデルを作成してみました。
すると、ホイールは回転するのですが、ボディが前進しません。つまり、摩擦が働いていないのと同じ状態になっているのです。
摩擦係数の設定値がおかしいのかと考え、摩擦係数を小さくした状態でdiff_drive_controllerを使用すると、確かにホイールが空転します。

このようなホイールとボディだけのモデルを作って試してみましたが、全く変化はありませんでした。
シミュレーションモデルで試したプログラムを実機で使用する際にはdiff_drive_controllerと同様のコマンドで動かすことができるようなコントローラを用意する必要がありそうです。

参考文献

続きを読む ›

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

Gazeboで走るRasPiMouse その3

こんにちは。佐藤です。

前回はGazeboでRasPiMouseが動かせることを確認しました。

概要

今回は見た目を少し改良し、まっすぐに走ることができるようにします。

見た目の改良

前回まではこのように真っ白でした。
Screenshot from 2016-08-15 19:10:56

これをこのように色を付けて実物にもう少し近づけてみます。
Screenshot from 2016-08-16 17:31:26

簡単にできる方法はいくつかあります。

  • テクスチャをマッピングしたメッシュデータを用意する
  • xacroでメッシュデータにテクスチャをマッピングする
  • 色付きのメッシュデータを用意する
  • xacroでメッシュデータの色を指定する

今回はstlを用意する時点で色ごとに分割して出力し、Colladaファイルへ変換する際に色をつけます。
変換方法についてはこちらをご覧ください。
Raspberry Pi MouseのURDFモデル作成 その1 | RT MicroMouse
https://products.rt-net.jp/micromouse/archives/3168

このようにいくつかのパーツに分けて色を付けたあと、
Screenshot from 2016-08-16 17:42:19

最後にまとめてColladaファイルとしてエクスポートします。
Screenshot from 2016-08-16 17:42:38

このデータをxacroあるいはurdfで指定することで色付きのモデルができます。

ホイールの回転方向修正

前回はx軸方向へ進むコマンドを送信してもその場で旋回してしまっていました。

20160815_3

回転軸が逆なようです。
今回のモデルで軸を定義しているのではraspimouse_descriptionの中にあるrobots/raspimouse.urdf.xacroとurdf/wheel/wheel.urdf.xacroです。
これらを編集します。

編集箇所は以下のとおりです。右回りに回転するはずです。
軸の原点をロール角を+90度回転させた方の回転軸を逆向きにしました。

ちなみに、前回も紹介しましたがwheelというマクロは次のように定義されています。

このように回転軸の向きを統一することによってロボットをまっすぐ進めることができるようになりました。
20160816_2

次回はセンサと走らせるためのコマンドについて触れていきます。

補足
重心位置について

前回はInventorで慣性行列を計算し、URDFの定義に書き加えました。
重心はホイールの回転軸上ではなく、若干後ろ側に寄っています。
また、ホイールの回転軸が固定されておらず、フリーになっています。
そのため、ボディが後ろに回転しようとし、床と触れた結果ホイールが回転して前に少しずつ進んでしまうという状態です。
(早送りにしています。)
20160816_1

ボディの摩擦係数を変えてみたり、回転軸の摩擦を変えてみたりしましたが、どれもうまく行きませんでした。
ボディの摩擦係数を変えると、回転し始める際にかなり揺れます。
滑らないほど回転軸の摩擦を大きくするとcmd_vel geometry_msgs/Twistを送った際にホイールが外れてしまいました。
そこで、微少量後退するコマンドを周期的に送ったところ、全くと言っていいほど動かなくなりました。

今のところdiff_drive_controllerを使用していますが、実際のRasPiMouseとはコマンドが異なるのでros_control側で軸を固定することができるようにする必要がありそうです。

tk-WARNINGについて

と言われることがあります。
gtk2-engines-pixbufが足りていないので、以下のコマンドでインストールできます。

参考文献

続きを読む ›

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

Gazeboで走るRasPiMouse その2

こんにちは。佐藤です。

前回はGazeboでガソリンスタンドのモデルデータを表示して、RasPiMouse(の一部)を表示するところまで行いました。

概要

今回は慣性行列を定義し、Gazebo上で正しく表示できることを確認します。
その後、シミュレータ上で走らせてみます!

慣性行列の計算方法

Inventorでそれぞれのパーツについてきちんと質量を設定した後、アセンブリのiPropertyを参照すると慣性行列を確認することができます。
スクリーンショット 2016-08-14 23.39.55
スクリーンショット 2016-08-14 23.40.38

ちなみに、rvizで起動するためのxacroファイルを用意していた際は手動で算出していました。
Raspberry Pi MouseのURDFモデル作成 その2 | RT MicroMouse
https://products.rt-net.jp/micromouse/archives/3191

今回必要なデータに関してはすでにGitHubに公開してありますのでこちらをご参照ください。
https://github.com/rt-net/RaspberryPiMouse/tree/master/cad_data

ボディとホイールそれぞれをこのように定義しました。
(その他の詳細な部分については後ほどGitHubに公開する予定ですのでお待ちください。)

launchファイルの作成

前回作成したraspimouse_gazeboパッケージの中で作業します。

今まではガソリンスタンドを用意したあと、

spawnするためのurdfファイルを用意(更新)し、

それからspawnしていました。

正常にspawnできれば最初のtest.launchを起動した方のTerminalで次のような表示が出ています。

毎回起動するのも手間がかかりますので、新たにlaunchファイルを用意します。
今回は何もないempty_worldの中で呼び出してみたいと思います。
raspimouse_with_emptyworld.launchとして保存しました。

これで

で起動できるようになりました。
Screenshot from 2016-08-15 19:10:56

では、ros_controlを定義して、まずはチュートリアルで出てきた亀のように制御できるか確認してみます。

新しいパッケージを作成します。

confingディレクトリの中にcontroller.yamlを以下のように保存しました。

launchディレクトリの中にraspimouse_control.launchを以下のように保存しました。

最後に、raspimouse_gazeboディレクトリの中にあるlaunch/raspimouse_with_emptyworld.launchの</launch>の前に1行付け足します。

再びGazeboを起動します。

そして、コマンドを送ってみます。

20160815_3

動きました!!!
ホイールの回転方向が片方逆になってしまっていますが、無事に動かすことができました!

次回はホイールの回転方向を修正して、ros_controlについて書いていきます。

補足
collisionタグについて

linkタグの中のcollisionタグで衝突検出領域を定義することができます。
rvizでモデルを参照できるようにxacroファイルを用意していた際には未定義でしたが、Gazeboでは必要です。
Raspberry Pi MouseのURDFモデル作成 その2 | RT MicroMouse
https://products.rt-net.jp/micromouse/archives/3191

今回、ここの定義を適当に済ませてしまっていたため、ボディが浮いてしまうという困った自体に直面してしまいました。

Screenshot from 2016-08-15 18:31:00

今はコメントアウトしてあるjoint_originですが、当初はコメントアウトしてなかったのでずいぶんと変な位置に衝突検出領域が定義されていました。
片側のホイールを外した状態で重心を偏らせ、シミュレーションを行うと、非常によくわかります。

20160815_1

回転軸方向から見て明らかに円とは異なる形状の何かがあるように見えます。
meshを直接指定することもできるようでしたのでその方法もありかと思います。

参考文献

続きを読む ›

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

Gazeboで走るRasPiMouse その1

こんにちは。佐藤です。

Raspberry Pi Mouseと書くと思ったより文字数が多いですねー。
実はタイトルだけ前回からRasPiMouseと表記するように変更しました。

さて、前回はGazeboの使い方について紹介しました。
今回もチュートリアルとほぼ同様にしてGazebo上でロボットを呼び出します。
ついにRaspberry Pi Mouseを呼び出すときがやってきました!

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

Gazeboを起動する際のlaunchファイルを置くためのパッケージを作ります。
_descriptionパッケージとは別のパッケージに用意するのが慣例となっているようです。

Gazebo : Tutorial : Using roslaunch より引用

実際にいくつかのロボットのモデルについて調べてみたところ、概ねパッケージをいくつかに分割している場合が多いようです。

https://github.com/PR2/pr2_common
https://github.com/yujinrobot/kobuki
https://github.com/demulab/mini_sim
https://github.com/CIR-KIT/fourth_robot_pkg

今回はraspimouse_gazeboというパッケージを作り、所定のディレクトリを作成します。

ここでチュートリアルと同じようにガソリンスタンドの環境を用意してみます。今回はhello.worldとtest.launchで保存しました。

この環境でGazeboを起動してみます。

多くの場合はガゾリンスタンドのモデルデータがないと思います。
起動すると真っ暗でなにも写っていないGazeboのウィンドウが出てきます。

このメッセージが出ている間、ダウンロードしています。起動完了するまで数分かかることがあります。

ただのガソリンスタンドが出現しました。

gazebo hello world

では、ここにRaspberry Pi Mouseを呼び出してみたいと思います!そのコマンドがこちら!!

実行すると…呼び出せました!
rpimouse hello world

しかし、問題があります。よく見ると、ホイールがありません。
spawn problem

test.launchを起動した方のTerminalで次のようなエラーが出ていました。

Raspberry Pi MouseのURDFモデル作成 その2 | RT MicroMouseで慣性行列を定義しました。
RVizで表示するだけの場合は慣性モーメントだけで慣性相乗モーメントは定義しなくても何も問題ありませんでした(未定義の場合は0として扱う)が、Gazeboではきちんと定義する必要があるようです。

今回はその1ということでGazebo上で走らせる手前まで確認を行いました。
次回は慣性モーメントの簡単な算出方法を紹介したあと、コントローラを実装し、走らせてみたいと思います!

参考文献

続きを読む ›

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インストール手順
前提

執筆に用いたマシンは Ubuntu Desktop 14.04 LTS 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

ちなみに、ここで出てくるロボットの名称であるRRBotはRevolute-Revolute Manipulator Robotだそうです。

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

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

rviz rrbot

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

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

次はGazeboを起動します。

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

rrbot gazebo

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とは

オープンソースの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.

続きを読む ›

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一撃インストールシェルスクリプト –

続きを読む ›

Posted in Raspberry Pi Mouse
Tags: , , ,