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.
- Rosbridge & Foxglove — connect via
rosbridge_server(port 9090) orfoxglove_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
| 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.
- Node.js and npm
- Expo CLI
- A ROS2 robot running
rosbridge_serverorfoxglove_bridge
# Install rosbridge
sudo apt install ros-${ROS_DISTRO}-rosbridge-suite
# Launch it
ros2 launch rosbridge_server rosbridge_websocket_launch.xmlgit clone https://github.com/baunuri/rosdeck.git
cd rosdeck
cp app.json.example app.json
cp eas.json.example eas.json
npm install
npm startEdit app.json with your own slug, bundleIdentifier, package, and EAS projectId before building.
npm run build:android-debug # Debug APK
npm run build:android-preview # Release APK
npm run build:android-production # AAB for Play Storeapp/(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
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.
