diff --git a/README.md b/README.md index 9681283ae8560e811eb8a8faeb1cf3bf5379a7a5..dcf84ba5d589e70e85e80dd8e332cc21e12fd46c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # ABB EGM instructions +[TOC] + ## Requirements - A robot with a license to run EGM and with EGM installed @@ -8,7 +10,7 @@ ## Setup -You can skip this and "Unpack and work" from the included [rspag file](./robotstudio/EGM_Example_IRB14000_RW608.rspag) if you just need a station to test things with. +You can skip this and "Unpack and work" from the included [`.rspag` file](./robotstudio/EGM_Example_IRB14000_RW608.rspag) if you just need a station to test things with. ### Setup on controller @@ -23,7 +25,7 @@ connected to LU's network. #### 2. Install RobotWare -Install RobotWare by going to the Add-in tab on the ribbon in Robotstudio and selecting: +Install RobotWare by going to the Add-In tab on the ribbon in RobotStudio and selecting: 1. RobotApps 1. Gallery @@ -44,7 +46,7 @@ If you are using a real controller, skip to next step. 1. New 1. Solution with Station and Virtual Controller 1. Give the solution a name and location -1. Select controller version (6.13.01) +1. Select controller version 1. Select desired robot, tick Customize options 1. Press create. 1. Add the EGM option found under Change Options > Engineering Tools. @@ -68,7 +70,7 @@ If you are connected to the service port you should be able to use "One-click Co #### 4. Set up address and ports to listen on -Add UCDevice (ip and port of your computer) by: +Add UCDevice (IP and port of your computer) by: 1. Open the Controller tab in the ribbon. 1. Select Configuration @@ -79,8 +81,11 @@ Add UCDevice (ip and port of your computer) by: 1. Define your UCDevice 1. Give it a name 1. Set type to UDPUC - 1. Set remote address to 127.0.0.1 (localhost) - 1. Change remote port to something suitable (e.g. 6510) + 1. Set remote address to `127.0.0.1` (localhost) or to the IP of your computer + on a network accessible to the robot controller. See + [Network interfaces on the IRC5](#network-interfaces-on-the-irc5) for more details. + 1. Change remote port to something suitable (e.g. `6510`) + 1. Leave local port as 0 if the field exists. If you are using the Yumi you need to add one UCDevice for each arm. @@ -98,10 +103,10 @@ Restart controller to load new system parameters. 1. Remove `Module1.mod` to T_ROB_L and/or T_ROB_R.  -1. Add `rapid/egm_example_yumi.mod` to T_ROB_L and/or T_ROB_R if you are using Yumi. - Otherwise use `rapid/egm_example.mod`. +1. Add [egm_example_yumi.mod](./rapid/egm_example_yumi.mod) to `T_ROB_L` and/or + `T_ROB_R` if you are using Yumi. Otherwise use [egm_example.mod](./rapid/egm_example.mod).  -1. Modify the `egm_setup.mod` to refer to the correct UCDevice. +1. Modify the `egm_example.mod` to refer to the correct UCDevice.  ### Python environment setup @@ -127,6 +132,34 @@ venv/bin/activate # or source venv/bin/activate on linux pip install protobuf ``` -### Installation & usage of `abb_egm_pyclient` +## Usage See [abb-egm-pyclient](https://gitlab.control.lth.se/tetov/abb_egm_pyclient). + +## Notes + +### Network interfaces on the IRC5 + +The robot controller is typically equipped with two network interfaces, the +`WAN` port and the `Service` port. + +The `WAN` port behaves like a typical ethernet interface and can be connected to +a router and assigned either a static or dynamic IP. + +The `Service` port on the other hand is connected to an internal routing device +operating on the subnet `192.168.125.0/24` (`192.168.125.1` - `192.168.125.255`) +where the IRC5 has the IP `192.168.125.1`. Devices connected to the service port +(directly or through a switch) gets assigned an IP if configured for dynamic +(DHCP) assignment. + +While typically quite useful this becomes a nuisance when your device gets +assigned an unexpected IP-address, since changes to `UCDevice`'s requires a +restart. Normally this could be solved by reserving IPs based on MAC addresses, +but the IRC5 router does not provide this functionality. + +However, you could manually assign your device any IP in the subnet as long as +there no address collision. The router starts assigning IPs at `192.168.125.5` +so IPs higher than 50 should be safe. + +[Windows instructions](https://support.microsoft.com/en-us/windows/change-tcp-ip-settings-bd0a07af-15f5-cd6a-363f-ca2b6f391ace) +(use subnet length 24 and leave DNS fields blank).