- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种将非二进制占用网格映射到全局成本 map 的方法。占用网格的值 -1 表示未定义,0 表示非碰撞,1-100 表示碰撞区域。这里有一个类似的问题,给定的答案没有提供具体的解决方案:
https://answers.ros.org/question/335530/what-range-of-costs-does-ros-navigation-support/
为了更好地了解:
我正在使用 ROS Melodic。
我的占用网格如下所示: Image of Occupancy grid
我的 global_costmap_params.yaml 看起来像这样:
global_costmap:
plugins:
- {name: static_layer, type: "costmap_2d::StaticLayer"}
- {name: inflation_layer, type: "costmap_2d::InflationLayer"}
global_frame: base_link
map_topic: "prediction_occ_grid"
update_frequency: 10.0
publish_frequency: 10.0
rolling_window: true
always_send_full_costmap: true
height: 26.9
width: 36.4
请注意,我是代价 map 的初学者,所以这可能根本没有意义!
使用给定的 global_costmap_params.yaml 提供以下成本图:Image of the resulting global costmap
如您所见,代价 map “忽略”了碰撞区域并以与非碰撞路径区域相同的代价映射它们。有什么方法可以修改 costmap_params 以使其正确映射占用网格?
提前致谢!
最佳答案
最具体地说,我会查看插件的成本图参数,主要是 static_map
和 obstacles
插件。也许你想要 staticmap
参数trinary_costmap
确实,要在成本图中具有完整的值。 obstacles
中的那些使用多层或输入数据可能会改变您期望看到的内容。
我还会看看 Clearpath 的 Husky husky_navigation包装是一个很好的例子,例如。 move_base.launch文件。所有参数都写在config/
目录,并由 rosparam
加载在 move_base
内节点。一些细节:如果你正在做一个与机器人一起移动的本地代价 map ,你不想跟踪空白空间,你想要一个滚动窗口,并使用障碍层而不是静态层;对于全局,您将跟踪所有空间,但不会相对于机器人移动窗口,并且您将使用静态 map 。
我认为您遇到的问题之一是数据流。 Ros(和大多数人,因为它)如何倾斜是从一开始就为 map_server
加载初始/静态 map ( amcl
)和 move_base
, 用 LaserScan
更新两者s &/或 PointCloud
s,然后你只剩下 amcl
帧 tfs 和局部位置估计的输出,并将其输入 move_base
节点,你只需要 goal
.使用 occ_grid map 消息更新 amcl
,例如,您必须更改 use_map_topic
参数。
编辑:万一 map_server
是您真正需要的,这是我从 husky_nav 的 amcl_demo.launch
中提取的示例用法:
<!-- Run the map server -->
<arg name="map_file" default="$(find husky_navigation)/maps/playpen_map.yaml"/>
<node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" />
关于navigation - 如何将具有多个值的非二进制占用网格映射到 ROS 中的成本图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62069112/
我正在实现一个基于 ROS 的机器人系统。我有不同的节点,每秒发送多次数据。但是,我不需要那个。我只想在机器人处于新位置时发送它的状态。您建议使用哪种 ROS 技术? 最佳答案 根据您的要求,您可以使
我希望我的 ROS 包中的特定节点在 DEBUG 详细级别显示输出,而其他节点在 INFO 级别显示。我知道 rosconsole configuration file ,并且能够为包设置详细程度:
我正在使用 ros indigo。当我做映射然后通过以下方式保存它: map_server map_server -f 'location' 它给了我一个警告... Using deprecated
我正在使用 ros indigo。当我做映射然后通过以下方式保存它: map_server map_server -f 'location' 它给了我一个警告... Using deprecated
我有一个用 Python 编写的 ROS 节点,它捕获消息并将它们写入磁盘(例如使用 pickle)。我想稍后在 ROS 之外的另一个 Python 脚本中使用这些文件,但我需要导入消息类。 这可能吗
ROS 和网络新手。在这里需要一些帮助来理解我应该采取的最佳方法。我正在尝试将 Ros 消息从 ROS PC 发送到另一台非 ROS PC。我研究了几种方法可以做到这一点。 在非 ROS 机器上安装
我可以在ROS的catkin工作区中编译安装ROS包。如何将 catkin 工作区中的包导出到 .deb 文件,以便我可以在其他机器上安装和使用它? 我的 ROS 版本是 ROS Indigo,操作系
我一直在尝试安装 ROS 旋律。我需要它来运行一些启动文件。目前,当我通过运行以下命令检查 ros 版本(在运行 Ubuntu 20.04 的树莓派 4 上)时: rosversion -d 它输出:
我正在尝试使用以下公式将 Twist 转换为左右轮的速度: float speed_wish_right = (cmd_vel.angle*WHEEL_DIST)/2 + cmd_vel.speed;
我已经在 Ubuntu 18.04 上安装了带有 ROS melodic 的 Gazebo 9。我不断遇到以下问题: 启动 Gazebo 向世界添加一些对象 文件 -> 另存为... 程序卡住,保存窗
我使用什么程序来使用 ROS 框架进行编程,我可以使用 Visual Studio 吗? 我是 ROS 的新手,任何教程或教程程序将不胜感激。 谢谢。 最佳答案 用于 ROS 开发的最常见 IDE 是
我的问题是如何将一个值从一个订阅者的回调函数传递给另一个订阅者。 这有意义吗? import rospy from sensor_msgs.msg import LaserScan, Int32 fr
我正在关注有关如何创建 ROS 自定义消息的“WS Newman”教程。编译时出现以下错误“消息/服务'example_msg/Num'的依赖关系已更改。请重新运行cmake” Num.msg 有 H
我想在catkin工作区之外创建一个ROS发布者节点。可以创建吗? 最佳答案 当然可以。像对待任何其他 cpp 库或 python 包一样对待 ROS。 在Python中,你必须保持PYTHONPAT
PointCloud2的内容在ROS中是什么意思? fields.offset? fields.datatype? fields.count? point_step? row_step? 它的 d
PointCloud2的内容在ROS中是什么意思? fields.offset? fields.datatype? fields.count? point_step? row_step? 它的 d
我实现了一个依赖于其他包的ros包。 这些包依赖于更多的包等等...... 在我的包中构建和运行节点时,如何找出实际使用了哪些包? (除了手动查看所有 package.xml 文件,因为有多种情况,其
我正在做一个关于 ROS 的类(class)项目,并且被困在相当简单的任务上。 我的机器人模型有一个激光扫描仪,我在凉亭中使用我的机器人模型生成了一个包文件 我被要求像在 SLAM 中一样生成占用网格
在做 roslaunch .launch 时我希望在该文件中启动的所有节点仅在它们尚未运行时启动。我该怎么做呢?如果不可能,是否至少可以为每个节点单独执行此操作?如果有人有想法,那么如果您将该代码添
有没有办法获得从Realsense获得的点云中的点到深度图中的像素的映射?点云是从深度图中获得的,但是没有有效深度数据的像素被排除在外。 Realsense API 仅提供将点映射到 RGB 像素的例
我是一名优秀的程序员,十分优秀!