Overview
External communication subsystem allows users to call the robot to a specific room on the AEC 4th floor. The external communication website includes a drop-down list for the users to choose they room they want the robot to go and whether they need delivery option or not. It also has a floor plan where users can see the layout of the floor, and the website will also provide instructions for users. Users can call over the robot to a specific room by choosing the room on the website, and the website will ask users to confirm their choice and specify if they want the delivery service and the recipient. External communication subsystem is related to the navigation subsystem and the website will also be displayed on the UI module. The external communication subsystem provides opportunities to the users for assigning specific tasks for the robot by a website, and users can access to the website through all kinds of devices.
Current Research
A web server is running using Node.js, HTML/CSS and JavaScript are used for setting up the website. On the website, there are instructions which ask users to choose the room that they want the robot to go to. Users can choose the room and delivery recipient by selecting the options in the drop-down list. There is also a reference picture of all the rooms on the AEC 4th floor. There are three drop down lists for users to choose. The first is the room number, and users need to choose which room they want the robot to go. The second one is the delivery option, and if users want to use the delivery service, they are required to choose the recipient. When users click on the “Confirm” button, the confirmed data will be sent to the server, and the state machine will help to convert the room number to specific coordinates and send it to the Jetson Nano.
Future Research
In conclusion, the external communication is designed to allow interactions between users and the robot using a website. At this moment, the web server and the website are completed.
The future work includes setting up static ip address and haveing all the data read from a csv file.
Literature Review
ROS and Web Applications
Chapter 12 of this book talks about how to control the robot over the web. It first introduces some open source modules and packages for building robot web applications. Those packages can fetch information from ROS and convert web commands into ROS services. It also gives examples of tele-operating and visualizing a robot over a web browser and using speech to control a robot over a web browser. This book will be helpful for us to design the web-based control of the robot using a map.
Map-based Navigation using ROS
https://edu.gaitech.hk/turtlebot/map-navigation.html
This tutorial demonstrates how to build map-based navigation in ROS using python and C++. The sequence is defining the goal locations, sending those goal locations to the navigation stacks to execute the mission and heading towards the goal locations. The program determines the coordinates of several goal locations on a map, and after the user presses a key, it will execute moveToGoal(x,y). This tutorial will be helpful for us to design the web page for the user to call the robot to a room.
ROS Blueprints
https://www.youtube.com/watch?v=ySlU5CIXUKE
https://automaticaddison.com/how-to-create-a-map-for-ros-from-a-floor-plan-or-blueprint/
Those tutorials talk about how to convert the floor plan/blueprints into ROS maps. If we have the floorplan of the AEC 4th floor, we are able to create ROS maps for the navigation of the robot.
ROS Navigation Stack
https://www.youtube.com/watch?v=lWrvDUYAFBI
https://www.youtube.com/watch?v=K1ZFkR4YsRQ
Those video tutorials talk about how to provide and load a pre-built map into ROS for the navigation stack.
ROS Pre-specified static maps
This application example allows the robot to navigate autonomously with a pre-specified static map using ROS.
Simulating 2d-navigation stacks with ROS
http://wiki.ros.org/pr2_2dnav_gazebo/Tutorials/Simulating%20the%202dnav%20Stack
This tutorial describes how to simulate a 2d-navigation stack in gazebo using ROS.
Locational Movement
http://wiki.ros.org/navigation/Tutorials/SendingSimpleGoals
This tutorial demonstrates how to send the robot goals to move to a particular location using code.
WordPress Interactive Maps
https://www.youtube.com/watch?v=i3s4KbbC-48
This video tutorial explains how to make an interactive map for the website using wordPress