JoyNode and QCGroundControl


So I have qcgroundcontrol up and calibrated most of everything except the radio.

However certain parameters are not named the same or are simply non existent such as any of the BTN1_FUNCTION or any of those. I just dont see them in any category. In addition, things like EK_ALT_NOISE didn’t exist either. Everything in the EK subgroup was EK2_ prefix’d.

Secondly, despite this I tried launching the bluerov_r1. launch and then the teleop node and anytime I try to use any of the buttons, the teleop node sends an output that :

" Connection to Joystick device lost unexpectedly. Will reopen"

It then reconnects but if any button is pressed it just constantly disconnects and reconnects on press. Any thoughts?


EDIT: The firmware I compiled from source was the px4-v2-bluerov

Hi Samir,

It sounds like you might be using a fairly old version of the code. Did you get it from Github? I would recommend trying again with the most recent code in the repository.

You can send all of the joystick control messages directly from QGroundControl instead of ROS. Are you using ROS for any particular reason?



We just were looking to integrate with ROS completely if possible. I got my code from this link here: ardusub/ArduSub at master · bluerobotics/ardusub · GitHub

and followed the install instructions here ->

Is that all correct?

Thanks for the quick response Rusty!


Okay. That should be correct. How long ago did you download the code? The joystick button configuration has been added in the last two weeks so you might just have to get a fresh copy.

Let me know if that works!


Rusty I have gotten the updated version. I just realized the answer to your previous question.

The purpose of using ros is I wanted to be able to run the bluerov_r1.launch node and test the thrusters. The way I have been currently calibrating using QCGroundcontrol is via the USB link to the pixhawk. But to run the bluerov_r1.launch…there needs that USB to be connected to the raspi. So I can’t quite control using the joystick here because QCGroundcontrol wont detect the pixhawk if its not connected via USB.

I saw something about a serial connection however I think im missing some steps on what I need to do so I can connect via some other method. Help is appreciated sir!


Okay. Sounds good. The current ArduSub software only accepts pilot input messages, which means you won’t be able to individually control the thrusters.

Also, the ROS code will only work if it has a serial connection to the PixHawk. That can be through USB or through one of the telem ports. How do you have it connected right now?



I have it connected through USB currently and all nodes are functional. However the joy node while it connects, constantly has the disconnect problem I posed originally.



Okay. I’m not all that familiar with the ROS joystick code. I imagine a lot of it would have to do with the specific joystick and the drivers that your computer is using. ROS most likely uses SDL or a similar abstraction layer to communicate with the joystick.

What joystick are you using?



Im using an f310 with the bluerov_apps node teleop_f310. The issue here is that if I run it when the bluerov_r1 is not running, I can see it publish the correct information on a rostopic echo of /joy. However its when this launch node is launched does it not work as intended.