こんにちは、b4の孫です。この文章は末永先輩で修正した上で、私は投稿しました。ROSのmove_base
を使って自律走行について説明します。
move_base
を使った自律移動を行うには (1) レーザーセンサーの取り付けと (2) モーターの制御ケーブルを剥いてシリアル-USBケーブルと繋げる、の2つのセットアップが必要になります(製作中の画像はなし)。
実際走行中のビデオと写真はこちらになります。
ここでは ~/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
の動作確認は行っている方が望ましいです。
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とmove_base
を組み合わせて自律走行させるlaunchファイルが入ったパッケージを用意しました。
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
これで起動ができます。