引入步骤
第一步:include引入模型 并说明位置pose
第二步:用joint固定传感器模型和飞机模型
关于include引入的疑问
一、sdf结构是什么,model和其关系是?
<sdf>
是最外层的标签,定义了整个SDFormat文件。
<world>
是 <sdf>
的子级标签,定义了一个仿真世界。
<model>
是 <world>
的子级标签 定义了仿真世界中的一个模型。
sdf中可以有多个world,多个world下有多个不同的model,但gazebo只能同时加载一个world,于是多个world下不同的model不能共存
sdf中也可以没有world,这样sdf就成为model(不一定只有一个model)的直接父级,这些model可以加入到gazebo默认世界中,也能加入到指定世界,于是就说它就是一个模型sdf
二、sdf中引入的潜规则
- world可以引入model
- model可以引入model
- world不能引入world
- 在一个sdf中,world1引入a、b模型,world2引入c、d模型,于是ab模型和cd模型永远不会共存
三、model内引入model和model外引入model有什么区别?
两者都可以达到相同的效果,只是组织方式不同
比如飞机上添加传感器,都是通过定义一个 <joint> 来将传感器模型的某个链接(link)固定到父级飞机模型的某个链接上。只要 <joint> 正确定义,无论是哪种引入方式,最终的仿真效果都是一样的。
即无论我在model内还是model外添加,只要我用一个joint固定子级传感器的link和父级飞机模型的link,最后传感器都会被视为飞机模型的一部分,并且会随着飞机模型一起移动。
model内引入看重整体性和重复性
model外引入看重独立性和平等性