run_simulation.sh 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #!/bin/bash
  2. # 检查到未定义的变量则停止执行并报错
  3. set -u
  4. # 检查参数数量
  5. if [ "$#" -ne 1 ]; then
  6. echo "Error: Incorrect number of arguments"
  7. echo "Usage: $0 BUILD_MAP_NAME"
  8. exit 1
  9. fi
  10. BUILD_MAP_NAME=$1
  11. SIMULATION_PATH="/home/cicv/work/pji_desktop/simulation"
  12. # 发布自定义起点 - gazebo
  13. command="cd $SIMULATION_PATH/catkin_ws && catkin_make && source devel/setup.bash && rosrun goal_publish initialPose 1 1 0 0 0 0"
  14. # 清除环境
  15. pkill -f "goal_publish/initialPose"
  16. sleep 1
  17. echo 'bash -c '\""$command"\"
  18. nohup bash -c "$command" >/dev/null 2>&1 &
  19. sleep 5
  20. # 发布自定义起点 - rviz
  21. command="cd $SIMULATION_PATH/catkin_ws && catkin_make && source devel/setup.bash && rosrun goal_publish initialPose_rviz 1 1 0 0 0 0"
  22. # 清除环境
  23. pkill -f "goal_publish/initialPose_rviz"
  24. sleep 1
  25. echo 'bash -c '\""$command"\"
  26. nohup bash -c "$command" >/dev/null 2>&1 &
  27. # 这里必须设置不少于5s的延迟时间,否则rviz中的起点设置会出现问题
  28. sleep 5
  29. # 动态加载障碍物
  30. command="cd $SIMULATION_PATH/pji_work && source devel/setup.bash && rosrun test demo $SIMULATION_PATH/merge_obstacles_data/merged_obstacles_new_0517_1.csv; exec bash"
  31. gnome-terminal --tab -e 'bash -c '\""$command"\"
  32. sleep 0.5
  33. echo 'bash -c '"$command"
  34. # 发布自定义终点 - 1
  35. command="cd $SIMULATION_PATH/catkin_ws && catkin_make && source devel/setup.bash && rosrun goal_publish goal 3.26 4.65 0.00537 0 0 0"
  36. # 清除环境
  37. pkill -f "goal_publish/goal"
  38. pkill -f "goal_publish/pub_node"
  39. sleep 1
  40. # 开始录包
  41. nohup rosbag record /imu /odom /obstacle_detection /sys_info -o "$SIMULATION_PATH"/evaluation_bag/example_0821_1.bag >/dev/null 2>&1 &
  42. echo 'bash -c '\""$command"\"
  43. nohup bash -c "$command" >/dev/null 2>&1 &
  44. sleep 10
  45. # 结束录包
  46. pkill -f "rosbag record"
  47. # 发布自定义终点 - 2
  48. command="cd $SIMULATION_PATH/catkin_ws && catkin_make && source devel/setup.bash && rosrun goal_publish goal 2.47 -1.17 0.00304 0 0 0"
  49. # 清除环境
  50. pkill -f "goal_publish/goal"
  51. pkill -f "goal_publish/pub_node"
  52. sleep 1
  53. # 开始录包
  54. nohup rosbag record /imu /odom /obstacle_detection /sys_info -o "$SIMULATION_PATH"/evaluation_bag/example_0821_2.bag >/dev/null 2>&1 &
  55. echo 'bash -c '\""$command"\"
  56. nohup bash -c "$command" >/dev/null 2>&1 &
  57. sleep 15
  58. # 结束录包
  59. pkill -f "rosbag record"
  60. # 发布自定义终点 - 3
  61. command="cd $SIMULATION_PATH/catkin_ws && catkin_make && source devel/setup.bash && rosrun goal_publish goal 8.51 3.32 0.00705 0 0 0"
  62. # 清除环境
  63. pkill -f "goal_publish/goal"
  64. pkill -f "goal_publish/pub_node"
  65. sleep 1
  66. echo 'bash -c '\""$command"\"
  67. # 开始录包
  68. nohup rosbag record /imu /odom /obstacle_detection /sys_info -o "$SIMULATION_PATH"/evaluation_bag/example_0821_3.bag >/dev/null 2>&1 &
  69. nohup bash -c "$command" >/dev/null 2>&1 &
  70. sleep 20
  71. # 结束录包
  72. pkill -f "rosbag record"
  73. # 发布默认终点并录包
  74. command="cd $SIMULATION_PATH/catkin_ws && source devel/setup.bash && rosrun goal_publish pub_node $SIMULATION_PATH/data/build_map_bag/$BUILD_MAP_NAME $SIMULATION_PATH/evaluation_bag/example_0821_4.bag; exec bash"
  75. # 清除环境
  76. pkill -f "goal_publish/goal" # 下发自定义/默认终点前必须先清除goal,不能只清除pubnode
  77. pkill -f "goal_publish/pub_node"
  78. sleep 1
  79. echo 'bash -c '\""$command"\"
  80. nohup bash -c "$command" >/dev/null 2>&1 &
  81. sleep 10
  82. # 结束录包
  83. pkill -f "goal_publish/pub_node"