車椅子ロボットWHILLをROSで自律走行させる

2021年01月21日

こんにちは、b4の孫です。この文章は末永先輩で修正した上で、私は投稿しました。ROSのmove_baseを使って自律走行について説明します。

ハードウェア

move_baseを使った自律移動を行うには (1) レーザーセンサーの取り付けと (2) モーターの制御ケーブルを剥いてシリアル-USBケーブルと繋げる、の2つのセットアップが必要になります(製作中の画像はなし)。

実際走行中のビデオと写真はこちらになります。

img img

準備

  • Ubuntu 18.04
  • ROS melodic ROS melodicがセットアップされたPCが必要です。

ここでは ~/catkin_ws にROSのワークスペースがセットアップされているものとします。

自律移動パッケージの準備

ここではmove_baseを使った自律走行を行います。ですので以下のパッケージをインストールしておきます。

sudo apt install -y ros-melodic-move-base-msgs ros-melodic-amcl ros-melodic-joy ros-melodic-move-base ros-melodic-urg-node ros-melodic-map-  server

なおmove_baseについての詳細な説明は割愛します。別のロボットでもいいのでmove_baseの動作確認は行っている方が望ましいです。

ros_whillパッケージ

WHILL公式でROSパッケージが配布されている(WHILL/ros_whill)のでこれをワークスペースにダウンロードします。

cd ~/catkin_ws/src
git clone https://github.com/WHILL/ros_whill.git

次にビルドを行います。serialというパッケージが必要らしいので事前にインストールします。

sudo apt install -y ros-melodic-serial
catkin_make

そしてシリアルポートの設定をします。まずWHILLの電源を付けてシリアルポートのUSB端子をPCに挿します。

一応lsしてシリアルデバイスの場所を確認しておきます。

ls -lah /dev/serial/by-id/
合計 0
drwxr-xr-x 2 root root 60  1月  4 14:07 .
drwxr-xr-x 4 root root 80  1月  4 14:07 ..
lrwxrwxrwx 1 root root 13  1月  4 14:07 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB0

デバイスが/dev/ttyUSB0に存在することが分かるのでこれを環境変数TTY_WHILLにセットします。

echo 'export TTY_WHILL=/dev/ttyUSB0' >> ~/.bashrc
source ~/.bashrc

最後に、ros_whillのノードを起動します。その前に、/dev/ttyUSB0の権限が足りていなかったので付けておきます。

sudo chmod 666 /dev/ttyUSB0

これが出来たら以下のコマンドで起動します。

roslaunch ros_whill ros_whill.launch

トピック一覧見てみます。

$ rostopic list
/rosout
/rosout_agg
/tf
/tf_static
/whill/controller/cmd_vel
/whill/controller/joy
/whill/odom
/whill/states/batteryState
/whill/states/imu
/whill/states/jointState
/whill/states/joy

whillっぽいのがたくさん生えていますね。

cmd_velみたいなのが見えるのでちょっと試してみます。

rostopic pub -1 /whill/controller/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'

これを実行して少し動いたら成功です。

whill_navigation

WHILLとmove_baseを組み合わせて自律走行させるlaunchファイルが入ったパッケージを用意しました。

morioka-lab/whill_navigation

cd ~/catkin_ws/src
git clone https://github.com/morioka-lab/whill_navigation.git
cd ..
catkin_make

とすると使えるようになります。

このパッケージはシンプルにmove_baseで使っているcmd_vel等のトピック名をWHILL用にマップしただけのものです。

roslaunch whill_navigation whill_navigation.launch

これで起動ができます。