1. 准备DAE文件,我是在网上找到了一个dae文件进行测试,也可以用3DMAX导出DAE文件。
  2. 在DAE所在文件目录下创建hokuyo.world文件
<?xml version="1.0"?>
<sdf version="1.0"><world name="default"><include><uri>model://sun</uri></include><include><uri>model://ground_plane</uri></include><model name="hokuyo"><pose>0 0 0.49 0 1.57079 0</pose><static>true</static><link name="up"><visual name="visual"><geometry><mesh><uri>file://hokuyo.dae</uri></mesh></geometry></visual></link></model></world>
</sdf>
  1. 进入文件所在目录,在gazebo中打开launch文件即可打开dae文件
gazebo hokuyo.world


4.上面只是用gazebo打开了dae文件,但是我们要做的是连接ROS实现传感器仿真,因此需要使用roslaunch打开dae模型。
1)在功能包目录下创建urdf文件,然后新建文件simulation_dae.urdg:

<?xml version="1.0"?><robot xmlns:xacro="http://www.ros.org/wiki/xacro" xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"name="hokuyo"><!-- Hokuyo Laser --><link name="hokuyo_link"><collision><origin xyz="0 0 0" rpy="0 0 0"/><geometry><box size="0.1 0.1 0.1"/></geometry></collision><visual><origin xyz="0 0 0" rpy="0 0 0"/><geometry><mesh filename="package://robot1_description/meshes/simulation.dae"/></geometry></visual><inertial><mass value="1e-5" /><origin xyz="0 0 0" rpy="0 0 0"/><inertia ixx="1e-6" ixy="0" ixz="0" iyy="1e-6" iyz="0" izz="1e-6" /></inertial></link></robot>

注:a. simulation.dae文件为我用3dmax建模导出的dae文件
b. dae文件需放在“/robot1_description/meshes/”(网上下载的chapter7_tutorials文件夹下),下载路径可以查看我的另外一篇文章,在网上看到说需要把dae文件加载到gazebo相应路径下,否则gazebo找不到dae文件路径,但是没搞明白,就暂时先放在这里吧。

2)在功能包目录下创建launch文件夹,然后新建文件simulation.launch:

<?xml version="1.0"?>
<launch><!-- these are the arguments you can pass this launch file, for example paused:=true --><arg name="paused" default="true"/><arg name="use_sim_time" default="false"/><arg name="gui" default="true"/><arg name="headless" default="false"/><arg name="debug" default="true"/><!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched --><include file="$(find gazebo_ros)/launch/empty_world.launch"> <arg name="debug" value="$(arg debug)" /><arg name="gui" value="$(arg gui)" /><arg name="paused" value="$(arg paused)"/><arg name="use_sim_time" value="$(arg use_sim_time)"/><arg name="headless" value="$(arg headless)"/></include><!-- Load the URDF into the ROS Parameter Server --><arg name="model" /><param name="changjing_description"  command="$(find xacro)/xacro.py '$(find velodyne_gazebo)/urdf/simulation_dae.urdf'" />
<node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"args="-urdf -model robot1 -param changjing_description -z 0.05"/> </launch>

注:spawn_model打开dae文件
3)使用roslaunch命令在gazebo中打开dae模型:

roslaunch oackage_name simulation.launch

此时就可以在gazebo中看到自己建的3d模型了,但是文件不要太大,可能会导致gazebo卡死闪退。
5. 有时候我们需要加载多个dae文件,比如一个场景模型,一个机器人模型,则需要重新建立一个launch文件将需要加载的多个dae文件对应的launch文件加载进来:

<?xml version="1.0"?><launch><include file="$(find velodyne_gazebo)/launch/simulation.launch">   </include><!-- Load the URDF into the ROS Parameter Server --><group ns="robot"><arg name="model" /><param name="robot_description" command="$(find xacro)/xacro.py '$(find velodyne_gazebo)/urdf/robot.urdf' ns:=robot" /><node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher"/><!-- Run a python script to the send a service call to gazebo_ros to spawn a URDF robot --><node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"args="-urdf -model robot2 -param robot_description -z 0.05"/> </group>
</launch>

使用加载环境模型,然后建立分组加载机器人,因为我的环境和机器人都是dae文件,均需要“urdf_spawner”这个节点打开,为了避免节点覆盖,所以建组加载,启动该launch文件可同时看到环境和机器人模型,如果发生节点覆盖,则只能加载一个模型。

