gazebo中导入DAE文件
- 准备DAE文件,我是在网上找到了一个dae文件进行测试,也可以用3DMAX导出DAE文件。
- 在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>
- 进入文件所在目录,在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文件相关推荐
- gazebo中导入sdf文件
1.环境变量设置 将模型所在的文件夹(其中包含一个.sdf模型文件和一个.config配置文件)放到gazebo环境变量所在的目录下,例如下面的默认目录: ~/.gazebo/models 另外一种方 ...
- 向oracle中导入*.csv文件
向oracle中导入*.csv文件 1.什么是*.csv,如何得到? 里面存放的是数据表.每行代表数据库表格的一行, 每行中,每两个数据中间由逗号","分割. *.csv可以通过& ...
- 关于通过DDMS向Android系统的模拟器的sdcard中导入mp3文件的问题
在DDMS中,在mnt/sdcard中导入歌词文件, 点击右上角第二个图标导入文件.但是报错,Failed to push selection: Read-only file system. 解决方法 ...
- 如何向IPython Notebook中导入.py文件
相关文章链接 如何向IPython Notebook中导入.py文件 如何将 ipynb 发布到 blog 中(html, markdown格式) Introducing IPython Notebo ...
- mysql中导入csv文件_怎么把csv文件导入mysql?
将CSV文件导入mysql数据库的方法: (1)准备csv文件. 把数据集正确地保存为csv文件即可,保存后的文件名和路径为"D:/train.csv" (2)在数据库中新建一个用 ...
- PADS9.5—layout中导入.asc文件时遇到的问题
一.学习总结 在Layout中导入.asc文件时遇到的问题: 当我们在PASD Layout中导入.asc文件时,提示我们当前设计处于默认层模式,而文件处于增加层模式,你不能导入文件时的解决方法. 1 ...
- 3D Slicer 中导入STL文件
3D Slicer 中导入STL文件,模型不显示 两种方法: 1.点击"DATA" 获取 STL 文件路径 2. 直接将STL 文件拖拽到视图中. 文件不显示的原因是STL文件的路 ...
- linux mysql命令行导入_在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)...
因导出sql文件 在你原来的网站服务商处利用phpmyadmin导出数据库为sql文件,这个步骤大家都会,不赘述. 上传sql文件 前面说过了,我们没有在云主机上安装ftp,怎么上传呢? 打开ftp客 ...
- vue中导入excel文件
vue中导入excel文件 1.安装插件 npm install -S file-saver xlsxnpm install -D script-loader 2.在utils中创建excel文件夹放 ...
最新文章
- LeetCode实战:合并K个排序链表
- oracle 物理读,逻辑读的理解
- python3安装mysqlclient_Python3 安装mysqlclient错误处理(MAC版)
- .net中实现伪静态的学习小结
- iOS tableview简单动画
- 一路去**ddss第4天
- Docker教程小白实操入门(10)--如何删除一个镜像
- Silverlight之OOB模式下的一些事
- 【简约美女win7主题】_8.4
- Java 流行的工作流引擎
- CRMEB开源商城部署在腾讯云
- c语言200以内能被3和5整除的数,程式设计程式 求500以内能被3和5同时整除的所有数的和,c语言程式码写全一点,谢谢啦...
- 计算机基础阿春第十一讲,编程天才少年“顾神”,放弃清华保送,被麻省理工全额奖学金挖走...
- 风变编程课后习题答案
- android u盘加载_[转] android 通过usb读取 U盘
- crout分解计算例题_如何计算有理函数的不定积分
- 高等数学-线性代数:已知特征值,求解特征空间的特征向量
- 基于Jsp+Servlet的户籍管理系统(JavaWeb毕业设计、课程设计)
- 古诗词的直译和韵译有什么区别?看看就知道了
- Protobuf 介绍与实战30:google/protbuf/any.proto, api.proto, descriptor.proto,empty.proto 在什么位置
热门文章
- unittest pycharm test framework quit unexpectedly 解决 Empty suite问题
- php printer使用手册,go/printer
- 时间戳转成日期,解决日期1970年的问题
- 什么是drop-in item renderer
- 卸载高版本的labview的vision模块和VAS采集模块装低版本
- 调用Java API发送传真
- IDEA配置xml文件头报错:URI is not registered (Settings | Languages Frameworks | Schemas and DTDs) 亲测有效!!!
- 一个失败创业者的告白
- 单片机C语言的“进程调度轮询”
- Arangodb 条件查询