一键导入
ros2-macos
ROS2 Jazzy on macOS Apple Silicon. Use when running ROS2 commands, debugging DDS discovery, launching rviz2, or working with the CouchVision bridge.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
ROS2 Jazzy on macOS Apple Silicon. Use when running ROS2 commands, debugging DDS discovery, launching rviz2, or working with the CouchVision bridge.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Docker on macOS via Colima. Use when running Docker containers, debugging container issues, or working with docker-compose on Mac.
Deploying and benchmarking on Jetson Orin Nano. Use when deploying code to Jetson, running TensorRT inference, monitoring GPU usage, or benchmarking performance.
CouchVision perception stack — YOLOv8 + YOLOP + TensorRT + RTAB-Map SLAM. Use when working on object detection, lane segmentation, model export, SLAM, or running the perception stack on Mac or Jetson.
RTAB-Map SLAM integration with CouchVision. Use when working on visual SLAM, loop closure, keyframe tuning, or debugging map building issues.
| name | ros2-macos |
| description | ROS2 Jazzy on macOS Apple Silicon. Use when running ROS2 commands, debugging DDS discovery, launching rviz2, or working with the CouchVision bridge. |
ROS2 Jazzy is installed from source at ~/ros2_jazzy/.
Source the environment before any ROS2 command:
source ~/ros2_jazzy/install/setup.zsh
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
Both lines are required. The shell is zsh — do not use setup.bash.
FastRTPS (the default RMW) DDS discovery hangs indefinitely on macOS. Always set:
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
This must be set for every process — the bridge, ros2 topic list, rviz2, etc. If any ROS2 command hangs, the most likely cause is a missing or mismatched RMW_IMPLEMENTATION.
ROS2 was built against Python 3.12 in ~/ros2_jazzy/.venv/. The ros2 CLI shebang points there. System python may be newer (3.14) — do not use system python for ROS2 packages.
The bridge uses uv with --system-site-packages to access rclpy from the ROS2 install.
All commands assume the environment is sourced.
# List topics (use --no-daemon if daemon is broken)
ros2 topic list
ros2 topic list --no-daemon
# Echo a topic
ros2 topic echo /iphone/imu
# Topic frequency
ros2 topic hz /iphone/imu
# Launch rviz2
rviz2
# Node list
ros2 node list
Or use the Makefile which handles setup automatically:
make bridge # Start iOS bridge
make topics # List topics
make rviz # Launch rviz2
make hz T=/iphone/imu
make echo T=/iphone/imu
The ros2 daemon can become stale and cause all CLI commands to hang. Fix:
# Kill stale daemon
pkill -9 -f "_ros2_daemon"
# Or bypass it entirely
ros2 topic list --no-daemon
The bridge (bridge/ios_bridge.py) receives CDR-encoded sensor data from the iPhone over TCP and republishes to ROS2 topics. It listens on port 7447.
iPhone connection over USB-C: The Mac gets a link-local IP on the en* USB interface (typically 169.254.x.x). Use that IP in the app, not the WiFi IP. Run ifconfig to find it.
rmw_cyclonedds_cpp — works on macOS, use thisrmw_fastrtps_cpp — default, discovery hangs on macOSrmw_zenoh_cpp — installed but requires zenoh router