Blog Archives

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: , , , , ,

Raspberry Piで学ぶROSロボット入門についての補足

yukiです。こんばんは。

apt update、apt upgradeしてwlan0が消えてしまうというご指摘をうけて、いろいろ調べながら意気揚々とサポート記事を書いていたら、ちょっと複雑そうです。
いろいろ手を尽くしてみたのですが、今のところサクッと直せる方法が出てこないため、前回までの記事は、混乱の元になりかねないので、そっ閉じしました。あしからずご了承ください。

詳細は、上田先生はじめ、みなさんのおかげでこちらにアップデートされていますので、随時確認してください。

今のところの対策は、自動アップデートを止める方法です。
イメージをhttps://wiki.ubuntu.com/ARM/RaspberryPi からダウンロードしてSDカードにddした後、すぐにC.13.1「自動アップデートの抑制」でアップデートを止める方法が今のところ最良です。

また、その後すぐに

$ sudo apt purge cloud-init
の実行をお願いいたします。

今アップデートされているOSイメージについては、検証している最中ですので、続報をお待ち下さい。
すでにupdateしちゃったよーという方は、お手数ですが、もう一回ddして上記を試してください。

コレ以外にも問題があった場合は、githubのissueを立てていただければありがたいです。
よろしくお願いします!

続きを読む ›

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


FAQ SDカードのインストールとログインはどうしたらいいですか?

yukiです。一回公開しましたが、誤情報だということが分かったので別のブログで公開しました。
そちらをご参照ください。
https://products.rt-net.jp/micromouse/archives/4001

続きを読む ›

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


2017/03/30に「Raspberry Piで学ぶ ROSロボット入門」発売決定!

Raspberry Pi Mouseの教科書として、Raspberry Pi財団CEO Mr.Eben Upton氏にもご支持いただきました!

書名:Raspberry Piで学ぶ ROSロボット入門
著者:上田 隆一
価格:¥3,996(2017/03/13時点での発表価格)
出版日:2017/03/30
ISBN-104822239292
ISBN-139784822239299
出版社:日経BP社 

Raspberry Pi Mouseの詳細につきましては、こちらをクリック

続きを読む ›

Posted in Raspberry Pi Mouse, お知らせ
Tags: , ,

RaspberryPI2にubuntu14.04をインストールしデバドラを動かす

お久しぶりです。青木です。

タイトルをみて、”え、いまごろPi2にubuntu14.04のインストール?”と思われる方がいる思いますが、弊社から販売していますRaspberryPiMouseV2が好評で、こういった導入の所の問い合わせで増えてきています。初歩的なところをお問い合わせすることが恥ずかしいという方に、まず、ここをみて、わからなかったら問い合わせをして頂ければと思い書いた所存でございます。

RaspberryPI2にubuntu14.04をインストールするには、まず、RaspberryPI2用のubuntu14.04のバイナリを入手する必要があります。
Ubuntuのページトップにあるのは、16.04です。
今回の目的は、RaspberryPI2にubuntu14.04をインストールすることですので、ページの下の方にいってダウンロードする必要があります。

ubuntu wikiにRaspberryPiにubuntuをインストールする方法が書かれています。しかしながら、すべて英語なので、戸惑ってしまうかもしれません。よく見ると難しいことはほとんど書かれておらず、インストールの手順とubuntuのバイナリのリンクが張ってある程度ですのでちょっとがんばりましょう。

次が手順となります。
1)ubuntu wikiのページからRaspberryPi2用のubuntuのバイナリを入手します。ここをクリック
2)ダウンロードした2015-04-06-ubuntu-trusty.zipを解凍し、SDカードにイメージをコピーします。
※私は、Windows環境で仕事をしているため、Win32 Disk Imagerを使用してSDカードにイメージをコピーしています。
3)この状態でSDカードをRaspberryPi2に指し、起動するとubuntuが起動します。
ubuntuのパスワードは、ログイン名:ubuntu、パスワードubuntuです。
4)起動したあとディスクの拡張をします。拡張前は2Gだったような気がします。
%はプロンプト(ubuntu等で、name%>みたいに出てくるコマンドラインの最初のこと)ですので、sudoから次の命令を打ち込みます。sudoでパスワードを聞かれたら上記のパスワードを入力します。

%sudo fdisk /dev/mmcblk0

と打ち込みそのあと、いろいろ指示が出てきますので、d,2,n,p,2,enter、etner,wの順番でキーを叩き、再起動(%sudo reboot)します。
5)再起動したら、
%sudo resize2fs /dev/mmcblk0p2
と打ち込みます。

