|
发表于 2020-8-27 12:11:52
4493 浏览 6 回复
gazebo .world文件(sdf)可以随机生成障碍物位置吗?
如图所示,我想在gazebo中验证slam算法,图中newbox是场景中的一个障碍物,它的坐标在此是通过坐标(如1.5, 0.6, 0.25)直接给出。但是我想它可以每次自动生成一个随机坐标去替代,而不是通过设定一个固定的值,我该如何修改这一段代码? 网上有些教程中说xml文件无法生成随机数,我想应该还会有其他曲线救国的方法去解决这类问题。希望各位大佬能够帮我解决这个问题!!!大恩不言谢!!!
eason已获得悬赏 5 阿木币最佳答案
sdf中Population使用了解一下,http://gazebosim.org/tutorials?tut=model_population&cat=build_world
你要加载的障碍物model,model的初始位置pose,使用box的size作为模型的活动范围,model_count模型的数量,容 ...
|
扫一扫浏览分享
|
|
|
|
|
|
|
发表于 2020-8-27 15:55:23
|
|
|
|
|
|
|
发表于 2020-8-27 17:30:53
XML文件可以获取函数么。。。没法写逻辑判断语句吧 |
|
|
|
|
|
|
|
楼主|
发表于 2020-8-28 08:42:12
是的,直接在xml里面改好像不太行,所以我想问问有没有其他的方法 |
|
|
|
|
|
|
|
楼主|
发表于 2020-8-28 08:50:34
您好,我刚刚这么试了下,我先roslaunch环境的world文件打开环境后,再rosrun这个修改位置的节点。不知道为啥,有时候需要重复rosrun好几次才能成功修改位置,这是什么原因呀?是不是gazebo同时在从world文件和这个节点里面获得障碍物的位置信息,导致冲突了?如果我把发送频率调大(调到100HZ),并且删除发送一秒的条件(就是让这个节点一直运行着),仿佛可以解决这个问题,但是感觉一直运行着这个节点有点别扭,我还可以怎么解决这个问题呢?
|
|
|
|
|
|
|
|
发表于 2020-8-28 13:19:23
|
|
|
|
|
|
|
发表于 2020-8-31 10:24:38
|
|
|
|
|
|
|