Conduit

Conduit

📱 Conduit

Stream iOS sensor data to ROS 2 robotics systems

iOS 16+ · visionOS 1+ · macOS 13+

Table of Contents


Overview

Conduit is a professional developer tool that turns your iOS device into a powerful ROS 2 sensor publisher. Stream real-time IMU, GPS, camera, LiDAR, and other sensor data directly to your robotics system via Zenoh protocol - no bridge required.

Perfect for robotics developers, researchers, and autonomous systems engineers who need high-quality sensor data from iOS devices.

✨ Features

🎯 Multiple Sensors

IMU (9-axis), GPS, Camera, LiDAR, Barometer, Magnetometer, Game Controller, and more

🔗 Native ROS 2

Direct rmw_zenoh_cpp compatibility. Works with Humble and Jazzy. No bridge needed.

⚡ Real-Time Streaming

Low-latency sensor publishing up to 100 Hz. Configurable QoS and rates.

🎛️ Full Control

Enable only the sensors you need. Adjust publishing rates and QoS settings per sensor.

📷 Multi-Camera Support

Publish from multiple cameras simultaneously. Front, wide, ultra-wide, and telephoto.

🔒 Privacy-First

All data stays on your local network. No cloud. No tracking. Fully transparent.

🚀 Use Cases

  • Mobile Robotics: Use iPhone/iPad as sensor suite for mobile robot development
  • Autonomous Vehicles: Collect high-quality IMU and GPS data for SLAM and localization
  • Drone Research: Stream real-time sensor data from iPhone mounted on drones
  • AR/VR Research: Leverage LiDAR and camera for spatial computing research
  • Education: Teach ROS 2 concepts with accessible iOS sensors
  • Prototyping: Rapid sensor integration without specialized hardware

📊 Supported Sensors

Motion Sensors:

SensorMessage TypeMax RateDescription
IMUsensor_msgs/Imu100 Hz9-axis motion (accel + gyro + mag)
GPSsensor_msgs/NavSatFix1 HzLocation, altitude, accuracy
Magnetic Fieldsensor_msgs/MagneticField100 Hz3-axis magnetic field
Proximitysensor_msgs/Range10 HzObject detection distance (iPhone only)

Perception Sensors:

SensorMessage TypeMax RateDescription
Camerasensor_msgs/CompressedImage15 HzMultiple cameras, JPEG compression
LiDARsensor_msgs/PointCloud210 HzDepth sensing (iPhone 12 Pro+)

Status Sensors:

SensorMessage TypeMax RateDescription
Batterysensor_msgs/BatteryState1 HzLevel, voltage, charging status
Thermalsensor_msgs/Temperature1 HzDevice temperature state
Barometersensor_msgs/FluidPressure10 HzAtmospheric pressure
Illuminancesensor_msgs/Illuminance10 HzAmbient light sensor
Game Controllersensor_msgs/Joy50 HzBluetooth controller input

🔧 Requirements

Supported Platforms:

  • iOS 16.0+ (iPhone, iPad)
  • visionOS 1.0+ (Apple Vision Pro)
  • macOS 13.0+ (Mac Catalyst)

Platform-Specific Sensor Availability:

  • iOS/iPadOS: All 11 sensors supported
  • visionOS: Camera, IMU, Game Controller (GPS not available - indoor device)
  • macOS: Limited (Camera, Battery, Game Controller - no IMU/GPS)

ROS 2 System:

  • ROS 2 Humble or Jazzy
  • rmw_zenoh_cpp middleware
  • Zenoh router (rmw_zenohd)

📖 Quick Start

  1. Install Conduit from the App Store
  2. Start Zenoh router on your ROS 2 system:
    1
    2
    3
    
    source /opt/ros/jazzy/setup.bash
    export RMW_IMPLEMENTATION=rmw_zenoh_cpp
    ros2 run rmw_zenoh_cpp rmw_zenohd
    
  3. Configure router in Conduit Settings (IP address and port)
  4. Enable sensors from Motion, Perception, or Status tabs
  5. Tap Play to start streaming
  6. Verify topics on your ROS 2 system:
    1
    2
    
    ros2 topic list
    ros2 topic echo /ios/imu
    

