MAVLink Router doesn't working on Ubuntu - Mission Planner using UDP

Hi,
We installed Ubuntu on Jetson Nano, and we installed MAVLink Router (GitHub - mavlink-router/mavlink-router: Route mavlink packets between endpoints) to Jetson Nano. (by following the steps in that link)

We runned mavlink-routerd, and we read some messages on Ubuntu terminal such as,

message from 255: REQUEST_DATA_STREAM { target_system : 0, target_component : 0, req_stream_id : 3, req_message_rate : 2, start_stop : 1 }

message from 255: HEARTBEAT { type : 6, autopilot : 8, base_mode : 0, custom_mode : 0, system_status : 0, mavlink_version : 3 }

our sender&receiver example is :

$ python3 examples/sender.py 127.0.0.1:14550 1 0

→ //udp port 14550, sysid = 1, target_system = 0 // (broadcast)

$ python3 examples/receiver.py 127.0.0.1:5760 50

50 = receiver sysid

Then, to route between those:

$ mavlink-routerd -e 127.0.0.1:14550 0.0.0:5760

But, “we don’t route this MAVLink message traffic to Mission Planner using UDP”

For this situation, we need your advices, recommends and supports :slight_smile:

Thanks for your feedbacks already.

Berkay Erol

It is unclear what you are trying to achieve. Please tell me more about your current setup. Example in here is a brief explanation of how to route MAVLink messages from source to destination (source and destination communicate through loopback on the same machine). Do you want to stream the packages to remote?

What you wanted to do it in here? Shouldn’t it be “0.0.0.0”?

Hi, Mr. Gokce
First of all, thanks for your answer.
I wanted to elaborate as I understood from your message, I hope I understood the details you wanted.

1-) We tried Mavlink Router as seen from this system diagram.
According to this system diagram, I thought sysid and compid should be like this.
(based on information on this site: Messages (common) · MAVLink Developer Guide)
However, there was no communication and the code gave an error.

In my previous message, we saw the communication messages with the sender&receiver example there, but we could not transfer the messages to MP via UDP (local device).

In fact, I tried to show the system we need to build as follows. (Remote Device)
This is exactly what we want to do :

2-) How can we know that a UDP port belongs to MP or Jetson Nano via Ubuntu terminal?
I tried " $ sudo netstat -tulpn" but couldn’t find it.

“Actually, I’m asking you to help us with the routing code and defining endpoints part.”

(sources we used :

https://ardupilot.org/dev/docs/mavlink-routing-in-ardupilot.html
https://mavlink.io/en/guide/routing.html
MAVLink Basics — Dev documentation )

Thanks for your feedback already.

Berkay Erol

The thing you specify with -e is the destination. And the other at the end is the source. So the steps are:

  1. Run sender.py on your nano like: python3 sender.py 127.0.0.1:3000 100 0. Don’t change the loopback address.
  2. Run mavlink-routerd on your nano like: mavlink-routerd -e 192.168.1.110:4000 127.0.0.1:3000. This will route your loopback port 3000 to remote machine at 4000 port. Change the part 192.168.1.110 with your remote machine’s IP address.
  3. Now at your remote machine, run: python3 receiver.py 192.168.1.110:4000 50. This will grab the stream and you should be able to see ping messages on both receiver and sender. Again change the part 192.168.1.110 with your remote machine’s IP address.

This should work since I just tried. If it is not working, check your network configurations.