- Dockerfile: L4T R32.6.1 (JetPack 4.6) base + ROS2 Humble + SLAM stack (slam_toolbox, Nav2, rplidar_ros, realsense2_camera, robot_localization) - docker-compose.yml: multi-service stack (ROS2, RPLIDAR A1M8, D435i, STM32 bridge) with device passthrough, host networking for DDS, persistent map volume - docs/pinout.md: full GPIO/I2C/UART pinout for STM32F722 bridge (USB CDC + UART fallback), RealSense D435i (USB3), RPLIDAR A1M8, udev rules - docs/power-budget.md: 10W envelope analysis with per-component breakdown, mitigation strategies (RPLIDAR gating, D435i 640p, nvpmodel modes) - scripts/setup-jetson.sh: host one-shot setup (Docker, nvidia-container-runtime, udev rules, MAXN power mode, swap) - scripts/build-and-run.sh: build/up/down/shell/slam/status helper Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
52 lines
1.3 KiB
Bash
52 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
# Quick build + run helper for the Jetson ROS2 stack
|
|
# Usage: bash build-and-run.sh [build|up|down|logs|shell]
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
JETSON_DIR="$(dirname "$SCRIPT_DIR")"
|
|
|
|
cd "$JETSON_DIR"
|
|
|
|
ACTION="${1:-up}"
|
|
|
|
case "$ACTION" in
|
|
build)
|
|
echo "[saltybot] Building ROS2 Docker image..."
|
|
docker compose build --no-cache
|
|
;;
|
|
up)
|
|
echo "[saltybot] Starting ROS2 stack..."
|
|
docker compose up -d
|
|
docker compose logs -f
|
|
;;
|
|
down)
|
|
echo "[saltybot] Stopping ROS2 stack..."
|
|
docker compose down
|
|
;;
|
|
logs)
|
|
docker compose logs -f
|
|
;;
|
|
shell)
|
|
echo "[saltybot] Opening shell in ros2 container..."
|
|
docker compose exec saltybot-ros2 bash
|
|
;;
|
|
slam)
|
|
echo "[saltybot] Launching SLAM only..."
|
|
docker compose up -d rplidar realsense saltybot-ros2
|
|
docker compose logs -f saltybot-ros2
|
|
;;
|
|
status)
|
|
docker compose ps
|
|
echo ""
|
|
echo "--- ROS2 topics (requires running container) ---"
|
|
docker compose exec saltybot-ros2 \
|
|
bash -c "source /opt/ros/humble/setup.bash && ros2 topic list" 2>/dev/null || true
|
|
;;
|
|
*)
|
|
echo "Usage: $0 [build|up|down|logs|shell|slam|status]"
|
|
exit 1
|
|
;;
|
|
esac
|