Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

change topic name for the multiple agents #14113

Closed
wants to merge 1 commit into from
Closed

change topic name for the multiple agents #14113

wants to merge 1 commit into from

Conversation

stmoon
Copy link
Contributor

@stmoon stmoon commented Feb 6, 2020

Describe problem solved by this pull request
When I use RTPS for the multiple drones, I found each drone has the same topic name.

Describe your solution
To distinguish the topic name, I attached the "agent" with the sys ID.
For the backward compatibility, if the sys ID does not set, the topic name is the same as before

Thanks
SungTae Moon

@stmoon
Copy link
Contributor Author

stmoon commented Feb 9, 2020

@TSC21 Hi,

Are there some problems with that? If you advise me, I will update it.
After that, I hope to contribute to other things related to this problem.

Thanks.
stmoon

Copy link
Member

@TSC21 TSC21 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stmoon I think that what you are tackling is something quite specific which is not the purpose of the bridge itself. The bridge is not made for multi-entity client control and air communication. It's rather made for internal/onboard communication between a single agent, running on a companion computer, and a single client, running on the autopilot. We do not recommend using RTPS/DDS for in-air communication - that's the purpose of Mavlink.

@TSC21
Copy link
Member

TSC21 commented Feb 9, 2020

Just to note that this is not a "problem" as you describe it. Might me a problem to you since you are using the bridge in a way, but not a problem for the purpose of the bridge and for what we are aiming it to - onboard self-contained one-to-one communication between ROS2 topics in a mission/companion computer and uORB topics in the autopilot.

@stmoon
Copy link
Contributor Author

stmoon commented Feb 9, 2020

@TSC21 Thank you for your kind comment !! :-)

I'm sorry to confuse you. Actually, It is no problem, just improvement.
This contribution is related to multiple drones (yes, I call it agents. sorry about it)
As you know, when I control multiple drones (each drone has one pixhawk and one companion board), we need a different topic name. However, the traditional method uses the same topic name.
To distinguish each drone topic name, I think it is better to use sys id.
For example, if I want to control drone1(sys id: 1) and drone2 (sys id: 2), I use different RTPS topic name (/agent1/sensorcombined, /agent2/sensorcombined)

That's why I contribute to it for multiple drones.

Thanks in advance
stmoon

@stmoon
Copy link
Contributor Author

stmoon commented Feb 9, 2020

@TSC21

In addition, I think that ROS2 is developed for multiple robots(in our case, drone). As you know, ROS2 considers the network environment for good performance.

So, If we use mavlink protocol again after converting RTPS, I think it is a waste of work.

@stmoon stmoon requested a review from TSC21 February 9, 2020 12:08
@TSC21
Copy link
Member

TSC21 commented Feb 9, 2020

@TSC21

In addition, I think that ROS2 is developed for multiple robots(in our case, drone). As you know, ROS2 considers the network environment for good performance.

So, If we use mavlink protocol again after converting RTPS, I think it is a waste of work.

I don't think you understood the main purpose of the bridge if you are saying this is a waste of work. Giving access to the internals of the autopilot through a ROS network is by itself a security issue. The bridge by itself allows you to do that but that's not what is aimed for, as I explained before. If you want to control multiple vehicles through ROS2, then you need to make sure that you are not sending messages directly parsed to the autopilot, since this will mean a direct violation of the autopilot authority.

You are supposed to use the bridge to internal aircraft communication, not in-air communication. And this is explained on the documentation and I also spoke about it on the 2019 PX4 Developer Summit, which talk you can see here if you are interested.

@stmoon
Copy link
Contributor Author

stmoon commented Feb 9, 2020

@TSC21

Thank you so much for your comment.

I agree with what you say if there are these security issues. I think it is very important in UTM.

Ok... I will close it.

I have a question about that.

In my case, I just use a single network and there is no security issue.
What do you think about RTPS being used directly between drones and GCS without mavlink in this case?
As you said before, I have used ROS2 between drones and GCS. I dislike to convert RTPS -> mavlink -> RTPS for communication with GCS. In addition, I hope to communicate with each drone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants