NVIDIA Jetson Thor + ROS 2 + Flutter: Building a Robot Control Dashboard
Introduction
A practical robotics architecture is:
Robot Sensors
|
v
NVIDIA Jetson
|
ROS 2
|
+----> Robot Control
|
+----> FastAPI/WebSocket
|
v
Flutter
1. Create ROS 2 topics
For example:
/robot/battery
/robot/pose
/robot/camera
/robot/cmd_vel
2. Create a ROS 2 publisher
Python example:
import rclpy
from geometry_msgs.msg import Twist
node = rclpy.create_node("flutter_gateway")
publisher = node.create_publisher(Twist, "/robot/cmd_vel", 10)
msg = Twist()
msg.linear.x = 0.2
publisher.publish(msg)
3. Add a gateway
Instead of exposing ROS 2 directly to the internet, create a local service:
ROS 2 <-> Gateway <-> WebSocket <-> Flutter
The gateway can authenticate clients and validate commands.
4. Flutter WebSocket client
final channel = WebSocketChannel.connect(
Uri.parse('wss://robot.example/ws'),
);
channel.stream.listen((event) {
print(event);
});
5. Send commands
channel.sink.add(
'{"type":"velocity","linear":0.2,"angular":0.0}',
);
The gateway should validate limits before publishing to ROS 2.
6. Add telemetry
Stream:
- Battery.
- CPU/GPU usage.
- Robot pose.
- Current mission.
- Connection state.
- Camera status.
7. Edge deployment
Jetson should perform latency-sensitive processing locally where possible. Cloud services can be used for non-critical analytics or remote management.
Conclusion
Jetson + ROS 2 + Flutter provides a strong pattern for robot operator interfaces, especially when the gateway cleanly separates ROS 2 from the mobile UI.
Useful Links
Website: www.v-modal.com
SDK Flutter: https://github.com/v-modal/vmodal_sdk_flutter
SDK Android: https://github.com/v-modal/vmodal_sdk_android
Discord: https://discord.gg/K72z28KUx
Top comments (0)