我得到了模式
URDF 文件是 ROS 的 3D 模型,可以加载到 Unity 中。
如果你使用已经提供的 URDF-Importer 是可以的,但是根据文件的不同,你可能需要一些技巧来导入它。
所以我会在处理每种情况时尝试读取无法一口气读取的URDF。
准备1
首先,URDF-Importer的介绍总结如下。还包括一个视频。
本文假设 URDF-Importerv0.5.2 版本。
准备2
下载已发布的 URDF。
① 劳埃德一号:https://github.com/Ninagawa123/roid1
②高达:https://github.com/gundam-global-challenge/gundam_robot
③预制:https://github.com/chikuta/premaidai_description
这样的
如果你习惯了,请使用 git clone。
当然,您也可以以 zip 格式下载它并在桌面上继续您的工作。从上面存储库的绿色代码按钮下载 ZIP。
提示 1 如果您可以阅读 .urdf 文件
①roid one 有一个适合进口商的.urdf 文件。
URDF-Importer 已经安装在 Unity 的 Assets 目录中 → 放下 URDF 文件夹 → 在里面roid1_urdf_unity.urdf右键单击 → 从选定的 URDF 文件中选择导入机器人。
你可以通过这样做来阅读它
提示2:如果有.urdf文件但层次结构不同
② Gundam 有一个.urdf 文件,但目录不适合原来的样子。因此,需要在导入时告诉 URDF-Importer 根目录或单个文件的路径。我在上面的视频中向您展示了如何。
另外,如果根目录的选择不起作用,我认为技巧 3 会有所帮助。
提示 3:当您需要重写 .urdf 文件时
如果不能一口气读完,可以通过组织URDF-Importer的层次结构来读。
首先,将 Assets 中的 .urdf 文件目录更改为
URDF
├ xxx_description
│ └meshes
│ └.stlや.daeファイル
└ xxx.urdf
重新排列它
似乎顶级目录现在应该是 URDF。
接下来,清理 xxx.urdf 中文件的网格数据路径。
<geometry>
<mesh filename="package://xxx_description/meshes/xxx.stl" />
</geometry>
“package://”表示“URDF”目录,如上所示,指定路径,以使网格文件主体的位置与之前重新排列的层次结构相匹配。
如果您在代码中找到一个相关部分,让我们一次性转换它并替换。
技巧 4 从 .xacro 转换为 .urdf
不幸的是,URDF-Importer v0.5.2 版本只能读取 URDF。只有 .xacro 文件的文件无法按原样读取,因此需要转换一次。
例如,目前③的premade中没有.urdf。
整个模型的.xacro在robots目录下,所以转换成.urdf。
要进行转换,您现在将使用带有 ROS 的 Ubuntu 环境。
如果没有ROS环境,请搜索如何安装ROS...
$ cd ~catkin_ws/src #いつものROSのワークスペース
,把对应的.xacro文件所在的目录和父目录放在一起,然后
$ roscd
$ catkin build
$ source ~/catkin_ws/devel/setup.bash(環境によりパスが違うかも?)
跑
现在转换的路径已经通过了,所以cd到xxxx.xacro文件所在的层次,
xacro xxxx.xacro > xxxx.urdf
会做。
这将创建一个扩展的 .urdf,因此我认为您可以在技巧 3 → 技巧 1 的过程中阅读它。
执行结果
我能够使用相同的步骤将各种 URDF 文件加载到 Unity 中。
RP2经常在ROS书籍中被提及,但我感觉这次是第一次在三个维度上看到它。
我还没能仔细研究每个模型的内部结构,所以有些可能需要修改才能使用。
奖励 1:召唤 nao 有点困难
nao 似乎并没有提供mesh文件本身的数据,所以似乎有必要单独构建。
下面给出了有关如何构建的说明。
一旦创建了网格,就可以通过以技巧 3 的格式分层组织它并重写路径来导入它。
不过内部处理好像挺难的,花了很长时间才完成导入。
如果你有时间,为什么不把它当作一个益智游戏来试试呢?
奖励 2:让我们召唤一个四足动物!
以下是您提供的存储库。好像可以统一下载URDF。
参考
致谢
ROS japan UG slack 的问题一角教会了我必须指定层级的技巧。非常感谢。
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308626079.html