隧道
测试
1.启动gazebo节点
roslaunch turtlebot3_gazebo turtlebot3_autorace_2020.launch
2.启动键盘控制节点,移动到隧道标志处
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
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