Skip to content

baunuri/rosdeck

Repository files navigation

ROSDeck icon

ROSDeck

A mobile dashboard for ROS2 robots.
Connect over WiFi, add widgets, control everything from your phone.
Sign up for the beta or build it yourself.

Platform ROS2 License


ROSDeck dashboard

Features

  • Rosbridge & Foxglove — connect via rosbridge_server (port 9090) or foxglove_bridge (port 8765)
  • Customizable layouts — tmux-style split panes, save layouts per robot
  • Auto-layout — detects available topics and suggests a layout
  • Demo mode — try the app without a robot

Widgets

Category Widget Message Type
Control Joystick geometry_msgs/Twist, TwistStamped
Sensor Camera sensor_msgs/CompressedImage, Image
Sensor Battery sensor_msgs/BatteryState
Sensor IMU sensor_msgs/Imu, MagneticField
Sensor Line Chart Any numeric topic
Nav Map nav_msgs/OccupancyGrid + TF + LaserScan
Debug Topic Viewer Any topic (raw JSON)
Debug Rosout rcl_interfaces/Log
Debug Diagnostics diagnostic_msgs/DiagnosticArray
Debug TF Tree /tf, /tf_static

The map widget supports Nav2 goal pose publishing, costmap overlays, and laser scan visualization.

Getting Started

Prerequisites

  • Node.js and npm
  • Expo CLI
  • A ROS2 robot running rosbridge_server or foxglove_bridge

Robot Setup

# Install rosbridge
sudo apt install ros-${ROS_DISTRO}-rosbridge-suite

# Launch it
ros2 launch rosbridge_server rosbridge_websocket_launch.xml

App Setup

git clone https://github.com/baunuri/rosdeck.git
cd rosdeck
cp app.json.example app.json
cp eas.json.example eas.json
npm install
npm start

Edit app.json with your own slug, bundleIdentifier, package, and EAS projectId before building.

Build

npm run build:android-debug        # Debug APK
npm run build:android-preview      # Release APK
npm run build:android-production   # AAB for Play Store

Architecture

app/(tabs)/        # Three-tab UI: Connect, Control, Settings
widgets/           # Widget definitions and components
stores/            # Zustand state management
lib/               # Transport layers (rosbridge, foxglove, demo)
components/        # Shared React Native components
types/             # TypeScript interfaces

License

GPLv3 — see LICENSE.

You can build and use this app freely. If you distribute a modified version, you must open-source your changes under the same license.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors