为什么机器人不能在RVIZ内移动? [英] Why the robot doesn't move in RVIZ?

查看:16
本文介绍了为什么机器人不能在RVIZ内移动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在正在与真正的机器人合作,它是乌龟汉堡。如下面的rqt_graph所示,我已经运行了我的定制包,即我正在添加要发布到gmapping包的ann3_publisher节点,并在真实的机器人中运行。

但当我移动机器人时,rviz应用程序中的机器人似乎根本没有移动。地图和机器人在那里,如下图所示,但机器人没有移动:

我尝试在终端上运行rosrun rviz rviz并逐个添加,出现如下图所示的警告消息

当我运行公共包roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping时,它起作用了,我没有这个问题。我可以知道为什么和如何解决这个问题吗?

这是我的自定义turtlebot3_slam.unch文件,用于订阅/can_new3主题。

<launch>
  <!-- Arguments -->
  <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/>
  <arg name="configuration_basename" default="turtlebot3_lds_2d.lua"/>
  <arg name="set_base_frame" default="base_footprint"/>
  <arg name="set_odom_frame" default="odom"/>
  <arg name="set_map_frame"  default="map"/>
  <arg name="open_rviz" default="true"/>

  <!-- TurtleBot3 -->
  <include file="$(find turtlebot3_bringup)/launch/turtlebot3_remote.launch">
    <arg name="model" value="$(arg model)" />
  </include>

  <!-- Gmapping -->
  <node pkg="gmapping" type="slam_gmapping" name="turtlebot3_slam_gmapping" output="screen">
    <param name="base_frame" value="$(arg set_base_frame)"/>
    <param name="odom_frame" value="$(arg set_odom_frame)"/>
    <param name="map_frame"  value="$(arg set_map_frame)"/>
    <rosparam command="load" file="$(find turtlebot3_slam)/config/gmapping_params.yaml" />
    <remap from="/scan" to="/scan_new3"/>
  </node>

  <!-- rviz -->
  <group if="$(arg open_rviz)"> 
    <node pkg="rviz" type="rviz" name="rviz" required="true"
          args="-d $(find turtlebot3_slam)/rviz/turtlebot3_scan3.rviz"/>
  </group>
</launch>
下面是真实机器人的tf_tree。另一个信息是当我在露台模拟中运行时。它起作用了,机器人就会移动。但当我在现实世界中运行时,机器人在RVIZ应用程序中不会移动。

推荐答案

我得到了答案。这是因为机器人的传感器读到它周围有障碍物,但没有。你可以在第二张图上看到,传感器检测到圆形(绿色)的墙,并在它周围建造墙。因此,机器人不能在rviz中移动。当我消除该读数时,机器人可以像往常一样在rviz中移动

这篇关于为什么机器人不能在RVIZ内移动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