跳转至

隧道

测试

1.启动gazebo节点

roslaunch turtlebot3_gazebo turtlebot3_autorace_2020.launch

2.启动键盘控制节点,移动到隧道标志处

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
  • TB3移动到位置后,关闭键盘控制节点

3. 启动相机内标定

roslaunch turtlebot3_autorace_camera intrinsic_camera_calibration.launch

4.启动自动泊车单独任务

roslaunch turtlebot3_autorace_core turtlebot3_autorace_core.launch mission:=tunnel

5.设定decided_mode为2

rostopic pub -1 /core/decided_mode std_msgs/UInt8 "data: 2"

实现

流程:
1. 启动 tunnel_core_node_controller 和 tunnel_core_mode_decider 两个节点
2. 发布话题 /core/decided_mode ,值为2 
3. tunnel_core_node_controller 接收 /core/decided_mode 话题,开启巡线功能以及隧道标志检测
4. 检测到隧道标志之后,会发布话题 /detect/traffic_sign ,值为1
5. tunnel_core_mode_decider 接收 /detect/traffic_sign 话题,发布话题 /core/decided_mode,值为3
6. tunnel_core_node_controller 接收 /core/decided_mode 话题,进入tunnel功能
   tunnel功能分成四个阶段:searching_tunnel_sign  go_in_to_tunnel navigation             go_out_from_tunnel

6.1 searching_tunnel_sign
    开启 detect_tunnel 和 control_moving 节点,并发布话题 /detect/tunnel_order
    detect_tunnel接收话题  /detect/tunnel_order,经过直行、左转、直行三个阶段结束,并发布话题 /detect/tunnel_stamped,表示这个阶段结束,tunnel_core_node_controller 接收这个话题开启下个阶段操作
6.2 go_in_to_tunnel
    启动detect_tunnel 和control_tunnel节点,
6.3 navigation
6.4 go_out_from_tunnel
1.  detect_tunnel
    control_moving
2.  detect_tunnel
    turtlebot3_autorace_control_tunnel.launch
3.  camera
    detect_tunnel
    control_moving
4.  camera
    detect_lane
    detect_sign
    control_lane
5.  camera
    detect_lane
    detect_sign
    control_lane