12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/bin/bash
- set -u
- source /home/cicv/work/pji_desktop/config.sh
- if [ "$#" -ne 1 ]; then
- echo "Error: Incorrect number of arguments"
- echo "Usage: $0 MAP_BAG_PATH"
- exit 1
- fi
- MAP_BAG_PATH=$1
- MAP2GAZEBO_LOG_PATH="$SIMULATION_PATH/logs/run_map2gazebo.log"
- GAZEBO_WORLD_LOG_PATH="$SIMULATION_PATH/logs/gazebo_world.log"
- MAP_STL_PATH="$SIMULATION_PATH/catkin_map2gazebo/src/models/map/meshes/map.stl"
- MAP2GAZEBO_START_FLAG="map2gazebo running"
- GAZEBO_WORLD_END_FLAG="Exported STL"
- source activate simulation
- rosnode kill --all
- if [ -f "$MAP2GAZEBO_LOG_PATH" ]; then
- safe-rm "$MAP2GAZEBO_LOG_PATH"
- fi
- if [ -f "$MAP_STL_PATH" ]; then
- safe-rm "$MAP_STL_PATH"
- fi
- sleep 0.5
- command="cd $SIMULATION_PATH/catkin_map2gazebo && safe-rm -r build devel && catkin_make && source devel/setup.bash && roslaunch --screen map2gazebo map2gazebo.launch"
- nohup script -q -c bash -c "$command" > "$MAP2GAZEBO_LOG_PATH" 2>&1 &
- disown
- tail -F "$MAP2GAZEBO_LOG_PATH" | while read LINE; do
-
- if echo "$LINE" | grep -q "$MAP2GAZEBO_START_FLAG"; then
- echo "Service map2gazebo started."
- sleep 0.5
-
- rosbag play "$MAP_BAG_PATH"
- sleep 0.5
- fi
-
- if echo "$LINE" | grep -q "$GAZEBO_WORLD_END_FLAG"; then
-
-
- pkill -f "map2gazebo"
-
- pkill -f "gazebo"
- echo "Service map2gazebo stopped."
-
- command="cd $SIMULATION_PATH/catkin_map2gazebo && safe-rm -r build devel && catkin_make && source devel/setup.bash && roslaunch --screen map2gazebo gazebo_world.launch"
- nohup script -q -c bash -c "$command" > "$GAZEBO_WORLD_LOG_PATH" 2>&1 &
- disown
- fi
- done
|