Webots install script added
This commit is contained in:
179
install-webots.sh
Normal file
179
install-webots.sh
Normal file
@@ -0,0 +1,179 @@
|
||||
#!/bin/bash
|
||||
# =============================================================================
|
||||
# Скрипт установки системы для роботов (ROS2 Jazzy + Webots + Nav2 + SLAM)
|
||||
# Ubuntu 24.04 LTS
|
||||
# =============================================================================
|
||||
set -e # Остановить выполнение при любой ошибке
|
||||
|
||||
BASHRC="$HOME/.bashrc"
|
||||
|
||||
# Вспомогательная функция: добавить строку в ~/.bashrc, если её там ещё нет
|
||||
append_bashrc() {
|
||||
local line="$1"
|
||||
if ! grep -qF "$line" "$BASHRC"; then
|
||||
echo "$line" >> "$BASHRC"
|
||||
echo " -> Добавлено в ~/.bashrc: $line"
|
||||
else
|
||||
echo " -> Уже есть в ~/.bashrc: $line"
|
||||
fi
|
||||
}
|
||||
|
||||
echo ""
|
||||
echo "============================================================"
|
||||
echo " Установка системы для роботов на Ubuntu 24.04"
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# ШАГ 0 — Установка базовых инструментов (git, curl и т.д.)
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
echo ">>> [0/4] Установка базовых инструментов..."
|
||||
sudo apt update -y
|
||||
sudo apt install -y git curl
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# ШАГ 1 — Установка ROS2 Jazzy
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
echo ""
|
||||
echo ">>> [1/4] Установка ROS2 Jazzy..."
|
||||
|
||||
# Локаль
|
||||
sudo apt install -y locales
|
||||
sudo locale-gen en_US en_US.UTF-8
|
||||
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
|
||||
export LANG=en_US.UTF-8
|
||||
|
||||
# Репозиторий ROS2
|
||||
sudo apt install -y software-properties-common
|
||||
sudo add-apt-repository -y universe
|
||||
sudo apt update -y
|
||||
|
||||
ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest \
|
||||
| grep -F "tag_name" | awk -F\" '{print $4}')
|
||||
curl -L -o /tmp/ros2-apt-source.deb \
|
||||
"https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
|
||||
sudo dpkg -i /tmp/ros2-apt-source.deb
|
||||
|
||||
# Установка ROS2 Jazzy Desktop Full
|
||||
# (исправлена опечатка оригинала: desctop -> desktop)
|
||||
sudo apt update -y
|
||||
sudo apt install -y ros-jazzy-desktop-full
|
||||
|
||||
# colcon
|
||||
sudo apt install -y python3-colcon-common-extensions
|
||||
|
||||
# Source ROS2 в текущей сессии и в ~/.bashrc
|
||||
source /opt/ros/jazzy/setup.bash
|
||||
append_bashrc "source /opt/ros/jazzy/setup.bash"
|
||||
|
||||
echo " ROS2 Jazzy установлен."
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# ШАГ 2 — Установка симулятора Webots + ROS2-интеграция
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
echo ""
|
||||
echo ">>> [2/4] Установка Webots..."
|
||||
|
||||
# GPG-ключ и репозиторий Cyberbotics
|
||||
sudo mkdir -p /etc/apt/keyrings
|
||||
sudo wget -q https://cyberbotics.com/Cyberbotics.asc \
|
||||
-O /etc/apt/keyrings/Cyberbotics.asc
|
||||
|
||||
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/Cyberbotics.asc] \
|
||||
https://cyberbotics.com/debian binary-amd64/" \
|
||||
| sudo tee /etc/apt/sources.list.d/Cyberbotics.list
|
||||
|
||||
sudo apt update -y
|
||||
sudo apt install -y webots
|
||||
|
||||
# Переменная окружения Webots
|
||||
append_bashrc "export WEBOTS_HOME=/snap/webots/current/usr/share/webots"
|
||||
|
||||
# Пакет интеграции ROS2 <-> Webots (без него ros2 launch не заработает)
|
||||
sudo apt install -y ros-jazzy-webots-ros2
|
||||
|
||||
echo " Webots установлен."
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# ШАГ 3 — Сборка рабочего пространства ros2_ws (пакеты симулятора)
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
echo ""
|
||||
echo ">>> [3/4] Сборка пакетов симулятора (ros2_ws)..."
|
||||
|
||||
mkdir -p ~/ros2_ws/src
|
||||
cd ~/ros2_ws/src # <-- переходим в src перед клонированием
|
||||
|
||||
git clone https://gitlab.mobird.dev/fms_group/ar_webots_fms_ros2.git
|
||||
git clone https://gitlab.mobird.dev/fms_group/ar_arm95_moveit_config.git
|
||||
git clone https://gitlab.mobird.dev/fms_group/ar_aruco_detect_ros2.git
|
||||
git clone https://gitlab.mobird.dev/fms_group/ar_dual_lidar_merge_ros2.git
|
||||
git clone https://gitlab.mobird.dev/fms_group/ar_nav_ros2.git
|
||||
|
||||
cd ~/ros2_ws
|
||||
|
||||
# rosdep init может упасть, если уже был вызван — игнорируем ошибку
|
||||
sudo rosdep init 2>/dev/null || true
|
||||
rosdep update
|
||||
rosdep install --from-paths src -y --ignore-src
|
||||
|
||||
# Обязательный source перед сборкой
|
||||
source /opt/ros/jazzy/setup.bash
|
||||
colcon build --symlink-install
|
||||
|
||||
append_bashrc "source ~/ros2_ws/install/setup.bash"
|
||||
echo " ros2_ws собран."
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# ШАГ 4 — Сборка nav2_ws (навигация) и slam_ws (SLAM)
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
echo ""
|
||||
echo ">>> [4/4] Сборка nav2_ws и slam_ws..."
|
||||
|
||||
# --- Nav2 ---
|
||||
mkdir -p ~/nav2_ws/src
|
||||
cd ~/nav2_ws/src # <-- переходим в src перед клонированием
|
||||
git clone https://github.com/ros-planning/navigation2.git -b 1.3.10
|
||||
|
||||
cd ~/nav2_ws
|
||||
sudo rosdep init 2>/dev/null || true
|
||||
rosdep update
|
||||
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro jazzy
|
||||
|
||||
echo " Сборка Nav2 (~30 мин)..."
|
||||
source /opt/ros/jazzy/setup.bash
|
||||
colcon build --symlink-install
|
||||
|
||||
append_bashrc "source ~/nav2_ws/install/setup.bash"
|
||||
echo " nav2_ws собран."
|
||||
|
||||
# --- SLAM Toolbox ---
|
||||
mkdir -p ~/slam_ws/src
|
||||
cd ~/slam_ws/src # <-- переходим в src перед клонированием
|
||||
git clone https://github.com/SteveMacenski/slam_toolbox.git -b 2.8.3
|
||||
|
||||
cd ~/slam_ws
|
||||
sudo rosdep init 2>/dev/null || true
|
||||
rosdep update
|
||||
rosdep install -y -r -q --from-paths src --ignore-src --rosdistro jazzy
|
||||
|
||||
echo " Сборка SLAM Toolbox (~5 мин)..."
|
||||
source /opt/ros/jazzy/setup.bash
|
||||
colcon build --symlink-install
|
||||
|
||||
append_bashrc "source ~/slam_ws/install/setup.bash"
|
||||
echo " slam_ws собран."
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
# Готово
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
echo ""
|
||||
echo "============================================================"
|
||||
echo " Установка завершена успешно!"
|
||||
echo ""
|
||||
echo " Выполните в текущем терминале:"
|
||||
echo " source ~/.bashrc"
|
||||
echo ""
|
||||
echo " Или откройте новый терминал — все source-команды"
|
||||
echo " уже добавлены в ~/.bashrc и применятся автоматически."
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user