💬 Support & Feedback

Get help, report bugs, and request features through GitHub:

📝 Issues & Bug Reports

Create an Issue

  • Bug Reports: App crashes, sensor issues, unexpected behavior
  • Feature Requests: Suggest new features or improvements
  • Connection Issues: Network/router connection problems
  • Support Questions: Setup and configuration help

💬 Community Discussions

Join Discussions

  • Q&A: Ask questions and get answers
  • Setup Help: Get configuration assistance
  • Show and Tell: Share your robotics projects
  • General: Community discussions

📚 Documentation

👨‍💻 Direct Contact

Privacy Policy

Last Updated: December 20, 2025

Conduit is a developer tool that publishes sensor data from iOS devices to ROS 2 (Robot Operating System 2) networks. This privacy policy explains what data the app collects, how it’s used, and your rights.

Developer: Yutaka Kondo (youtalk) · LinkedIn · Website

Data Collection

Sensor Data (User-Controlled)

The app may access and transmit the following sensor data only when you explicitly enable each sensor:

  • Motion Data: Accelerometer, gyroscope, magnetometer readings (IMU)
  • Location Data: GPS coordinates (only while app is in use)
  • Camera Data: Images from device cameras
  • Environmental Data: Barometer, ambient light sensor
  • Device State: Battery level, thermal state
  • LiDAR Data: Depth sensing (on supported devices)
  • Game Controller Input: Button and joystick data

Important Notes:

  • All sensor data collection is opt-in. Sensors are disabled by default.
  • Data is transmitted only to your configured Zenoh router (typically on your local network).
  • No data is sent to our servers or any third-party servers.
  • Background GPS tracking is not supported due to privacy constraints. Location data is only collected while the app is active.

Analytics Data

The app uses Firebase Analytics to collect:

  • Device Information: Device model, OS version
  • App Usage: Feature usage, error occurrences
  • Anonymous Identifiers: Non-personal device identifiers

This data is used solely to improve app functionality and user experience.

How Data Is Used

Sensor Data:

  • Transmitted directly to your configured ROS 2 system via Zenoh protocol
  • Used for robotics development, research, and testing
  • Never stored on our servers
  • Never shared with third parties

Analytics Data:

  • Used to identify bugs and improve app performance
  • Aggregated and anonymized
  • Processed by Google Firebase Analytics (see their privacy policy)

Data Storage and Security

  • Sensor data: Not stored by the app. Transmitted in real-time to your ROS 2 system.
  • Configuration settings: Stored locally on your device using iOS Keychain and UserDefaults.
  • Network transmission: Data is sent over your local network to the Zenoh router you configure.
  • Firebase Analytics: Collects anonymous usage statistics. Subject to Google’s Privacy Policy. You can opt out by disabling analytics in iOS Settings > Privacy > Analytics & Improvements.

Permissions

The app requests the following iOS permissions:

PermissionPurposeRequired
CameraPublish camera images to ROS 2Optional
Location (When In Use)Publish GPS data to ROS 2Optional
Motion & FitnessAccess IMU sensorsOptional
Local NetworkConnect to Zenoh router on your networkRequired

Note: All permissions except Local Network are optional. You can selectively enable only the sensors you need.

Your Rights

You have the right to:

  • Control sensor access: Enable/disable any sensor at any time
  • Delete app data: Uninstall the app to remove all local data
  • Opt out of analytics: Disable analytics in iOS Settings

Data Retention

  • Sensor data: Not retained by the app (transmitted in real-time)
  • Configuration data: Stored until app is uninstalled
  • Analytics data: Retained by Firebase per their retention policy

Policy Updates

We may update this privacy policy from time to time. Changes will be posted on this page with an updated “Last Updated” date.

Contact

For questions or concerns:

Note: This app is designed for developers and researchers. It is not intended for children under 13.