This repository contains the Unity project which is able to connect to Robotont (simulated and real), display the map, show the position on the map and send navigation goals.
- ROS machine with ROS Noetic or real Robotont.
- Unity side of things should be done on Windows machine
- Unity Hub
- Enable Developer Mode on Hololens and Windows Machine
- Clone this repository.
- Open Unity Hub.
- If this is your first time using Unity Hub, license should be activated:
- Go to settings (gear in the corner)
- Go to manage license tab.
- Log into Unity account or create one, when asked.
- Press activate new license button.
- Choose personal and choose the answer, which suits you after that.
- Personal license will be acctivated.
- If this is your first time using Unity Hub, license should be activated:
- Press ADD button and choose the Robotont-Robotics-Hub folder.
- Install the unity version, which you will be asked.
- During the installation make sure to check Visual Studio 2019, if you don't have it installed
- And make sure to check Universal Windows Platform (UWP) Support and Windows build support. If you miss this step, you can add them later in the installs tab if you press 3 dots on the Unity version and choose Add Modules option
- After installation open the project. Skip the prompt about new unity version.
- MRTK will prompt you to choose the XR plugin. Choose OpenXR and follow the setup guide provided by the MRTK window.
- In the project panel navigate to Assets/Scenes and double click on RobotontNavigation. This will open the scene in unity.
- In the Hierarchy click on ROSConnectionPrefab game object.
- In Ros Connection (Script) change Ros IP Adress to the IP of your ROS machine.
- Go to File -> Build Settings.
- If you are going to use Robotont, it is recomended to disable the Map Subscriber script in ROSCommunication game object to remove delay it introduces. Just uncheck it.
- This option can be left on for simulated robotont. If map size is not several dozen meters in size and wireless connection as fast, there will be no lag.
- Make sure, that UWP is chosen (if not, choose it and press switch platform)
- Verify that only the current scene is chosen in the Scenes in Build window.
- Set terget device to Hololens and Architecture to ARM64.
- Press build and choose folder where to save the built project.
- After building go to the specified folder and open the solution file.
- Go to Project -> Properties and to Debugging tab.
- Fill in Machine Name with the ip address of the Hololens 2
- Under the menu bar change debug to release, ARM to ARM64 and set to remote machine and press start debugging.
- After deploying to Hololens, app will launch automatically, but you will be able to open it yourself from the app menu on the hololens
- Clone this repository into robotonts catkin workspace.
- Open ROS-TCP-Endpoint/config/params.yaml and change ROS_IP to the IP of robotont.
- Build the package.
- Clone the following Repositories into src folder of your workspace:
- Clone this repository into your catkin workspace.
- Open ROS-TCP-Endpoint/config/params.yaml and change ROS_IP to the IP of your ROS computer.
- Install realsense2-description
sudo apt install ros-noetic-realsense2-description
- Install gmapping
sudo apt install ros-noetic-gmapping
- Build workspace
- Launch 2d_slam with
roslaunch robotont_demos 2d_slam.launch
- Launch ros_tcp_endpoint
roslaunch ros_tcp_endpoint endpoint.launch
Minimaze is going to be used.
- Launch simulated robotont with
roslaunch robotont_gazebo world_minimaze.launch
- Launch 2d_slam with
roslaunch robotont_demos 2d_slam.launch
- Launch ros_tcp_endpoint
roslaunch ros_tcp_endpoint endpoint.launch
- Make sure to be in the same network as ROS machine.
- Start the Robotont-Robotics-Hub app
- If the setup is done correctly, Hololens will connect to the ROS machine and you will be able to set the goal for the robotont to while observing the movement. If map was left enabled, then it will also be displayed.