3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ROSでKobukiの3Dシミュレータを動かしてみる

Last updated at Posted at 2016-12-15

仮想マシン上で手軽にROSのサンプルを動かしてみる からの続きです。
GazeboにあるKobuki(ルンバみたいなロボット)の3Dシミュレータを動かしてみます。(↓の黒いのが動きます)やっとロボットやってる人っぽくなってきました。

スクリーンショット 2016-12-16 3.19.16.png

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は作成するパッケージの名前なので任意です。rospystd_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) ROSではじめるロボットプログラミング―フリーのロボット用「フレームワーク」 (I・O BOOKS)
小倉 崇

工学社 2015-06-25
売り上げランキング : 15436

Amazonで詳しく見る
by G-Tools
sample.py
#!/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 : 操作プログラムの作成
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?