From 2b01f636fef45aa89a82e2bcbf945ff25ddea860 Mon Sep 17 00:00:00 2001 From: default Date: Thu, 1 Jan 2026 00:59:44 +0000 Subject: [PATCH] WSL Support --- README.md | 96 +++----- docs/installation.md | 504 +++++++++++++++++++++++---------------- setup/install_arch.sh | 178 ++++++++++++++ standalone_simulation.py | 2 +- 4 files changed, 509 insertions(+), 271 deletions(-) create mode 100755 setup/install_arch.sh diff --git a/README.md b/README.md index e0f22de..0758ca6 100644 --- a/README.md +++ b/README.md @@ -4,55 +4,36 @@ A GPS-denied drone landing simulation using relative sensors (IMU, altimeter, ca ## Quick Start -### Windows (Standalone - No ROS 2 Required) +```bash +# Install (choose your platform) +./setup/install_ubuntu.sh # Ubuntu/Debian +./setup/install_arch.sh # Arch Linux +./setup/install_macos.sh # macOS +.\setup\install_windows.ps1 # Windows (PowerShell) -```powershell -. .\activate.ps1 -python standalone_simulation.py +# Activate and run +source activate.sh # Linux/macOS +. .\activate.ps1 # Windows -# With moving rover python standalone_simulation.py --pattern circular --speed 0.3 ``` -### Linux (Full ROS 2 Setup) +## Platform Compatibility -```bash -source activate.sh +| Feature | Ubuntu | Arch | macOS | Windows | +|---------|--------|------|-------|---------| +| Standalone | ✅ | ✅ | ✅ | ✅ | +| ROS 2 | ✅ | ⚠️ | ❌ | ❌ | +| Gazebo | ✅ | ⚠️ | ❌ | ❌ | -# Terminal 1: Simulator -python simulation_host.py - -# Terminal 2: ROS bridge -python ros_bridge.py - -# Terminal 3: Controllers -python controllers.py --pattern circular --speed 0.3 -``` - -## Architecture - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ STANDALONE MODE (Windows) FULL MODE (Linux + ROS 2) │ -│ ───────────────────────── ────────────────────────── │ -│ │ -│ ┌──────────────────────┐ ┌───────────────┐ ┌───────────────┐ │ -│ │standalone_simulation │ │simulation_host│◄──►│ ros_bridge │ │ -│ │ (All-in-one) │ └───────────────┘ └───────┬───────┘ │ -│ └──────────────────────┘ │ │ -│ ┌─────────▼─────────┐ │ -│ │ controllers.py │ │ -│ │ (Drone + Rover) │ │ -│ └───────────────────┘ │ -└─────────────────────────────────────────────────────────────────────────┘ -``` +**All platforms support standalone mode** - no ROS 2 required! ## Files | File | Description | |------|-------------| -| `standalone_simulation.py` | **Windows: All-in-one simulation (no ROS 2)** | -| `simulation_host.py` | PyBullet physics simulator | +| `standalone_simulation.py` | **All-in-one simulation (no ROS 2)** | +| `simulation_host.py` | PyBullet simulator (ROS 2 mode) | | `ros_bridge.py` | UDP ↔ ROS 2 bridge | | `gazebo_bridge.py` | Gazebo ↔ ROS 2 bridge | | `controllers.py` | Runs drone + rover controllers | @@ -62,22 +43,16 @@ python controllers.py --pattern circular --speed 0.3 ## Controller Options ```bash -# Standalone (Windows) -python standalone_simulation.py --pattern circular --speed 0.3 - -# Full mode (Linux) -python controllers.py --pattern circular --speed 0.3 +python standalone_simulation.py --help Options: - --pattern, -p Rover pattern: stationary, linear, circular, square - --speed, -s Rover speed in m/s (default: 0.5) - --amplitude, -a Rover amplitude in meters (default: 2.0) + --pattern, -p stationary, linear, circular, square + --speed, -s Speed in m/s (default: 0.5) + --amplitude, -a Amplitude in meters (default: 2.0) ``` ## GPS-Denied Sensors -The drone has no GPS. Available sensors: - | Sensor | Data | |--------|------| | **IMU** | Orientation, angular velocity | @@ -90,25 +65,16 @@ The drone has no GPS. Available sensors: | Document | Description | |----------|-------------| -| [Installation](docs/installation.md) | Setup for Ubuntu, macOS, Windows | -| [Architecture](docs/architecture.md) | System components and data flow | +| [Installation](docs/installation.md) | All platform setup guides | +| [Architecture](docs/architecture.md) | System components | | [Protocol](docs/protocol.md) | Sensor data formats | -| [Drone Guide](docs/drone_guide.md) | How to implement landing logic | -| [Rover Controller](docs/rover_controller.md) | Movement patterns | -| [PyBullet](docs/pybullet.md) | PyBullet-specific setup | -| [Gazebo](docs/gazebo.md) | Gazebo-specific setup (Linux only) | - -## Platform Support - -| Platform | Standalone | Full (ROS 2) | Gazebo | -|----------|------------|--------------|--------| -| Windows | ✅ | ⚠️ Complex | ❌ | -| Linux | ✅ | ✅ | ✅ | -| macOS | ✅ | ⚠️ Limited | ❌ | +| [Drone Guide](docs/drone_guide.md) | Landing algorithm guide | +| [PyBullet](docs/pybullet.md) | PyBullet setup | +| [Gazebo](docs/gazebo.md) | Gazebo setup (Linux) | ## Getting Started -1. **Windows**: Run `python standalone_simulation.py` -2. **Linux**: Read [docs/drone_guide.md](docs/drone_guide.md) -3. Edit `drone_controller.py` to implement your algorithm -4. Test with different rover patterns \ No newline at end of file +1. Run `python standalone_simulation.py` +2. Watch the drone land automatically +3. Edit `drone_controller.py` to implement your own algorithm +4. Test: `python standalone_simulation.py --pattern circular` \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md index bce6062..609e5be 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,275 +1,369 @@ # Installation Guide -This guide covers installation on Ubuntu, macOS, and Windows. +Setup instructions for all supported platforms. ## Quick Install -### Ubuntu / Debian +| Platform | Command | +|----------|---------| +| Ubuntu/Debian | `./setup/install_ubuntu.sh` | +| Arch Linux | `./setup/install_arch.sh` | +| macOS | `./setup/install_macos.sh` | +| Windows | `.\setup\install_windows.ps1` | +After installation: ```bash -cd simulation -chmod +x setup/install_ubuntu.sh -./setup/install_ubuntu.sh -source activate.sh -``` +source activate.sh # Linux/macOS +. .\activate.ps1 # Windows PowerShell -### macOS - -```bash -cd simulation -chmod +x setup/install_macos.sh -./setup/install_macos.sh -source activate.sh -``` - -### Windows (PowerShell) - -```powershell -cd simulation -Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -.\setup\install_windows.ps1 -.\activate.bat +python standalone_simulation.py ``` --- -## What Gets Installed +## Platform Compatibility -| Component | Description | -|-----------|-------------| -| **ROS 2** | Humble (Ubuntu 22.04) or Jazzy (Ubuntu 24.04) | -| **Gazebo** | Modern Ignition-based simulator | -| **Python venv** | Virtual environment with system site-packages | -| **PyBullet** | Lightweight physics engine | -| **PyInstaller** | Executable bundler | -| **ros_gz_bridge** | ROS 2 ↔ Gazebo topic bridge | +| Feature | Ubuntu | Arch | macOS | Windows | WSL2 | +|---------|--------|------|-------|---------|------| +| **Standalone Simulation** | ✅ | ✅ | ✅ | ✅ | ✅ | +| **ROS 2** | ✅ | ⚠️ AUR | ❌ | ❌ | ✅ | +| **Gazebo** | ✅ | ⚠️ AUR | ❌ | ❌ | ✅ | +| **Full Mode** | ✅ | ⚠️ | ❌ | ❌ | ✅ | +| **GUI Support** | ✅ | ✅ | ✅ | ✅ | ✅ WSLg | + +**Legend:** +- ✅ Fully supported +- ⚠️ Available but requires extra setup +- ❌ Not supported + +**Recommendation for Windows users:** Use WSL2 for the full experience (ROS 2 + Gazebo). + +--- + +## Ubuntu / Debian + +**Tested on:** Ubuntu 22.04 (Jammy), Ubuntu 24.04 (Noble) + +```bash +# Run installer +./setup/install_ubuntu.sh + +# Activate environment +source activate.sh + +# Run simulation +python standalone_simulation.py +``` + +**Installs:** +- ROS 2 (Humble or Jazzy based on Ubuntu version) +- Gazebo (ros-gz) +- Python packages: pybullet, numpy, pillow, pyinstaller + +--- + +## Arch Linux + +**Tested on:** Arch Linux (rolling release) + +```bash +# Run installer +./setup/install_arch.sh + +# Activate environment +source activate.sh + +# Run simulation +python standalone_simulation.py +``` + +**Installs:** +- Python packages: pybullet, numpy, pillow, pyinstaller +- yay (AUR helper) + +**Optional ROS 2 (from AUR):** +```bash +yay -S ros-humble-desktop +yay -S ros-humble-ros-gz +``` + +--- + +## macOS + +**Tested on:** macOS 12+ (Monterey, Ventura, Sonoma) + +```bash +# Run installer +./setup/install_macos.sh + +# Activate environment +source activate.sh + +# Run simulation +python standalone_simulation.py +``` + +**Installs:** +- Homebrew (if not present) +- Python 3.11 +- Python packages: pybullet, numpy, pillow, pyinstaller + +**Note:** ROS 2 and Gazebo are not supported on macOS. Use standalone mode. + +--- + +## Windows + +**Tested on:** Windows 10, Windows 11 + +```powershell +# Open PowerShell as Administrator +Set-ExecutionPolicy RemoteSigned -Scope CurrentUser + +# Run installer +.\setup\install_windows.ps1 + +# Activate environment +. .\activate.ps1 + +# Run simulation +python standalone_simulation.py +``` + +**Installs:** +- Chocolatey (package manager) +- Python 3.11 +- Python packages: pybullet, numpy, pillow, pyinstaller + +**Note:** ROS 2 and Gazebo are not supported natively on Windows. Use standalone mode or WSL2 (below). + +--- + +## Windows with WSL2 (Full Linux Experience) + +WSL2 lets you run full Linux on Windows with GUI support. This enables ROS 2 and Gazebo! + +**Requirements:** Windows 10 (build 19041+) or Windows 11 + +### Step 1: Install WSL2 + +Open PowerShell as Administrator: + +```powershell +# Install WSL2 with Ubuntu +wsl --install -d Ubuntu-22.04 + +# Restart computer when prompted +``` + +### Step 2: Enable GUI Support (WSLg) + +Windows 11 and recent Windows 10 updates include WSLg (GUI support) automatically. + +Verify by opening Ubuntu and running: +```bash +# Test GUI (should open a window) +sudo apt update +sudo apt install x11-apps -y +xclock +``` + +If xclock appears, GUI is working! + +### Step 3: Install Simulation in WSL + +Open Ubuntu from Start menu: + +```bash +# Clone or copy your project +cd ~ +git clone simulation +# OR copy from Windows: +# cp -r /mnt/c/Users/YourName/simulation ~/simulation + +cd simulation + +# Run Ubuntu installer +./setup/install_ubuntu.sh + +# Activate +source activate.sh + +# Run with GUI +python standalone_simulation.py +``` + +### WSL2 Tips + +**Access Windows files:** +```bash +# Windows C: drive is at /mnt/c/ +cd /mnt/c/Users/YourName/Documents +``` + +**Run from Windows Terminal:** +```powershell +wsl -d Ubuntu-22.04 -e bash -c "cd ~/simulation && source activate.sh && python standalone_simulation.py" +``` + +**GPU Acceleration (NVIDIA):** + +If you have an NVIDIA GPU: +```bash +# Check if GPU is available +nvidia-smi + +# PyBullet will use hardware rendering automatically +``` + +**Troubleshooting WSL GUI:** + +If GUI doesn't work: +```bash +# Update WSL +wsl --update + +# Set WSL2 as default +wsl --set-default-version 2 + +# Reinstall Ubuntu +wsl --unregister Ubuntu-22.04 +wsl --install -d Ubuntu-22.04 +``` + +**Using VcXsrv (older Windows 10):** + +If WSLg isn't available: +```powershell +# Install VcXsrv +choco install vcxsrv -y +``` + +Then in WSL: +```bash +# Add to ~/.bashrc +export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0 +export LIBGL_ALWAYS_INDIRECT=1 + +# Start VcXsrv with "Disable access control" checked +# Then run simulation +python standalone_simulation.py +``` --- ## Manual Installation -If the scripts don't work, follow these steps manually. +If the install scripts don't work, install manually: -### Step 1: Install ROS 2 - -#### Ubuntu 22.04 (Humble) +### 1. Python 3.10+ ```bash -sudo apt update && 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 +# Ubuntu/Debian +sudo apt install python3 python3-pip python3-venv -sudo apt install -y software-properties-common curl -sudo add-apt-repository -y universe -sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \ - -o /usr/share/keyrings/ros-archive-keyring.gpg +# Arch +sudo pacman -S python python-pip python-virtualenv -echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" \ - | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null +# macOS +brew install python@3.11 -sudo apt update -sudo apt install -y ros-humble-desktop +# Windows +# Download from https://python.org ``` -#### Ubuntu 24.04 (Jazzy) +### 2. Create Virtual Environment ```bash -# Same as above, but install ros-jazzy-desktop -sudo apt install -y ros-jazzy-desktop +python3 -m venv venv +source venv/bin/activate # Linux/macOS +# OR +.\venv\Scripts\Activate.ps1 # Windows ``` -### Step 2: Install Gazebo +### 3. Install Python Packages ```bash -# Ubuntu 22.04 -sudo apt install -y ros-humble-ros-gz ros-humble-ros-gz-bridge - -# Ubuntu 24.04 -sudo apt install -y ros-jazzy-ros-gz ros-jazzy-ros-gz-bridge +pip install -r requirements.txt ``` -### Step 3: Create Python Virtual Environment - +Or manually: ```bash -sudo apt install -y python3-venv python3-full - -cd /path/to/simulation -python3 -m venv venv --system-site-packages -source venv/bin/activate +pip install pybullet numpy pillow pyinstaller ``` -### Step 4: Install Python Dependencies +### 4. Run Simulation ```bash -pip install --upgrade pip -pip install pybullet pyinstaller -``` - -### Step 5: Create Activation Script - -Create `activate.sh`: - -```bash -#!/bin/bash -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -# Source ROS 2 (adjust distro as needed) -source /opt/ros/humble/setup.bash -echo "[OK] ROS 2 sourced" - -# Activate venv -source "$SCRIPT_DIR/venv/bin/activate" -echo "[OK] Python venv activated" -``` - -Make executable: - -```bash -chmod +x activate.sh -``` - ---- - -## Verifying Installation - -After installation, verify all components: - -```bash -source activate.sh - -# Check ROS 2 -ros2 --version - -# Check PyBullet -python3 -c "import pybullet; print('PyBullet OK')" - -# Check rclpy -python3 -c "import rclpy; print('rclpy OK')" - -# Check geometry_msgs -python3 -c "from geometry_msgs.msg import Twist; print('geometry_msgs OK')" - -# Check Gazebo -gz sim --version +python standalone_simulation.py ``` --- ## Troubleshooting -### "externally-managed-environment" Error +### PyBullet fails to install -This happens on modern Ubuntu/Debian due to PEP 668. Solution: use the virtual environment. +Install build tools: ```bash -source activate.sh # Activates venv -pip install pybullet # Now works +# Ubuntu/Debian +sudo apt install build-essential + +# Arch +sudo pacman -S base-devel + +# macOS +xcode-select --install + +# Windows +# Install Visual Studio Build Tools ``` -### ROS 2 Packages Not Found +### "Cannot connect to X server" -Ensure ROS 2 is sourced before activating venv: +PyBullet GUI requires a display: ```bash -source /opt/ros/humble/setup.bash # or jazzy -source venv/bin/activate +# Use virtual display +sudo apt install xvfb +xvfb-run python standalone_simulation.py + +# OR use X11 forwarding +ssh -X user@host ``` -The `activate.sh` script handles this automatically. - -### Gazebo Not Starting - -Check if Gazebo is properly installed: +### Pillow fails to install ```bash -which gz -gz sim --version +# Ubuntu/Debian +sudo apt install libjpeg-dev zlib1g-dev + +# Arch +sudo pacman -S libjpeg-turbo zlib + +# macOS +brew install libjpeg zlib ``` -If missing, install the ROS-Gazebo packages: +### Permission denied on Windows -```bash -sudo apt install ros-humble-ros-gz # or jazzy -``` - -### PyBullet GUI Not Showing - -PyBullet requires a display. Options: - -1. Run on machine with monitor -2. Use X11 forwarding: `ssh -X user@host` -3. Use virtual display: `xvfb-run python simulation_host.py` - -### Permission Denied on Scripts - -Make scripts executable: - -```bash -chmod +x setup/*.sh -chmod +x activate.sh -``` - ---- - -## Platform-Specific Notes - -### Ubuntu - -- Full support for both PyBullet and Gazebo -- ROS 2 installed via apt packages -- Recommended platform - -### macOS - -- PyBullet works well -- Gazebo support is limited -- ROS 2 installed via Homebrew or binary - -### Windows - -- **PyBullet works fully** - GUI mode with camera -- **Gazebo NOT supported** - Linux only -- **ROS 2 optional** - Only needed for ros_bridge.py -- Use `python simulation_host.py` directly - -**On Windows, the recommended workflow is:** +Run PowerShell as Administrator: ```powershell -. .\activate.ps1 -python simulation_host.py -``` - -The PyBullet simulation runs standalone with full GUI - no ROS 2 or Gazebo needed. - ---- - -## Updating - -To update the simulation framework: - -```bash -cd simulation -git pull # If using git - -# Reinstall Python dependencies -source activate.sh -pip install --upgrade pybullet pyinstaller +Set-ExecutionPolicy RemoteSigned -Scope CurrentUser ``` --- -## Uninstalling +## Verification -### Remove Virtual Environment +After installation, verify packages: ```bash -rm -rf venv/ -rm activate.sh +python -c "import pybullet; print('PyBullet OK')" +python -c "import numpy; print('NumPy OK')" +python -c "from PIL import Image; print('Pillow OK')" ``` -### Remove ROS 2 (Ubuntu) - -```bash -sudo apt remove ros-humble-* # or jazzy -sudo rm /etc/apt/sources.list.d/ros2.list -``` +All should print "OK". diff --git a/setup/install_arch.sh b/setup/install_arch.sh new file mode 100755 index 0000000..76d5082 --- /dev/null +++ b/setup/install_arch.sh @@ -0,0 +1,178 @@ +#!/bin/bash +# ============================================================================= +# Drone Simulation - Arch Linux Installation Script +# ============================================================================= +# Installs PyBullet and Python dependencies +# ROS 2 requires AUR (optional - not needed for standalone mode) +# +# Usage: ./install_arch.sh +# ============================================================================= + +set -e + +echo "==============================================" +echo " Drone Simulation - Arch Linux Installation" +echo "==============================================" +echo "" + +# Get script directory and project root +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" +VENV_DIR="$PROJECT_ROOT/venv" + +echo "[INFO] Project root: $PROJECT_ROOT" +echo "[INFO] Virtual environment: $VENV_DIR" + +# ----------------------------------------------------------------------------- +# Step 1: System Dependencies +# ----------------------------------------------------------------------------- +echo "" +echo "[STEP 1/5] Installing system dependencies..." + +sudo pacman -Syu --noconfirm +sudo pacman -S --needed --noconfirm \ + python \ + python-pip \ + python-virtualenv \ + base-devel \ + git \ + curl \ + mesa \ + libglvnd + +echo "[INFO] System dependencies installed" + +# ----------------------------------------------------------------------------- +# Step 2: Install AUR Helper (yay) - Optional for ROS 2 +# ----------------------------------------------------------------------------- +echo "" +echo "[STEP 2/5] Checking AUR helper..." + +if command -v yay &> /dev/null; then + echo "[INFO] yay already installed" + HAS_YAY=true +else + echo "[INFO] Installing yay (AUR helper)..." + + cd /tmp + if [ -d "yay" ]; then + rm -rf yay + fi + git clone https://aur.archlinux.org/yay.git + cd yay + makepkg -si --noconfirm + cd "$PROJECT_ROOT" + + HAS_YAY=true + echo "[INFO] yay installed" +fi + +# ----------------------------------------------------------------------------- +# Step 3: Create Python Virtual Environment +# ----------------------------------------------------------------------------- +echo "" +echo "[STEP 3/5] Creating Python virtual environment..." + +if [ -d "$VENV_DIR" ]; then + rm -rf "$VENV_DIR" +fi + +python -m venv "$VENV_DIR" +echo "[INFO] Virtual environment created at: $VENV_DIR" + +# ----------------------------------------------------------------------------- +# Step 4: Install Python Dependencies +# ----------------------------------------------------------------------------- +echo "" +echo "[STEP 4/5] Installing Python dependencies..." + +source "$VENV_DIR/bin/activate" +pip install --upgrade pip + +if [ -f "$PROJECT_ROOT/requirements.txt" ]; then + echo "[INFO] Installing from requirements.txt..." + pip install -r "$PROJECT_ROOT/requirements.txt" +else + echo "[INFO] Installing packages manually..." + pip install pybullet numpy pillow pyinstaller +fi + +echo "[INFO] Python packages installed" + +# ----------------------------------------------------------------------------- +# Step 5: Create Activation Script +# ----------------------------------------------------------------------------- +echo "" +echo "[STEP 5/5] Creating activation script..." + +cat > "$PROJECT_ROOT/activate.sh" << 'EOF' +#!/bin/bash +# Drone Simulation - Environment Activation (Arch Linux) + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Try to source ROS 2 if available (from AUR) +if [ -f "/opt/ros/humble/setup.bash" ]; then + source /opt/ros/humble/setup.bash + echo "[OK] ROS 2 humble sourced" +elif [ -f "/opt/ros/jazzy/setup.bash" ]; then + source /opt/ros/jazzy/setup.bash + echo "[OK] ROS 2 jazzy sourced" +else + echo "[INFO] ROS 2 not found - standalone mode available" +fi + +# Activate Python venv +if [ -f "$SCRIPT_DIR/venv/bin/activate" ]; then + source "$SCRIPT_DIR/venv/bin/activate" + echo "[OK] Python venv activated" +fi + +# Set Gazebo model path if available +export GZ_SIM_RESOURCE_PATH="$SCRIPT_DIR/gazebo/models:$GZ_SIM_RESOURCE_PATH" + +echo "" +echo "Environment ready! Run:" +echo " python standalone_simulation.py" +echo "" +EOF + +chmod +x "$PROJECT_ROOT/activate.sh" +echo "[INFO] Created: $PROJECT_ROOT/activate.sh" + +# ----------------------------------------------------------------------------- +# Verification +# ----------------------------------------------------------------------------- +echo "" +echo "Verifying installation..." + +source "$PROJECT_ROOT/activate.sh" + +echo "" +echo "Checking Python packages:" +python -c "import pybullet; print(' PyBullet: OK')" || echo " PyBullet: FAILED" +python -c "import numpy; print(' NumPy: OK')" || echo " NumPy: FAILED" +python -c "from PIL import Image; print(' Pillow: OK')" || echo " Pillow: FAILED" + +echo "" +echo "==============================================" +echo " Installation Complete!" +echo "==============================================" +echo "" +echo "Quick start:" +echo " source activate.sh" +echo " python standalone_simulation.py" +echo "" +echo "With moving rover:" +echo " python standalone_simulation.py --pattern circular --speed 0.3" +echo "" +echo "==============================================" +echo " Optional: Install ROS 2 from AUR" +echo "==============================================" +echo "" +echo "If you need ROS 2 for the full simulation mode:" +echo " yay -S ros-humble-desktop" +echo " yay -S ros-humble-ros-gz" +echo "" +echo "Then use simulation_host.py + ros_bridge.py + controllers.py" +echo "" diff --git a/standalone_simulation.py b/standalone_simulation.py index ae337d5..3556e4b 100644 --- a/standalone_simulation.py +++ b/standalone_simulation.py @@ -27,7 +27,7 @@ class StandaloneSimulation: DRONE_MASS = 1.0 DRONE_SIZE = (0.3, 0.3, 0.1) - DRONE_START_POS = (0.0, 0.0, 5.0) + DRONE_START_POS = (10.0, 0.0, 5.0) THRUST_SCALE = 15.0 PITCH_TORQUE_SCALE = 2.0