Initial import of FaRui Campus ADS v3.2

This commit is contained in:
li-shihao-code
2026-06-05 14:20:30 +08:00
commit 2839d34fdb
6548 changed files with 1335203 additions and 0 deletions
+145
View File
@@ -0,0 +1,145 @@
#!/bin/bash
# ECar Mapping Script - 在线建图启动脚本
# 使用方法: ./mapping.sh [选项]
set -e # 遇到错误立即退出
# ============ 配置 ============
WORKSPACE_DIR="/home/nvidia/FaRui/v3.1"
MAP_SAVE_PATH="${WORKSPACE_DIR}/maps/$(date +%Y%m%d_%H%M%S)"
SLAM_METHOD="liorf" # 可选: fast_lio2 或 liorf
RECORD_BAG="false"
LAUNCH_RVIZ="true"
# ============ 帮助信息 ============
function show_help() {
echo "ECar Mapping Script - 在线建图启动脚本"
echo ""
echo "用法: $0 [选项]"
echo ""
echo "选项:"
echo " -h, --help 显示帮助信息"
echo " -m, --method METHOD 选择SLAM算法: fast_lio2 或 liorf (默认: ${SLAM_METHOD})"
echo " -s, --save PATH 地图保存路径 (默认: ${MAP_SAVE_PATH})"
echo " -r, --record 录制rosbag备份"
echo " --no-rviz 不启动RViz"
echo " -b, --bag-path PATH 指定rosbag录制路径"
echo ""
echo "示例:"
echo " $0 # 默认使用liorf建图"
echo " $0 -m fast_lio2 # 使用FAST_LIO2建图"
echo " $0 -r -s /home/nvidia/my_maps # 建图并录制bag到指定目录"
echo " $0 --no-rviz # 建图但不启动RViz"
exit 0
}
# ============ 解析参数 ============
while [[ $# -gt 0 ]]; do
case $1 in
-h|--help)
show_help
;;
-m|--method)
SLAM_METHOD="$2"
shift 2
;;
-s|--save)
MAP_SAVE_PATH="$2"
shift 2
;;
-r|--record)
RECORD_BAG="true"
shift
;;
--no-rviz)
LAUNCH_RVIZ="false"
shift
;;
-b|--bag-path)
BAG_SAVE_PATH="$2"
shift 2
;;
*)
echo "未知参数: $1"
show_help
;;
esac
done
# ============ 验证参数 ============
if [[ "${SLAM_METHOD}" != "fast_lio2" && "${SLAM_METHOD}" != "liorf" ]]; then
echo "错误: 不支持的SLAM算法 '${SLAM_METHOD}'"
echo "支持的算法: fast_lio2, liorf"
exit 1
fi
# 创建地图保存目录
mkdir -p "${MAP_SAVE_PATH}"
echo "地图将保存到: ${MAP_SAVE_PATH}"
# ============ 环境设置 ============
echo "================================"
echo " ECar 在线建图启动"
echo "================================"
echo "工作目录: ${WORKSPACE_DIR}"
echo "SLAM算法: ${SLAM_METHOD}"
echo "RViz: ${LAUNCH_RVIZ}"
echo "录制bag: ${RECORD_BAG}"
echo "================================"
# 切换到工作目录
cd "${WORKSPACE_DIR}"
# 加载ROS环境
echo "[1/3] 加载ROS2环境..."
if [ -f "install/setup.bash" ]; then
source install/setup.bash
echo " 已加载本地工作空间"
else
echo " 警告: 未找到本地工作空间,使用系统ROS2"
source /opt/ros/humble/setup.bash
fi
# 检查必要的包是否存在
echo "[2/3] 检查必要组件..."
REQUIRED_PKGS=("farui_launch" "timoo_ros2_driver" "wheeltec_gps_driver" "hipnuc_imu")
for pkg in "${REQUIRED_PKGS[@]}"; do
if ros2 pkg list | grep -q "^${pkg}$"; then
echo "${pkg}"
else
echo "${pkg} 未找到!"
exit 1
fi
done
# 启动建图
echo "[3/3] 启动建图节点..."
echo ""
# 构建启动参数
LAUNCH_ARGS=""
LAUNCH_ARGS+=" slam_method:=${SLAM_METHOD}"
LAUNCH_ARGS+=" map_save_path:=${MAP_SAVE_PATH}"
LAUNCH_ARGS+=" record_bag:=${RECORD_BAG}"
LAUNCH_ARGS+=" rviz:=${LAUNCH_RVIZ}"
if [ -n "${BAG_SAVE_PATH}" ]; then
LAUNCH_ARGS+=" map_save_path:=${BAG_SAVE_PATH}"
fi
echo "启动参数: ${LAUNCH_ARGS}"
echo ""
# 启动 launch 文件
ros2 launch farui_launch ecar_mapping.launch.xml ${LAUNCH_ARGS}
# 建图结束后提示
echo ""
echo "================================"
echo " 建图已结束"
echo "================================"
if [ -d "${MAP_SAVE_PATH}" ]; then
echo "地图保存位置: ${MAP_SAVE_PATH}"
ls -lh "${MAP_SAVE_PATH}" 2>/dev/null || true
fi
echo "================================"