FC2ブログ

ROSラジコン




ラズパイにROSを入れてwiiリモコンで操作できるようにしてみました。
目的は簡単なところからラズパイとROS実装の基本を学ぶことです。



以下、忘れないようにやったことを備忘メモ。
(再検証していないので、もしこの記事を参考にしてうまくいかなかった場合はすみません。)



ROSの基本については「ROSではじめるロボットプログラミング」と「ROSロボットプログラミングバイブル」を参考にしました。


▼ やったこと

① カムロボの改造とモータードライバの搭載
カムロボのモーターへの配線をQIコネクタ化し、ブレッドボード上にモータードライバとしていつものTA7291Pを配置。
電源はスマホ用の5V充電池からラズパイへ、ラズパイの5V出力からそのままモーター電源にも回しています。
(本来はモーター用とPC&ロジック回路用で別々の電源を用意するのがよいです。)


② ROSのインストール
ラズパイ3にRasbian(Stretch)を入れ、その上にROS(kinetic)を入れました。
リモコン用のライブラリとしてwiimoteを使っていますが、いつ入れたか失念しました。。。
ビルドシステムはcatkin_make ではなく catkin buildにしています。


③ pigpioの導入
ラズパイの出力IOポートをpython から操作できるように、pigpioを導入。
ただしこれは毎回$ sudo pigpiodをしなくてはならいないので、起動時に自動実行するように設定。
sudo systemctl enable pigpiod
をして再起動すれば大丈夫のようです。


④ wiimoteの確認
rescore でroscoreを立ち上げて、次に
rosrun wiimote wiimote_node を実行します。(ちゃんとインストールされていれば。)
wiimote_nodeが実行されるとすぐにペアリング設定がはじまるので、
すぐにwiiリモコンの1ボタン2ボタンを同時押しします。
コンソール上でペアリングの確認をします。

rostopic echo /wiimote/state
とやると、受信したリモコンボタンの内容がズラズラと表示されるので、リモコンの反応を確認します。


⑤ パッケージをつくる
$ cd ~/catkin_ws/src
$ catkin_create_pkg ros_start std_msgs rospy roscpp wiimote
などとして、パッケージを作ります。パッケージを準備することでオリジナルのプログラムでもROSで使えるようになります。


⑥ wiimoveの準備
上記④でpublishされたボタン内容をsubscribeして内容を受け取り、
pigpio経由でラズパイのIOポートに出力してモーターを操作するためのプログラムを準備します。
スクリプトはさきほど準備した⑤の中の~/catkin_ws/src/ros_start/scripts のフォルダに格納します。


ちなみに自分の環境ではピンアサインを
pin 14 : 右モーター前転
pin 15 : 右モーター後転
pin 18 : 右モーターPWM (※今回は使用せず)
pin 17 : 左モーター前転
pin 27 : 左モーター後転
pin 22 : 左モーターPWM (※今回は使用せず)
pin 4 :LED
としました。(コードは文末に)


⑦ プログラムを起動する
$ roscore
$ rosrun wiimote wiimote_node
$ rosrun ros_start wiimove.py


続きを読む

スポンサーサイト

テーマ : 自然科学
ジャンル : 学問・文化・芸術

bash地獄


ラズパイにSSHで入ったらROSが起動しないなど困ったことがあったので調べました。
結論からいうと.bashの設定の読み込み順にトリックがあることがわかりました。



参考にしたのこちらのサイト様。
https://techracho.bpsinc.jp/hachi8833/2019_06_06/66396
https://qiita.com/tatesuke/items/88629e9550b813109964



どうやらbashの設定は各所に散在しており、それを順番に読み込んでいく仕組みのようです。

①/etc/profile (通常のログインはここから読み込みが始まる)
②/etc/bash.bashrc (なければ無視)
③~/.bash_profile (なければ、~/.bash_login、それもなければ~/.profile)
④~/.bashrc (SSHなど対話起動時はここから読み込みが始まる)
⑤/etc/bashrc
⑥bash起動

というのが大まかな順番らしいです。
④の中に①を参照するように書いておけばとりこぼしを防げそう。
②③に書かれている内容があれば④に移してもよいかも?



テーマ : 自然科学
ジャンル : 学問・文化・芸術

エッジ抽出


ラズパイ3上でOpenCVを試してみました。




CIMG0096.jpg

全然だめかと思いましたが、静止状態であれば想像よりもちゃんとエッジがとれてます。反応スピードもかなり早いです。





ただしカメラのパンや動くものへの追従スピードはカメラ側がしっかりしたものでないとだめです。
シャッタースピードの早いちゃんとしたカメラじゃないとアレですね。

テーマ : 自然科学
ジャンル : 学問・文化・芸術

MacのAtomからラズパイを編集する


th_P1110527.jpg

th_P1110528.jpg

