仮想マシン上で手軽にROSのサンプルを動かしてみる からの続きです。
GazeboにあるKobuki(ルンバみたいなロボット)の3Dシミュレータを動かしてみます。(↓の黒いのが動きます)やっとロボットやってる人っぽくなってきました。
kobukiシミュレータのインストール
Gazeboリポジトリの追加
一回最後までインストールして起動してみましたが、バージョンが合わず起動できませんでした。下記を参考に、先にリポジトリを追加&アップデートしておきます。
参考:Problem with Indigo and Gazebo 2.2 - ROS Answers: Open Source Q&A Forum
$ sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu trusty main" > /etc/apt/sources.list.d/gazebo-latest.list'
$ wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
$ sudo apt-get update
インストール
$ sudo apt-get install -y ros-indigo-kobuki-gazebo
起動(コマンドの確認だけ)
最後にまとめて起動するので、今はコマンドの確認だけ。
$ roslaunch kobuki_gazebo kobuki_playground.launch
操作プログラムの作成
パッケージの雛形作成
下記により、パッケージの雛形を作成します。kobuki_sample
は作成するパッケージの名前なので任意です。rospy
とstd_msgs
は依存パッケージを指定していますが、後から追加もできるのであまり気にしなくて良いです。
$ cd ~/catkin_ws/src
$ catkin_create_pkg kobuki_sample rospy std_msgs
catkin_make
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
操作プログラムの作成
ソースコードは<package>/scripts
配下に置くのがお作法のようです。
$ mkdir -p ~/catkin_ws/src/kobuki_sample/scripts
$ roscd kobuki_sample/scripts
$ vi sample.py
下記プログラムは、以下の書籍のプログラムを多少改変したものです。ちなみに、BSDライセンスです。Amazonの評価も高いですし、実際読みやすい&分かりやすい入門書です。おすすめ。
ROSではじめるロボットプログラミング―フリーのロボット用「フレームワーク」 (I・O BOOKS) 小倉 崇 工学社 2015-06-25 売り上げランキング : 15436 Amazonで詳しく見る by G-Tools |
#!/usr/bin/env python
import rospy
from geometry_msgs.msg import Twist
# Node name
rospy.init_node("sample")
# Topic : /mobile_base/commands/velocity
# Type : Twist
# Options : queue_size=10
pub = rospy.Publisher("/mobile_base/commands/velocity", Twist, queue_size=10)
# Loop while not shutdown
while not rospy.is_shutdown():
# construct Twist object
vel = Twist()
# wait user input
direction = raw_input("f: forward, b: backward, l: left, r: right q: quit > ")
# decode commands
if "f" in direction:
vel.linear.x = +0.5 # forward
if "b" in direction:
vel.linear.x = -0.5 # backward
if "l" in direction:
vel.angular.z = +1.0 # rotate left
if "r" in direction:
vel.angular.z = -1.0 # rotate right
if "q" in direction:
break # quit program
# print detail
print vel
# publish
pub.publish(vel)
実行権限をつける
$ roscd kobuki_sample/scripts
$ chmod 755 sample.py
シミュレータを動かしてみる
GUI環境で以下を実行。
$ roslaunch kobuki_gazebo kobuki_playground.launch
別ターミナルで以下を実行。
$ roscd kobuki_sample/scripts
$ ./sample.py
fl
とかrb
とかやると動く。
ちなみに
仮想マシン上で手軽にROSのサンプルを動かしてみる の続きということで、下記のようにKobukiシミュレータと操作プログラムを別ホストにインストールしてみましたが、特に追加設定なく動作しました。このあたりを裏でよしなにやってくれるのは便利です。
-
192.168.33.10
: Kobukiシミュレータのインストール -
192.168.33.11
: 操作プログラムの作成