FindingNiryoParticipantDecember 5, 2018 at 8:48 pmPost count: 88
I have succeeded in controlling NiryoOne from a remote location. The robot arm is connected to local WiFi (not in host mode) and I have set a rule in the firewall to pass port 9090 to the IP address of the robot. I can connect NirYo One Studio from outside the firewall to the domain IP and control the robot. I would like to be able to control more than one robot at the host domain.
I would not want to hard code additional ports (9091, 9092, etc.). Maybe one robot connected to Wifi could scan for other robots in host mode (returning connection list to NiryoOne Studio). Then route control / status messages to/from the hosting robots through the firewall to NiryoOne Studio? What sort of architecture would you suggest?Edouard RenardKeymasterDecember 7, 2018 at 6:52 pmPost count: 211
If you connect all the robots to the same Wi-Fi network, they will all have a unique IP address, and they will all use the port 9090 (rosbridge package). So, no need to create additional port here.
Also, using one robot to scan other robots might not work as you want. To communicate, 2 robots should be on the same network. You can’t have one robot connected to 2 Wi-Fi network (for ex: the main router, and another Niryo One in hotspot mode), and you can’t either have one robot connected to 1 Wi-FI network (the main router) while being itself a hostpot for another robot.
And then, using one robot to make a bridge between all the robots and the router would require some work with ROS and the rosbridge package. You’d have to find a way to add some prefixes on topics, nodes, etc for all the robots, so the messages don’t get mixed (and bad news: doing that is not really easy with ROS and sometimes quite buggy).
Connecting all robots to the same Wi-Fi network seems the best solution to me.
Though let me know if this really answers your question, I feel that I might have misunderstood something here.FindingNiryoParticipantDecember 10, 2018 at 2:32 pmPost count: 88
From inside the firewall all NiryoOne arms have unique IP address, but from outside the firewall only the host domain IP address is visible. A rule on the firewall translates outside traffic on port 9090 to one of the robot arms inside the firewall. Mapping port 9090 to all robots in the WiFi network would not work. All robots would receive the same instructions and would result in NiryoOne Studio getting return data from all of the arms.
This is why I mentioned creating additional ports (say in the range 41000-42000) firewall rules would map each port to a different robot on the WiFi. NiryoOne Studio would be able to connect to multiple robots from outside the firewall (was hoping to avoid creating the firewall rules).Edouard RenardKeymasterDecember 10, 2018 at 4:48 pmPost count: 211
Oh OK I see, I understand better now.
You could also try to setup something like a NAT after your firewall, so you could still use the different IP addresses (though I’m not a network specialist so I’m not sure how feasible this might be).
The solution you propose (changing ports for websocket communication with rosbridge_suite) is also a nice one, however note that for now, NiryoOneStudio only works with port 9090 by default. We may add the possibility to set a custom port in a next software update. In fact, I’ll add that to our feature backlog.FindingNiryoParticipantJanuary 22, 2019 at 3:03 pmPost count: 88
Could you give me a sense of when “possibility to set a custom port” might be available?
You must be logged in to reply to this topic.