Project for real-time coordinate system visualization for KUKA robots. Developed as the engineering project that verifies acquired competencies at the end of bachelor's degree.
- KUKA AR app π¦Ύ
Project consists of:
- server-side Java Spring app that manages incoming and outgoing data
- client-side Android Unity app that provides visualization of coordinate system for a user
Its main purpose is to acquire data from target KUKA robot using LAN, process the data and transmit it to the client app.
Requests data from the server. Uses received data and capabilities of Android device with AR Foundation package to visualize coordinate system of connected robot in real-time.
-
Image recognition - in order to quickly distinguish between many configured robots, target image system is used as a way to uniquely identify a specific robot.
-
AR Anchor Placement system - to keep track of coordinate systems in space, anchor is placed on the detected image, this allows user to move around and maintain a constant position of displayed coordinate systems.
-
Communication with server database over HTTP - to store and manage configured robots that user wants to track, CRUD methods with local database are used.
-
Instant data acquisition using WebSocket - for more frequent updates and faster reactions to changes in the position of the coordinate system, WebSocket protocol is used.
Download current version from Releases
tab OR clone project repository to your local drive.
Skip this section if you downloaded .jar and .apk files from
Releases
tab
-
Go to project directory:
- kukaComm:
./java/kukaComm
- testSocket:
./java/testSocket
More information about which one to choose can be found in Available configurations section.
- kukaComm:
-
Enter command:
mvn clean install
-
Open project in Unity editor.
-
Plug you phone and turn on developer mode
If you have any questions go to Troubleshooting section.
-
In the editor go to:
File > Build Settings... > Select Android as Platform > Build and Run
-
Wait until the build is finished and enjoy.
-
Connect to the same local network as your server
-
Check for IPv4 address of the machine that your server is deployed on
You can use
ipconfig
in command line, here's the sample excerpt:Wireless LAN adapter WiFi: Connection-specific DNS Suffix . : Link-local IPv6 Address . . . . . : <hidden> IPv4 Address. . . . . . . . . . . : 192.168.1.25
-
Start the app and provide the address of your server from previous step
-
Check
test connection
buttonIf everything is set-up correctly, app should display green checkmark. Proceed to Troubleshooting if you encountered any problems.
Dedicated server side application that serves as a middle-man between KUKA robot and Android application. We recommend using it whenever you have an access to physical robot.
Side project that was created for an easier Android app development. It sends data similar in values and identical in form as KukaComm
, but those values are mocked on the server side. It is used when implementing new features or debugging an Android app. Eliminates the need for a robot or a robot connection access.
In order to receive data and work properly, both applications have to be connected to the same network.
After installation:
- Open an app
- Enter valid server IP address
- Open bottom navigation menu
- Robot actions:
- Observe coords systems:
- Open bottom navigation menu
- Select robot that you would like to observe
- Add new robot:
- Click
+
sign in the left bottom corner - Fill the necessary fields
- Hit the 'save' button
- Go to point 4.1
- Click
- Observe coords systems:
- Enjoy
For more info refer to instruction.
Check if:
-
Android app is configured with a correct server IP address
More options icon > Reconfigure server > *here enter correct IP address*
More options icon can be found in left upper corner of your phone.
-
Chosen Spring server (either KukaCommm or TestSocket is running
-
Android device is connected to the the same network as a server
Check if you have Developer options
enabled on your device:
Settings > System > About phone - click on it several times
Usual amout of click is between 7 and 10. Remember that location of About phone
tab can differ between manufacturers.
Go to:
Settings > Developer Options > Revoke USB debugging authorization
if Revoke USB debugging authorization
is not available, do not worry.
Turn off and then on USB debugging and confirm all popups.
If your device shows a window with option to send the app for Google Play store check, please skip it as this app currently is not avaliable in production ready state.
Check if you have "install from unknown sources" enabled in your device settings. If so, then try to install it several time and if popup with warning occurs - ignore it. If this won't help try to install a previous version.
To run .jar
file, java JDK is required. Recommended version for this project is Java JDK 17 Termurin.
If you encounter any bugs, issues or if you are missing any feature - feel free to submit an issue. Describe a problem or feature as precisly as you can and mark it with proper label.
Any contribution is welcome. If there are not any issues currently requested by users feel free to submit new one, and get started working over it.