Skip to main content
Version: QTrobot V3

Quick start with coding on QTrobot V3

This document guides you towards quick start coding on the QTrobot v3 using programming languages. If you are looking for graphical programming, please take a look at Quick start with QTrobot studio.

QTrobot is built around two onboard computers connected over an internal ethernet link: QTRP (Raspberry Pi based), which drives the face, speakers, microphone array and motors, and QTPC (an Intel® NUC or Nvidia Jetson), which provides the bulk of the computing power for your applications. It also includes a 3D camera and the usual USB-C/USB expansion for keyboard, mouse and monitor.

architecture

What's new in QTrobot V3 is the software stack running on top of that hardware:

  • Refreshed operating systems, all moved to current long-term-support releases:

    • QTPC (NUC) → Ubuntu 24.04 LTS
    • QTPC (Jetson) → JetPack 7.2 (Ubuntu 24.04 based)
    • QTRP → Debian GNU/Linux 13 "trixie" for Raspberry Pi

    Across all of them, this brings Python 3.12.3 as the system Python.

  • A new software architecture. QTrobot no longer requires ROS as its core middleware. Instead, it's built on the powerful Magpie, a lightweight, transport-agnostic pub/sub and RPC layer, with a set of gateways that expose the robot over ZMQ, MQTT, WebRTC or ROS2, whichever fits your setup. On top of that, LuxAI provides official Python and TypeScript/Node.js SDKs, plus first-class ROS2 support for teams that prefer to stay in a ROS-based stack. See the Software Overview page for the full picture.

  • Always up to date. Every QTrobot software component, including the service hub, the gateways and drivers, is now distributed as a regular package and kept current with a plain apt update && apt upgrade, on QTRP and on QTPC (both NUC and Jetson variants).

Prepare your setup

There are a few ways to develop code for QTrobot. We strongly recommend starting directly on QTrobot's integrated QTPC. As shown below, you'll need:

 

a keyboard,
  a mouse,
  and a monitor with an HDMI/DisplayPort cable.

rdsetup

1. Connect keyboard/mouse and monitor

Connect your keyboard, mouse and monitor to QTrobot. If your QTrobot has a USB-C port, use the provided USB-C extension hub to connect them; if it has standard USB and DisplayPort, use the provided DisplayPort-to-HDMI cable for the monitor and the USB ports for the keyboard and mouse.

2. Turn QTrobot on

To turn QTrobot on, plug in its power supply. This starts the boot process, and QTrobot is ready in under a minute: the face lights up and the motors move to their home position.

To turn QTrobot off, press the power button on the back of QTrobot; this shuts down both QTRP and QTPC. Wait for the face screen (which usually turns blue before shutting down) to go off completely, then unplug the power supply. Always unplug QTrobot when it's off.

Use the official power supply
  • Only use the power supply provided with your QTrobot.
  • Always unplug QTrobot when it's off.

3. Wait for QTPC to boot

QTPC may take a little longer than QTRP to boot, so give it a moment. Once it's up, you'll see its Ubuntu desktop, ready to use like any standard Linux development machine.

You're now ready for coding. In most cases you'll also want internet access; the next section walks you through connecting QTrobot to your network.

Connect to the internet

QTRP and QTPC talk to each other over a fixed internal link: QTPC is 10.231.0.1 and QTRP is 10.231.0.2. QTRP's own Wi-Fi radio is no longer used and stays disabled; all networking, including internet access, now goes through QTPC.

This is a deliberate simplification: connecting QTrobot to the internet is now exactly like connecting any Ubuntu desktop PC. Open the network settings on QTPC's desktop and connect to your Wi-Fi or plug in an ethernet cable, the same way you would on any laptop:

Because this uses QTPC's standard NetworkManager, it also works out of the box with more complex networks that require username/password or certificate-based authentication (WPA2-Enterprise, EAP-TLS, etc.).

Once QTPC has internet access, it automatically shares it with QTRP over the internal 10.231.0.x link; there's nothing else to configure.

Accessing QTRP

QTRP is reachable by hostname from a terminal on QTPC:

ssh qtrp
# password: qtrobot

In day-to-day use you shouldn't need this much: QTPC is your development playground, and QTRP is not meant for coding or running your applications. The only time you'd normally touch QTRP is for low-level configuration of system services such as qtrobot-service-hub, which is covered separately where relevant.


Start coding

The fastest way to get a feel for the stack is the Python SDK:

mkdir ~/example
cd ~/example
python -m venv .venv
source .venv/bin/activate

pip install luxai-robot
from luxai.robot.core import Robot

robot = Robot.connect_zmq(robot_id="QTRD000123")
robot.tts.say_text("Hello, I am QTrobot.")

QTrobot V3 supports three programming interfaces — pick whichever matches your stack: