3
3

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 1 year has passed since last update.

ROS講座134 Gazeboで周囲に物を置く

Last updated at Posted at 2022-10-03

環境

この記事は以下の環境で動いています。

項目
CPU Core i5-8250U
Ubuntu 20.04
ROS Noetic
Gazebo 11.9.0

インストールについてはROS講座02 インストールを参照してください。
またこの記事のプログラムはgithubにアップロードされています。ROS講座11 gitリポジトリを参照してください。

概要

ここまでGazeboシミュレーションで「自機」の設定をしてきましたが、それと同じように周りの物を置くこともシミュレーションの上では重要です。ここでは周囲の環境の設定をしてみましょう。

Gazeboモデルデータベースの利用

Gazeboにはモデルデータベースがあり、ここに便利なGazeboモデルがたくさん収録されています。

GUIから利用

これらを見るためにはGazeboの「Intsert」タブを開き、「Connection to model database」を押します。ここでサーバーに通信するので数分待ちます。
other_model1.png

しばらくすると以下のように表示が変わるのでメニューを開きます。様々なモデルが出てきますが、ここでは「cafe」を選んで、3Dビューの上でクリックしましょう
other_model2.png

すると以下のように「cafe」のモデルが登場します。
other_model3.png

一度このように使ったファイルは~/.gazebo/model以下に保存されます。

worldファイルで記述

自作のモデルと同じように以下のようにincludeを書けば使用できます。また事前に上記の方法でモデルをダウンロードしていなくても、Gazebo起動時に自動的にダウンロードできます(その代わり起動までしばらく待つことになります)。

gazebo2_lecture/worlds/objects_from_db.worldの一部
<include>
  <uri>model://cafe</uri>
</include>

一定の範囲に分布させる

障害物を一定の領域に分布させたい場合は<population>機能を使うと実現できます。

gazebo2_lecture/worlds/objects_from_db.worldの一部
<population name="can_population1">
  <model name="can1">
    <include>
      <uri>model://coke_can</uri>
    </include>
  </model>
  <pose>1.5 0 0.2 0 0 0</pose>
  <box>
    <size>1 2 0.01</size>
  </box>
  <model_count>5</model_count>
  <distribution>
    <type>random</type>
  </distribution>
</population>
  • <population>タグの直下の<model>タグで出現させるモデルを指定します。
  • 出現範囲は矩形か円形で選べます。矩形なら<box>タグで範囲を指定します。
  • <model_count>は出現させるモデルの数です。
  • <distribution/type>では分布のタイプを指定できます。randomでは無作為に配置します。起動ごとに配置が変わります。

シミュレーションのステップの調整

デフォルトでは秒間1000ステップで物理演算を行います。高速で動くものでない限りはここを調整することでCPU負荷を抑えることが出来ます。
例えば秒間200ステップに抑えるには<world>タグ以下に記述を追加します。

gazebo2_lecture/worlds/objects_from_db.worldの一部
<physics type='ode'>
  <max_step_size>0.05</max_step_size>
  <real_time_factor>1</real_time_factor>
  <real_time_update_rate>200</real_time_update_rate>
</physics>

実行

実行
roslaunch gazebo_ros empty_world.launch world_name:=objects_from_db.world verbose:=true

cafeモデルの出現とcoke_canを無作為に5個出現します。

other_model4.png

参考

gazebo_models
populationの使い方

目次ページへのリンク

ROS講座の目次へのリンク

3
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?