Home » Turtlebot3自动驾驶教程 » Turtlebot3自动驾驶入门教程-通过隧道

Turtlebot3自动驾驶入门教程-通过隧道

Turtlebot3自动驾驶入门教程-通过隧道

说明:

  • 介绍如何实现通过隧道以及隧道的相关设置

制作地图

  • 首先要确定机器人在整个自动驾驶流程的起点位置,因为机器人是基于里程计的信息来制作地图

  • 其次是确定隧道的所在位置,隧道可以用木板围起来,只留下出口和入口

  • 测试搭时建的示例场景

请输入图片描述

  • 接下来是通过slam来制作地图

  • 建图流程:参考链接

注意

  • 机器人需要从起点位置通过键盘控制移动到隧道的中心位置,再启动slam程序,尽量不要扫描到太多隧道外围的地图
  • 隧道入口是通过里程计反馈的坐标来确定,所以要确保机器人是从起点位置出发且出发时,里程计的坐标应该处于原点

相关设置

  • [Remote PC] 将保存好的地图复制到turtlebot3_autorace/turtlebot3_autorace_control/maps文件夹下且分别修改文件名为tunnel.yamltunnel.pgm,同时将tunnel.yaml里面的image路径修改为image: tunnel.pgm

  • [Remote PC] 更改turtlebot3_autorace/turtlebot3_autorace_detect/nodes/detect_tunnel文件夹下detect_tunnel.py的fnPubGoalPose函数里指定出口的位置及方向

def fnPubGoalPose(self):
    goalPoseStamped = PoseStamped()

    goalPoseStamped.header.frame_id = "map"
    goalPoseStamped.header.stamp = rospy.Time.now()

    goalPoseStamped.pose.position.x = 0.15
    goalPoseStamped.pose.position.y = -1.76
    goalPoseStamped.pose.position.z = 0.0

    goalPoseStamped.pose.orientation.x = 0.0
    goalPoseStamped.pose.orientation.y = 0.0
    goalPoseStamped.pose.orientation.z = 0.0
    goalPoseStamped.pose.orientation.w = 1.0
  • 出口的位置及方向的获取可以通过使用已经建好的地图来进行导航,同时监听topic:/move_base/current_goal,当在导航中指定目标时,监听的终端就会显示相应的坐标和方向

隧道测试

但若导航时出错,需要关闭树莓派后重启机器人,确保机器人在起点出发时,里程计信息已重置

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: turtlebot3自动驾驶入门教程