gazebo中导入DAE文件相关推荐

  1. gazebo中导入sdf文件

    1.环境变量设置 将模型所在的文件夹(其中包含一个.sdf模型文件和一个.config配置文件)放到gazebo环境变量所在的目录下,例如下面的默认目录: ~/.gazebo/models 另外一种方 ...

  2. 向oracle中导入*.csv文件

    向oracle中导入*.csv文件 1.什么是*.csv,如何得到? 里面存放的是数据表.每行代表数据库表格的一行, 每行中,每两个数据中间由逗号","分割. *.csv可以通过& ...

  3. 关于通过DDMS向Android系统的模拟器的sdcard中导入mp3文件的问题

    在DDMS中,在mnt/sdcard中导入歌词文件, 点击右上角第二个图标导入文件.但是报错,Failed to push selection: Read-only file system. 解决方法 ...

  4. 如何向IPython Notebook中导入.py文件

    相关文章链接 如何向IPython Notebook中导入.py文件 如何将 ipynb 发布到 blog 中(html, markdown格式) Introducing IPython Notebo ...

  5. mysql中导入csv文件_怎么把csv文件导入mysql?

    将CSV文件导入mysql数据库的方法: (1)准备csv文件. 把数据集正确地保存为csv文件即可,保存后的文件名和路径为"D:/train.csv" (2)在数据库中新建一个用 ...

  6. PADS9.5—layout中导入.asc文件时遇到的问题

    一.学习总结 在Layout中导入.asc文件时遇到的问题: 当我们在PASD Layout中导入.asc文件时,提示我们当前设计处于默认层模式,而文件处于增加层模式,你不能导入文件时的解决方法. 1 ...

  7. 3D Slicer 中导入STL文件

    3D Slicer 中导入STL文件,模型不显示 两种方法: 1.点击"DATA" 获取 STL 文件路径 2. 直接将STL 文件拖拽到视图中. 文件不显示的原因是STL文件的路 ...

  8. linux mysql命令行导入_在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)...

    因导出sql文件 在你原来的网站服务商处利用phpmyadmin导出数据库为sql文件,这个步骤大家都会,不赘述. 上传sql文件 前面说过了,我们没有在云主机上安装ftp,怎么上传呢? 打开ftp客 ...

  9. vue中导入excel文件

    vue中导入excel文件 1.安装插件 npm install -S file-saver xlsxnpm install -D script-loader 2.在utils中创建excel文件夹放 ...

最新文章

  1. LeetCode实战:合并K个排序链表
  2. oracle 物理读,逻辑读的理解
  3. python3安装mysqlclient_Python3 安装mysqlclient错误处理(MAC版)
  4. .net中实现伪静态的学习小结
  5. iOS tableview简单动画
  6. 一路去**ddss第4天
  7. Docker教程小白实操入门(10)--如何删除一个镜像
  8. Silverlight之OOB模式下的一些事
  9. 【简约美女win7主题】_8.4
  10. Java 流行的工作流引擎
  11. CRMEB开源商城部署在腾讯云
  12. c语言200以内能被3和5整除的数,程式设计程式 求500以内能被3和5同时整除的所有数的和,c语言程式码写全一点,谢谢啦...
  13. 计算机基础阿春第十一讲,编程天才少年“顾神”,放弃清华保送,被麻省理工全额奖学金挖走...
  14. 风变编程课后习题答案
  15. android u盘加载_[转] android 通过usb读取 U盘
  16. crout分解计算例题_如何计算有理函数的不定积分
  17. 高等数学-线性代数:已知特征值,求解特征空间的特征向量
  18. 基于Jsp+Servlet的户籍管理系统(JavaWeb毕业设计、课程设计)
  19. 古诗词的直译和韵译有什么区别?看看就知道了
  20. Protobuf 介绍与实战30:google/protbuf/any.proto, api.proto, descriptor.proto,empty.proto 在什么位置

热门文章

  1. unittest pycharm test framework quit unexpectedly 解决 Empty suite问题
  2. php printer使用手册,go/printer
  3. 时间戳转成日期,解决日期1970年的问题
  4. 什么是drop-in item renderer
  5. 卸载高版本的labview的vision模块和VAS采集模块装低版本
  6. 调用Java API发送传真
  7. IDEA配置xml文件头报错:URI is not registered (Settings | Languages Frameworks | Schemas and DTDs) 亲测有效!!!
  8. 一个失败创业者的告白
  9. 单片机C语言的“进程调度轮询”
  10. Arangodb 条件查询