小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
建图,rvz2不显示机器人
-
按教程10.5的方法开始建图
步骤1:按上1章节 fishbot_description gazebo.launch.py 的代码,运行可以在gazebo中显示机器人;
步骤2:运行本章节的代码,显示效果如下,无法显示机器人,如下图
问题:为啥没机器人显示,按教材把topic加上也是;
翻阅了下贴吧里的没找到跟我相同的问题,所以才发个帖子来麻烦你,谢谢
我再截图下gazebo的显示效果
代码是跟教程中的一摸一样的,运行起来没见报错,已退出了miniconda -
@小鱼 谢谢,机器人出来了,可能是我昨晚两个vscode编译搞混了;
但仍然有点疑问,效果跟您的教程截图有点不一样呢,而且pointcloud2有个错误,如下图
木有看到地图出来哈,更不知道下一步如何建图
频繁打扰你真不好意思,非常感谢回复 -
@154453683 另外还有一个疑问:
上一节中有一个 dispay_rviz2.alunch中启动rviz2的教程,rviz的RobotModel能选是因为代码中发布了一个机器人状态的话题【robot_state_publisher】;
但本节的代码中没有看到发布,只是启动了gazebo,再启动rviz,RobotModel肯定就没东西选了。。不知道我理解的对不对
-
@154453683 你的理解听正确的,所以要想显示要加上robot_state_publisher
-
@小鱼 本人新手,不知道咋解决呢
cartographer.launch.py代码是教程上复制的,不需要调整把?def generate_launch_description(): # 定位到功能包的地址 pkg_share = FindPackageShare(package='fishbot_cartographer').find('fishbot_cartographer') #=====================运行节点需要的配置======================================================================= # 是否使用仿真时间,我们用gazebo,这里设置成true use_sim_time = LaunchConfiguration('use_sim_time', default='true') # 地图的分辨率 resolution = LaunchConfiguration('resolution', default='0.05') # 地图的发布周期 publish_period_sec = LaunchConfiguration('publish_period_sec', default='1.0') # 配置文件夹路径 configuration_directory = LaunchConfiguration('configuration_directory',default= os.path.join(pkg_share, 'config') ) # 配置文件 configuration_basename = LaunchConfiguration('configuration_basename', default='fishbot_2d.lua') rviz_config_dir = os.path.join(pkg_share, 'config')+"/cartographer.rviz" print(f"rviz config in {rviz_config_dir}") #=====================声明三个节点,cartographer/occupancy_grid_node/rviz_node================================= cartographer_node = Node( package='cartographer_ros', executable='cartographer_node', name='cartographer_node', output='screen', parameters=[{'use_sim_time': use_sim_time}], arguments=['-configuration_directory', configuration_directory, '-configuration_basename', configuration_basename]) cartographer_occupancy_grid_node = Node( package='cartographer_ros', executable='cartographer_occupancy_grid_node', name='cartographer_occupancy_grid_node', output='screen', parameters=[{'use_sim_time': use_sim_time}], arguments=['-resolution', resolution, '-publish_period_sec', publish_period_sec]) rviz_node = Node( package='rviz2', executable='rviz2', name='rviz2', arguments=['-d', rviz_config_dir], parameters=[{'use_sim_time': use_sim_time}], output='screen') #===============================================定义启动文件======================================================== ld = LaunchDescription() ld.add_action(cartographer_node) ld.add_action(cartographer_occupancy_grid_node) ld.add_action(rviz_node) return ld
还是需要改造gazebo.launch.py代码?
def generate_launch_description(): robot_name_in_model = 'fishbot' package_name = 'fishbot_description' urdf_name = "fishbot_gazebo.urdf" ld = LaunchDescription() pkg_share = FindPackageShare(package=package_name).find(package_name) urdf_model_path = os.path.join(pkg_share, f'urdf/{urdf_name}') # Start Gazebo server start_gazebo_cmd = ExecuteProcess( cmd=['gazebo', '--verbose','-s', 'libgazebo_ros_init.so', '-s', 'libgazebo_ros_factory.so'], output='screen') # Launch the robot spawn_entity_cmd = Node( package='gazebo_ros', executable='spawn_entity.py', arguments=['-entity', robot_name_in_model, '-file', urdf_model_path ], output='screen') #加上这句吗?结果还是一样 robot_state_publisher_node = Node( package='robot_state_publisher', executable='robot_state_publisher', arguments=[urdf_model_path] ) ld.add_action(robot_state_publisher_node) ld.add_action(start_gazebo_cmd) ld.add_action(spawn_entity_cmd) return ld
帮忙知道下,显示不出机器人
-
@154453683 在 建图,rvz2不显示机器人 中说:
#加上这句吗?结果还是一样 robot_state_publisher_node = Node( package='robot_state_publisher', executable='robot_state_publisher', arguments=[urdf_model_path] )
是要加上这句,不过加上后要重新编译,另外贴下终端日志和rqt——graphe 图看看
-
@小鱼 谢谢,机器人出来了,可能是我昨晚两个vscode编译搞混了;
但仍然有点疑问,效果跟您的教程截图有点不一样呢,而且pointcloud2有个错误,如下图
木有看到地图出来哈,更不知道下一步如何建图
频繁打扰你真不好意思,非常感谢回复 -
@154453683 应该没有pointcloud2的发布,所以报错,直接选择PointCloud2然后点击下方的Remove移除后Ctrl+S保存即可
-
-
@小鱼 关键是我的效果只有机器人,不跟教程一样显示地图呢
是不是教程中缺少了代码?
-
@154453683 地图需要启动建图相关程序,我在不知啊到你在前后干了啥,所以不清楚哪里的问题
@小鱼 在 提问前必看!一定要看!必须看一下! 中说:
提问时一定要提供尽可能多的信息(系统版本,ROS版本,前后操作,终端日志),包括你的目的,比如你其实想装装某个库遇到问题,不要只说这个问题,因为可能有更好的替代方案