次に、ROSを入れたい方とデバイスドライバをコンパイルをされる方は、上田先生のgithubを参考にすると簡単にROSをインストール、コンパイルする環境が構築できます。

導入直後のubuntuは、githubが使えませんので、まずgithubをインストールする必要があります。
githubを使用するのでgitをインストールします。

%sudo apt-get install git

上田先生のgithubからROSをインストールするバッチファィルをクローンします。(コピーすることをgitではCloneと言います。)

%sudo git clone https://github.com/ryuichiueda/ros_setup_scripts_Ubuntu14.04_server.git

以下のコマンドを実行することでROSがインストールできたはずです。

%cd ros_setup_scripts_Ubuntu14.04_server
%sudo ./step0.bash
%sudo ./step1.bash

さらに、Raspberry Pi Mouseのドライバをセットアップする方法です。
まず、弊社のgithubからデバイスドライバーをコンパイルするバッチファイルをクローンしてきます。

%sudo git clone https://github.com/rt-net/RaspberryPiMouse

クローンしたら

%cd RaspberryPiMouse/src/drivers
%mv Makefile.ubuntu14 Makefile
%sudo make

と打ち込むとデバイスドライバーがコンパイルされます。
あとは、ドライバを読み込む設定

%sudo insmod rtmouse.ko

を行い、実行モードを変更します。

%sudo chmod 666 /dev/rt*

とすれば、デバイスドライバが組み込まれます。
ただし、このデバイスドライバーは、電源を切るとはずれてしまうので起動するたびにinsmodをする必要があります。

それぞれのsudoの後のコマンドは勉強を兼ねて各自Google等で調べてみてください。

続きを読む ›

Posted in Raspberry Pi Mouse


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: , , , , , , ,

RasPiMouseでマイクロマウス大会

マイクロマウスの大会シーズンがやってきました。
11月の全日本大会に向けて、ソフトウェアを作りこむシーズンです。

諸事情によりLinuxで直接デバイスをリアルタイム制御したいという欲求が高まっているため、
折角なのでRaspberry Pi Mouseで競技会に参加することにします。

競技会自体は、改造すれば様々なところに出せると思いますが、
無改造で出せるマイクロマウスに参加登録しました。

第37回全日本マイクロマウス大会ホームページ
参加登録は早めに行いましょう。
2016年度地区大会・学生大会等スケジュール
本番の大会の前に、地区大会で練習します。

そこで気づいたのですが、参加登録の時にロボットのテクニカルシートを記入する必要があります。
特設サイトには記述してない情報だと思いますので、
情報をこちらに載せたいと思います。登録時の参考にしてください。
Raspberry Pi3の時の情報なので、Raspberry Pi2の人はCPUのところを適宜入れ替えてください。

CPU:ARM系
メーカ名:Broadcom
CPU型番:BCM2837
動作周波数:1200[MHz]
ROM 0 [kB] / RAM 1 [GB] / Data Flash 16 [GB]

RaspberryPi2
注)写真はRaspberry Pi2

バッテリー【CPU関係】 種類・数 :LiPo / 3 [セルor本]
使用電圧(公称電圧):11.1[V]
容量:1000 [mAh]
メーカ名:Turnigy
バッテリー【モータ関係】 CPU関係と共用

RaspberryPiMouseBattery

走行(推進)用モータ ステッピングモータ 2(個)
メーカ名:MERCURY MOTOR
モータドライバICの型番やメーカ名など:SLA7070MPRT
走行用以外のモータ 無し

RaspberryPiMouseMotor
RaspberryPiMouseMotorDriver

センサ(種類、個数、メーカ名) 赤外線センサ:4(個)
メーカ名や型式、用途や特徴 :ST-1KL3LA / 距離センサ(反射光量をAD変換)

RaspberryPiMouseSensor

動輪(車輪の個数と寸法) 2[輪]
直径:47.5[mm]
幅:7.5[mm]

RaspberryPiMouseTira

補助輪(車輪の個数と寸法) 無し

ロボットの寸法
長さ:130[mm]
横幅:100[mm]
高さ:83[mm]
重さ:740[g]

RaspberryPiMouseBody

開発ツール マイコン統合環境やコンパイラなどのツール : GCC

完走目指します。

続きを読む ›

Posted in Raspberry Pi Mouse, 大会情報


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: , , , , ,