I am trying to create a server dashboard using Python that is linked to a number of devices (eg. sensors, conveyor, cameras and other robot brands) using an ethernet port switch, and send/receive data to Sawyer using this Dashboard and have a few questions. This dashboard is in the server PC with the following wired connection:
Server PC > Port Switches > Sawyer (and other devices)
I have referred to this link below but I would like to get more flexibility to control it (trajectory control etc) so I was looking into the SDK tutorials. https://mfg.rethinkrobotics.com/intera/Using_TCP/IP
I have tested the examples for the Sawyer in Oracle VM and made a sample program to run it. It resembles the program seen here: https://sdk.rethinkrobotics.com/intera/Hello_Robot
1. How do I for example, retrieve joint angle (and maybe camera image) and show it in my dashboard? Have anyone done something like this before? Generally, I will have these shown in the dashboard:
robot status (eg idle/ready/stopped/error)
program name
camera image
joint angles
2. I plan to have my (currently non-existent) dashboard outside of the VM but in the same PC. How do I establish the communication to the robot from outside the VM? I have tried using the same leading IP address as my WiFi (NAT) but I cannot get a connection without disabling my NAT or PCIE. Individual connections was tested to be working fine so I think my error is about using WiFi and PCIE together.
Connections:
1. PC <-> VM (NAT)
2. VM <-> Sawyer (PCIE) by TCP/IP
Network:
NAT: 192.168.1.3
subnet: 255.255.255.0
PCIE: 192.168.1.105
subnet: 255.255.255.0
Sawyer: 192.168.1.100
subnet: 255.255.255.0
Additional Info:
Ubuntu 16.04 + ROS Kinetic
Intera 5.3
3. I assume I needed to have a program for server (PC) and client (VM) so I made a sample socket client server program. I did try using packet sender to send data through TCP/IP in Intera and back from Sawyer. Can I do the same with sockets?
This is my first time doing this so I appreciate any guidance you guys can provide. Thanks.
client_echo.py
server_echo.py