< >
Home » ROS2与Ignition入门教程 » Ignition入门教程-生成URDF模型

Ignition入门教程-生成URDF模型

Ignition入门教程-生成URDF模型

说明:

  • 本教程将介绍如何在 Ignition Gazebo 中生成 URDF 模型。
  • URDF 文件经常在 ROS 中用于表示机器人模型。
  • 虽然 SDF 可以描述具有多个机器人模型的世界,但 URDF 只能描述一个机器人模型。
  • 有关 URDF 的更多信息,请访问 https://wiki.ros.org/urdf。

获取URDF文件

  • 本教程假设读者已经有一个他们想要加载到Ignition Gazebo中的 URDF 文件。
  • 如果您正在寻找要使用的URDF文件,您可以使用gazebo_ros_demos包中的 rrbot 机器人模型,需要更多例子
  • 如果您有机器人模型的xacro表示,则可以使用 xacro包将xacro文件转换为URDF文件:有关更多信息,请参阅本教程
  • 这里我制作好了一个基于ros2的rrbot的模型,点击下载
  • 编译包
cd ~
mkdir -p ~/simulation2_ws/src 
wget http://file.ncnynl.com/ros2/rrbot_description.tar.gz
tar -zxvf rrbot_description.tar.gz
mv rrbot_description ~/simulation2_ws/src 
cd ~/simulation2_ws/
colcon build --symlink-install 
  • 制作URDF文件
  • 默认的rrbot是xacro文件,使用如下命令转化
cd ~/simulation2_ws/src/rrbot_description/urdf/
xacro rrbot.xacro > model.urdf

生成URDF模型

  • 为了在Ignition Gazebo中生成一个URDF模型,我们将创建一个世界并使用世界的创建服务,该服务使用 EntityFactory 消息类型。

  • 首先在 Ignition Gazebo 中启动一个空的世界:

ign gazebo empty.sdf
  • 效果图

请输入图片描述

  • 新开终端,查看ign服务列表
$  ign service -l
/gui/follow
/gui/follow/offset
/gui/move_to
/gui/move_to/pose
/gui/record_video
/gui/screenshot
/gui/transform_mode
/gui/view/collisions
/gui/view_angle
/marker
/marker/list
/marker_array
/world/empty/control
  • 具体查看/world/empty/create服务所展示服务的请求和响应消息类型:
$ ign service -is /world/empty/create
Service providers [Address, Request Message Type, Response Message Type]:
  tcp://172.17.0.1:44107, ignition.msgs.EntityFactory, ignition.msgs.Boolean
  • 现在我们已经找到了具有 EntityFactory 请求类型的服务,我们可以调用该服务并将 URDF 文件传递给服务的请求,以便在 Ignition Gazebo 世界中生成该 URDF 文件所代表的机器人。 为此,我们将所需的 URDF 文件设置为 EntityFactory 请求消息的 sdf_file_name 字段。 然后,libsdformat 库将在内部将 URDF 文件转换为 SDF 表示,并将其加载到正在运行的世界中。

  • 以下命令将URDF文件 model.urdf 作为名为 urdf_model 的模型生成到 Ignition Gazebo 世界中:

  • 在我们的下载rrbot模型包含已经生成的model.urdf文件,直接执行

ign service -s /world/empty/create --reqtype ignition.msgs.EntityFactory --reptype ignition.msgs.Boolean --timeout 1000 --req 'sdf_filename: "/home/ubuntu/simulation2_ws/src/rrbot_description/urdf/model.urdf", name: "urdf_model"'
  • 如果你路径变更了,更改具体的model.urdf路径, 加载之后显示
  • 效果图:

请输入图片描述

  • 我们现在可以进行模拟以确保加载的 URDF 模型的行为符合预期:
  • 点击Ignition的播放键,效果如下:

请输入图片描述

参考:

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ignition入门教程