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

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





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

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

プロフィール

二名川(ニナガワ)

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整備計画(仮)

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