ROSとRaspberry Piとタミヤのカムロボットでラジコンを作ろう[モータ駆動編]

ROS

前回はモータを動かすための回路を組みました. 今回はROSを立ち上げてモータを動かします.

Raspberry Piを起動し, 本プロジェクトをcatkin_wsにダウンロードしビルドします.

cd ~/catkin_ws/src
git clone git@gitlab.com:botamochi6277/tamiya_cam_robot.git
cd ~/catkin_ws
catkin_make

続いて, GPIOを操作するためにpigpioというライブラリをインストールします, 次のコマンドを実行してください.

sudo apt-get update
sudo apt-get install pigpio python-pigpio python3-pigpio

ROSは基本的にrootで実行できません. 一方で, Raspberry PiのGPIOはrootでないと操作できません.
そこで, rootでpigpiodというデーモンを次のコマンドで立ち上げてRaspberry PiのGPIOの操作をお任せします.

sudo pigpiod

続いて, ピンの割り当てを次のコマンドで読み込みます.

cd ~/catkin_ws
rosparam load src/tamiya_cam_robot/pigpio.yaml

さらに, 次のコマンドを実行することでモータを動かしていきます.

rosrun tamiya_cam_robot test_run

正しく配線できていれば, 前進->後退->右旋回->左旋回の順にモータが動きます.
モータが正常に動いたら, ロボットを組み立てていきましょう.
組み立て例は次の通りです.

ロボットを組み立てた状態でモータを動かすと下の動画のようになります.

次は, カムロボにカメラを取り付けて遠隔操作できるように組み立てていきます.

コメント

  1. 通りすがりの質問者 より:

    ubiquityのrosイメージを使い、pigpioを使っているのですがGPIOを使うとconnection closed by remote hostのエラーが出るのですが心当たりはありませんか?

    • botamochi6277 より:

      私の場合はこちらのエラーが出たことはありませんが, pigpioでよくあるのは sudo pigpiod を実行し忘れていることですね.
      ただ, “connection closed by remote host”はsshで”sudo shutdown”した時に出てくるメッセージです.
      したがってsshでログインしているのであれば, sshを使わずに直接操作してみるのもいいと思います.