123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #!/bin/bash
- # 检查到未定义的变量则停止执行并报错
- set -u
- # 检查参数数量
- if [ "$#" -ne 5 ]; then
- echo "Error: Incorrect number of arguments"
- echo "Usage: $0 OBSTACLE_FLAG DEFAULT_START_FLAG DEFAULT_END_FLAG START_POINT END_POINT"
- exit 1
- fi
- OBSTACLE_FLAG=$1
- DEFAULT_START_FLAG=$2
- DEFAULT_END_FLAG=$3
- START_POINT=$(echo "$4" | tr ',' ' ')
- END_POINT=$(echo "$5" | tr ',' ' ')
- BUILD_MAP_NAME="build_map.bag"
- MAP_BAG_NAME="origin_map.bag"
- SIMULATION_PATH="/home/cicv/work/pji_desktop/simulation"
- # 激活conda环境
- source activate simulation
- # 起点设置
- if [ "$DEFAULT_START_FLAG" == "true" ]; then
- # 默认起点
- echo "Use default start point"
- # /home/cicv/work/pji_desktop/simulation/data/build_map_bag/build_map.bag \
- # # 默认起点配置
- # python "$SIMULATION_PATH"/catkin_ws/src/goal_publish/script/send_initial_pos_0521.py \
- # "$SIMULATION_PATH"/data/map_bag/"$MAP_BAG_NAME" \
- # "$SIMULATION_PATH"/catkin_ws/src/SimulationEnvs/launch/env_node.launch \
- # "$SIMULATION_PATH"/catkin_ws/src/Navigation/launch/amcl.launch
- # sleep 1
- elif [ "$DEFAULT_START_FLAG" == "false" ]; then
- # 自定义起点
- echo "Setting start point: $START_POINT"
- ## 发布自定义起点 - gazebo
- command="cd $SIMULATION_PATH/catkin_ws && catkin_make && source devel/setup.bash && rosrun goal_publish initialPose $START_POINT"
- ### 清除环境
- pkill -f "goal_publish/initialPose"
- sleep 1
- echo 'bash -c '\""$command"\"
- nohup bash -c "$command" >/dev/null 2>&1 &
- sleep 1
- ## 发布自定义起点 - rviz
- command="cd $SIMULATION_PATH/catkin_ws && catkin_make && source devel/setup.bash && rosrun goal_publish initialPose_rviz $START_POINT"
- ### 清除环境
- pkill -f "goal_publish/initialPose_rviz"
- sleep 1
- echo 'bash -c '\""$command"\"
- nohup bash -c "$command" >/dev/null 2>&1 &
- ### 这里必须设置不少于5s的延迟时间,否则rviz中的起点设置会出现问题
- sleep 5
- echo "Start point: $START_POINT has been set"
- fi
- # 终点设置
- if [ "$DEFAULT_END_FLAG" == "true" ]; then
- # 默认终点
- echo "Use default end point"
- ## 发布默认终点
- # 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"
- command="cd $SIMULATION_PATH/catkin_ws && rm -r build devel && catkin_make && source devel/setup.bash && rosrun goal_publish pub_node $SIMULATION_PATH/data/map_bag/$MAP_BAG_NAME $SIMULATION_PATH/evaluation_bag/example_0821_4.bag"
- ## 录包
- ### 激活conda环境
- # source activate simulation
- # nohup python "$SIMULATION_PATH"/rosbag_record.py "$SIMULATION_PATH"/data/record_bag/test.bag >/dev/null 2>&1 &
- ## 清除环境
- pkill -f "goal_publish/goal" # 下发自定义/默认终点前必须先清除goal,不能只清除pub_node
- pkill -f "goal_publish/pub_node"
- pkill -f "rosbag_record"
- sleep 1
- echo 'bash -c '\""$command"\"
- nohup python "$SIMULATION_PATH"/rosbag_record.py "$SIMULATION_PATH"/data/record_bag/test.bag >record_bag.log 2>&1 &
- ## 设置终点并执行
- nohup bash -c "$command" >/dev/null 2>&1 &
- elif [ "$DEFAULT_END_FLAG" == "false" ]; then
- # 自定义终点
- echo "Setting end point: $END_POINT"
- ## 发布自定义终点
- command="cd $SIMULATION_PATH/catkin_ws && rm -r build devel && catkin_make && source devel/setup.bash && rosrun goal_publish goal $END_POINT"
- ## 录包
- ### 激活conda环境
- # source activate simulation
- ## 清除环境
- pkill -f "goal_publish/goal"
- pkill -f "goal_publish/pub_node"
- pkill -f "rosbag_record"
- sleep 1
- echo 'bash -c '\""$command"\"
- nohup python "$SIMULATION_PATH"/rosbag_record.py "$SIMULATION_PATH"/data/record_bag/test.bag >/dev/null 2>&1 &
- nohup bash -c "$command" >/dev/null 2>&1 &
- ## 设置终点并执行
- echo "End point: $END_POINT has been set"
- fi
- # 是否加载障碍物
- if [ "$OBSTACLE_FLAG" == "true" ]; then # 加载
- echo "Loading default obstacle..."
- # 动态加载障碍物
- command="cd $SIMULATION_PATH/pji_work && source devel/setup.bash && rosrun test demo $SIMULATION_PATH/merge_obstacles_data/merged_obstacles_new_0517_1.csv"
- nohup bash -c "$command" >/dev/null 2>&1 &
- # gnome-terminal --tab -e 'bash -c '\""$command"\"
- sleep 0.5
- echo 'bash -c '"$command"
- echo "Default obstacle loaded"
- fi
|