Miscellaneous - FAQ

Can't find what you're looking for?


This QTrobot FAQ is a summary of the issues from our Github repo. You can always open a new issue/feature request for any interfaces and we do our best to fix/implement them.

1. Can I do a backup of QTrobot?

QTrobot has two computational components:

  • RPI (Ubuntu 16.04 LTS)
  • Intel NUC PC (Ubuntu 16.04 LTS)

Except Nuitrack ROS interface (qt_nuitrack_app) all other qt software are running on RPI. qt_nuitrack_app and other demo apps are all available on our github and you can recover/update it whenever you want.

You can backup the config files of RPI for your own recovery. All QTrobot startup scripts, gestures, emotions, etc. are located under ~/robot folder in RPI.

In case of emergency recovery, we can send you the SD card image. we can prepare this image somehow you can flash it to a USB stick, plug it into QTrobot (USB) to recover the image.

2. Can I use C# to program QTrobot?

QTrobot APIs are based on the most popular software framework in robotic, ROS – a publish/subscribe middleware. ROS by default supports C++ and Python but other languages are covered via different open-source and well-maintained client libraries.

Indeed you can use C# to program QTrobot. You can refer to ros-sharp open-source library which leverages websockets for underlying communication and cover all QTrobot APIs. It has good integration with Unity3D too.

We have also developed different Android apps using websockets in Jscript and using native Java APIs for our robot.

3. How to connect Bluetooth mouse/keyboard to QTrobot?

This tutorial explain how to pair and connect a Bluetooth mouse/keyboard to QTrobot NUC pc via terminal/ssh. The same procedure works also for RPI.

Notice: for RPI you may need to run the bluetoothctl with sudo!

Step 1: ssh to QTPC

connect to the QTrobot wifi and ssh into QTPC:

$ ssh qtrobot@

Step 2: launch bluetoothctl

qtrobot@QTPC:~$ bluetoothctl
[NEW] Controller F8:63:3F:40:61:B2 QTPC [default]

Step 3: turn bluetooth power on and register the agent

[bluetooth]# power on
Changing power on succeeded

[bluetooth]# agent on
Agent registered

[bluetooth]# default-agent
Default agent request successful

Step 4: scan and pair the bluetooth device

to scan the bluettoth devices:

[bluetooth]# scan on
Discovery started
[CHG] Controller F8:63:3F:40:61:B2 Discovering: yes
[CHG] Device 17:13:00:00:8A:04 Name: Bluetooth 3.0 Keyboard
in my case Device 17:13:00:00:8A:04 Name: Bluetooth 3.0 Keyboard is what I am looking for. Now to pair the bluetooth device:
[bluetooth]# pair 17:13:00:00:8A:04
Attempting to pair with 17:13:00:00:8A:04
[CHG] Device 17:13:00:00:8A:04 Connected: yes
[agent] PIN code: xxxx
[CHG] Device 17:13:00:00:8A:04 Paired: yes
Pairing successful
Some keyboards require to type a PIN code for pairing. Just type the code using your bluetooth keyboard. You do not see anything on the terminal. The code is sent directly by your keyboard while you are typing it.

Step 5: trust and connect to the device:

trust the device:

[bluetooth]# trust 17:13:00:00:8A:04
[CHG] Device 17:13:00:00:8A:04 Trusted: yes
and finally connect to the bluettoh/keyboard mouse:
[bluetooth]# connect 17:13:00:00:8A:04
Attempting to connect to 17:13:00:00:8A:04
[CHG] Device 17:13:00:00:8A:04 Connected: yes
Connection successful

4. Is QTrobot SDK open source?

QTrobot SDK software is not licensed as ope source. For the time being, we do not have any plan to make them open source. But these are just few software components which implement the required basic ROS interfaces such as motor control, gesture, speech, emotion. The main components (implemented as ROS node) are:

  • qt_motor including motor_controller and gesture_controller plugins implement robot motor joints control and robot gesture record/play functionalities.
  • qt_robot_interface implements speech, audio, basic behavior and setting functionalities.

You can always open a new issue/feature request for those interfaces and we do our best to fix/implement them.

The rest of the codes including all demo application are open source and you are more than welcome to contribute to those. :)

Last update: February 6, 2020