Büyük dünya · Görev 9 · 2–3 akşam

ROS 2 ile tanış

Porti'yi micro-ROS ile ROS 2'ye bağla, Mac'ten Foxglove'la izle.

Görevin sonunda

Bilgisayardan /cmd_vel ile sürülen, verisi Foxglove'da akan bir Porti.

Adım 1 / 3

Mac'te ROS 2: Docker

ROS 2 macOS'ta resmi olarak desteklenmiyor; en sorunsuz yol Docker. Docker Desktop'ı kur, aşağıdaki compose.yaml ile ajanı, Foxglove köprüsünü ve bir kabuğu başlat. Foxglove'un Mac uygulamasını da indir.

Kod
compose.yaml
# compose.yaml — Mac'te ROS 2: ajan + Foxglove köprüsü + kabuk, aynı ağda
services:
  agent:
    image: microros/micro-ros-agent:jazzy
    command: udp4 --port 8888 -v4
    ports: ["8888:8888/udp"]
  foxglove:
    image: ros:jazzy
    command: bash -c "apt-get update && apt-get install -y ros-jazzy-foxglove-bridge && ros2 launch foxglove_bridge foxglove_bridge_launch.xml"
    ports: ["8765:8765"]
  shell:
    image: ros:jazzy
    stdin_open: true
    tty: true
    command: bash -c "apt-get update && apt-get install -y ros-jazzy-teleop-twist-keyboard && bash"

# docker compose up -d
# docker compose exec shell bash -c "source /opt/ros/jazzy/setup.bash && ros2 topic list"
# docker compose exec shell bash -c "source /opt/ros/jazzy/setup.bash && ros2 run teleop_twist_keyboard teleop_twist_keyboard"
# Foxglove (Mac uygulaması) → Open connection → ws://localhost:8765
Öğren · ROS 2 nedir?

Robot yazılımı için bir mesajlaşma sistemi ve araç kutusu. Her parça bir "node": biri motoru sürer, biri sensörü okur, biri karar verir. Birbirleriyle "topic" üzerinden konuşurlar (/cmd_vel: hız komutu). Mikroservislerle event bus'ı düşün. micro-ROS bunun ESP32'ye sığan küçük hali; ajan, ESP32 ile ROS 2 dünyası arasında köprü.