以前ラズパイをハンドヘルド的にパッケージングして喜んでいたのですが。



いざちゃんと学ぼうとするとやっぱりいろいろ不便です。
具体的には、ブラウザでガシガシ検索しながらどんどんコピペで学習を進めようとした時、
ちゃんとしたディスプレイにつないだところでブラウザが遅くてイライラします。



MacのAtom経由でラズパイ内のファイルをどんどん書けるようなので、その設定をしてみました。




ss2019-06-27_2.png
Atomのバージョン。

ss2019-06-27.png
Macとラズパイを有線LANでつないだときの設定例。
ラズパイ側はデフォルトになっているので実際にはログイン名やパスワードを変更します。
デフォルトのままならホスト名はIPアドレスじゃなくてraspberrypi:localで受け付けてくれるので急ぎの人におすすめです。

上記の設定の前にAtomの「環境設定」→「install」→「ftp-remote-edit」でパッケージのインストールを行い、
Atomのリスタート後に「パッケージ」→「ftp-remote」して設定に入ります。

ちなみにラズパイ上にファイルを作るときは、Atomの右側のトグルのディレクトリアイコンの上で右クリック→New Fileでいけます。


これで作業が捗る予定。


テーマ : 自然科学
ジャンル : 学問・文化・芸術

REALSENSE D435


REALSENSE D435を発作的に買ったまま放置してました。
有給がとれまして動作テストにこぎつけました。



動作環境はMacBookAir 2015 + ubuntu(USBブート)です。
最初のテストではUSB2.1としてしか認識されずかなりがっかりしましたが、いろいろ調べたところ既知の問題のようで接続した瞬間に転送速度が遅いとそのまま2.1認識になってしまうとのこと。試しに一旦抜いた後、USBにガッと一瞬で差し込むようにしたらUSB3.2で認識されるようになりました。昭和の家電か。今後もずっとこの手口で3.2に認識されつづけるかは甚だ不安。
一旦3.2として認識された場合で再起動した場合どうなるかはあとで検証(たぶん2.1で認識されちゃう)



とくに何も設定しない状態で家の中を見てみました。

Screenshot from 2019-06-26 11-18-10
デプスカメラは日光で赤外線が飽和するというウワサを聞いたことがあるので、日中にベランダにでてみました。
晴天でお日様もかなり真上にありますが、距離はとれているようです。
2Dカメラとデプスカメラでは、デプスカメラの方が画角が広いようです。


Screenshot from 2019-06-26 11-19-39
手前の金属の物干しポールは撮れてますが、奥の金属の手すりは撮れてないようです。
他に鏡の前でも試しましたが、鏡に反射した分の距離を撮っているようでした。


Screenshot from 2019-06-26 11-19-04
金属の脱気塔が黒くなっちゃうかと思いましたが、そうはなりませんでした。


Screenshot from 2019-06-26 11-23-02
鳥かごが一部黒くなってしまうのは、照射した赤外線が籠の針金の局面に当たって戻ってこないからでしょうか。


Screenshot from 2019-06-26 11-20-33
階段を見下ろしたところ。下階から射してくる光に影響されてか一部へんなところがあります。


Screenshot from 2019-06-26 11-21-09
同じ階段を下から上に見上げたところ。奥の壁に対して光の強いところが消えているので、少し赤外線の影響が出ているようです。


Screenshot from 2019-06-26 11-26-48
薄暗い棚の中。


Screenshot from 2019-06-26 11-24-42
廊下の感じ。




Screenshot from 2019-06-25 23-19-59
ちなみにUSB2.1として認識されてしまうと、右側にエラーメッセージが続々あらわれてそれもあってかフレームレートが10秒に1枚ぐらいまで下がります。




スコブルなどの二足ロボットに乗せるなら、認識としては2Dカメラ+OpenCVとかでもよいかも?
ラズパイ4とかジェットソンだと処理能力がどうなるかも楽しみです。

テーマ : 自然科学
ジャンル : 学問・文化・芸術

プロフィール

二名川(ニナガワ)

Author:二名川(ニナガワ)
ホビーロボットをレトロゲームが発展したものと捉えて楽しく遊び倒します。
子供が夢を見ている時間帯に稼働します。

電子出版
「コンソロイド ガイドブック」
46107_CONSOLOID_GUID_FACE_200.jpg





■作成中の機体
汎用ヒト型決戦遊具 ~RX計画~
RX-7.5 ゼロタンク
RRf-0.6 ゼニィ
RXM-7.9 ゼムネス
RX-7.5R 量産型ゼロタンク
RX-7.5Fp ファミタンク仮設1号
RX-7.7 ゼロキャノン
RX-7.8 ゼログレイ
SMS-0.1 ゼロライナー
以下続く

RX整備計画(仮)

ブログ内検索
最近の記事
最近のコメント
カテゴリ
月別アーカイブ
リンク