ros - 为什么 gmapping 包不在真实机器人的多个机器人中运行(不是模拟)?
问题描述
我已经从机器人 tb3_0 的树莓派运行这个命令来运行/tb3_0/turtlebot3_core
节点
pi@raspberrypi:~ $ ROS_NAMESPACE=tb3_0 roslaunch turtlebot3_bringup turtlebot3_robot.launch
然后我gmapping
在 pc 终端运行 tb3_0 机器人的包
amirul@nmy-lab:~$ ROS_NAMESPACE=tb3_0 roslaunch turtlebot3_slam turtlebot3_gmapping.launch set_base_frame:=tb3_0/base_footprint set_odom_frame:=tb3_0/odom set_map_frame:=tb3_0/map
但是 gmapping 包显示警告消息
[警告] [1635496431.864557793]:MessageFilter [target=odom]:到目前为止已删除 100.00% 的消息。请将 [ros.gmapping.message_notifier] rosconsole 记录器转为 DEBUG 以获取更多信息。
我认为我没有将节点发布robot_state_publisher
到/tb3_0/gmapping
节点。如何robot_state_publisher
在 tb3_0 ROSNAMESPACE 中运行节点?谢谢!
解决方案
这取决于您的启动方式robot_state_publisher
。如果使用启动文件,您可以使用该ns
属性将命名空间应用于节点。但是,如果要发布命名空间转换,则应使用tf_prefix
参数。举个例子
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher">
<param name="publish_frequency" value="50.0"/>
<param name="tf_prefix" value="tb3_0" />
</node>
推荐阅读
- html - 网页抓取:HTML 源代码的问题
- php - Codeigniter - base_url 是否可以放入 $this->load->view?
- go - 如果没有类似 IDE 的特性,我们怎么知道包级变量是在哪里定义的?
- python - 在python中返回之前调用函数
- delphi - Delphi 7 和 Indy 9.0 连接 SSL 时出错
- c# - 如何在 ASP.Net 的同一页面上选择和提交数据并显示来自另一个表的数据
- angular - 在 .net core 3.1 中,实时重新加载似乎不再适用于 Angular
- css - 为什么我的页面的 css 存在/特异性与导入的 css 库(hexagonjs)表现不同
- java - 运行 Android Studio Preferences 活动模板的 Android 异常
- c# - 视觉代码不显示任何文本,有什么建议吗?