{"id":47742,"date":"2021-03-18T13:20:06","date_gmt":"2021-03-18T17:20:06","guid":{"rendered":"https:\/\/seniordesign.digitalscholar.rochester.edu\/ece2021\/?p=86"},"modified":"2022-04-13T11:44:36","modified_gmt":"2022-04-13T15:44:36","slug":"virtua-bot","status":"publish","type":"post","link":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/","title":{"rendered":"VIRTua Bot"},"content":{"rendered":"\n<p style=\"font-size:40px\"><strong>Project Description<\/strong><\/p>\n\n\n\n<p>Imagine you are laying down and want to see the outside world, but are too lazy to go outside. Why not take a virtual trip through the eyes of a robot that uses a camera to capture visuals and displays it to the user\u2019s virtual reality headset. This is done by using Raspberry Pi 4 with a raspberry pi camera module attached to pan tilt mechanism. The pan tilt mechanism will be used to mimic the user\u2019s head movements which then changes where the camera is facing. The camera footage is streamed using Flask which will be access through URL via any device, but the device of our choosing is a Samsung Galaxy S10+. The stream is incorporated into our mobile app which uses the phones accelerometer and gyroscope capabilities to track your head\u2019s movement. Finally, the camera module and pan tilt mechanism is attached to an RC Car to give an immersion that you are moving and looking when you are actually in the comfort of your laziness.<\/p>\n\n\n\n<p style=\"font-size:40px\"><strong>Hardware<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Raspberry Pi 4<\/li><li>Pan Tilt Mechanism<\/li><li>Raspberry Pi Camera Module<\/li><li>Bread-board<\/li><li>Servo Motor<\/li><li>RC Car<\/li><li>DESTEK 2021 V5 VR Headset<\/li><li>Wires, battery pack<\/li><li>Wifi Module incorporated with Raspberry Pi<\/li><li>Samsung Galaxy S10+ using its accelerometer and gyroscope capabilities<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"52082\" src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1083-1-1024x768.jpg\" alt=\"\" class=\"wp-image-52082\" srcset=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1083-1-1024x768.jpg 1024w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1083-1-300x225.jpg 300w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1083-1-768x576.jpg 768w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1083-1-1536x1152.jpg 1536w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1083-1-2048x1536.jpg 2048w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1083-1-1200x900.jpg 1200w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1083-1-1980x1485.jpg 1980w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"52072\" src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1084-1024x768.jpeg\" alt=\"\" class=\"wp-image-52072\" srcset=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1084-1024x768.jpeg 1024w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1084-300x225.jpeg 300w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1084-768x576.jpeg 768w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1084-1536x1152.jpeg 1536w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1084-2048x1536.jpeg 2048w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1084-1200x900.jpeg 1200w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1084-1980x1485.jpeg 1980w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<p style=\"font-size:40px\"><strong>Software<\/strong><\/p>\n\n\n\n<p style=\"font-size:30px\"><strong>Section of Mobile App UI<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/VB_ui-1024x848.jpg\" alt=\"\" class=\"wp-image-1165\"\/><figcaption>Our simple UI that instructs user to keep head still and allows user to decide when they are ready to begin streaming using our \u2018stream\u2019 button<\/figcaption><\/figure>\n\n\n\n<p style=\"font-size:30px\"><strong>Section of Mobile App Backend<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"958\" height=\"725\" data-id=\"1225\" src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/ClientSocket.jpg\" alt=\"\" class=\"wp-image-1225\" srcset=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/ClientSocket.jpg 958w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/ClientSocket-300x227.jpg 300w, https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/ClientSocket-768x581.jpg 768w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/><\/figure>\n<figcaption class=\"blocks-gallery-caption\">Here we show a portion of our code that utilized socket programming in our mobile app to communicate with the rpi<\/figcaption><\/figure>\n\n\n\n<p style=\"font-size:30px\"><strong>Final Virtua Bot RPI Code<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#Final Virtua Bot RPI Code\n\nimport threading\nfrom threading import Thread\nfrom flask import Flask, render_template, Response, request\nfrom camera import VideoCamera\nimport time\nimport os\nimport pan_tilt\nfrom socket import *\nfrom time import ctime\nimport RPi.GPIO as GPIO\n\ndef rpi_server():\n    pan_tilt.initialize()\n\n    pan = 27 #GPIO pin for RP3 used for horizontal rotation\n    tilt = 17 #GPIO pin for RP3 used for vertical rotation\n     \n    HOST = ''\n    PORT = 7777\n    BUFSIZE = 1024\n    ADDR = (HOST,PORT)\n\n    tcpSerSock = socket(AF_INET, SOCK_STREAM)\n    tcpSerSock.bind(ADDR)\n    tcpSerSock.listen(5)\n\n    angle_tilt=90.0\n    angle_pan=90.0\n    while True:\n            print ('Waiting for connection')\n            tcpCliSock,addr = tcpSerSock.accept()\n            print ('...connected from :', addr)\n            try:\n                    while True:\n                            data = {'0','0'}\n                            data = tcpCliSock.recv(BUFSIZE)\n                            if not data:\n                                    break\n                            #data= int.from_bytes(data,'big', signed=True)\n                            \n                            data = data.decode('utf-8')\n                            \n                            data= data.split(\":\")\n                            \n                            \n                            angle_tilt += float(data&#91;0])\n                            pan_tilt.setServoAngle(tilt, angle_tilt)\n                            \n                            angle_pan += float(data&#91;0])\n                            pan_tilt.setServoAngle(pan, angle_pan)\n                            \n            except KeyboardInterrupt:\n                    pan_tilt.close()\n                    GPIO.cleanup()\n    tcpSerSock.close();\n\npi_camera = VideoCamera(flip=False) # flip pi camera if upside down.\n\n# App Globals (do not edit)\napp = Flask(__name__)\n\n@app.route('\/')\ndef index():\n    return render_template('index.html') #you can customze index.html here\n\ndef gen(camera):\n    #get camera frame\n    while True:\n        frame = camera.get_frame()\n        yield (b'--frame\\r\\n'\n               b'Content-Type: image\/jpeg\\r\\n\\r\\n' + frame + b'\\r\\n\\r\\n')\n\n@app.route('\/video_feed')\ndef video_feed():\n    return Response(gen(pi_camera),\n                    mimetype='multipart\/x-mixed-replace; boundary=frame')\n\ndef run():\n\n    app.run(host='0.0.0.0', debug=False)\n     \nif __name__ == '__main__':\n    Thread(target=rpi_server).start()\n    Thread(target=run).start()<\/code><\/pre>\n\n\n\n<p style=\"font-size:40px\"><strong>Live Demo and Images<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1080\" style=\"aspect-ratio: 2280 \/ 1080;\" width=\"2280\" controls src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/VideoEditor_20210507_042259.mp4\"><\/video><figcaption>In this video, we demonstrated a live screen recording of what an user would see in their headset.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"1862\" style=\"aspect-ratio: 2132 \/ 1862;\" width=\"2132\" controls src=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/05\/IMG_1077-1-1.mp4\"><\/video><figcaption>This video ties it all together, showing what we anticipate every user to experience testing our device.<\/figcaption><\/figure>\n\n\n\n<p style=\"font-size:40px\"><strong>Takeaways<\/strong><\/p>\n\n\n\n<p>As we increase in our field of knowledge and our abilities to design complex systems and devices advances &#8212; we realized that user experience should always be at the forefront of the agenda. When developing this device we had high ambitions that tested the limits of our cpu and led to some runtime lag. Large amounts of time was spent rectifying this and in the process we learned several efficiency techniques (some that we weren\u2019t able to implement) that we can carry into our profession.<\/p>\n\n\n\n<p style=\"font-size:40px\"><strong>Team Members<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Jewel Holt<\/li><li>Ronaldo Naveo<\/li><\/ul>\n\n\n\n<p style=\"font-size:40px\"><strong>Supervisors<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Jack Mottley<\/li><li>Daniel Phinney<\/li><\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Why not take a virtual trip through the eyes of a robot that uses a camera and displays it to the user\u2019s VR headset. VIRTua Bot allows you to do just that with your android smartphone. <\/p>\n","protected":false},"author":6242,"featured_media":52122,"comment_status":"open","ping_status":"open","sticky":false,"template":"templates\/template-full-width.php","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[4442,2936,8762,3066,116],"tags":[],"coauthors":[8612],"class_list":["post-47742","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-archive","category-keywords-archive","category-art-archive","category-augmented-reality-virtual-reality-archive","category-ece-archive"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>VIRTua Bot - Senior Design Day<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VIRTua Bot - Senior Design Day\" \/>\n<meta property=\"og:description\" content=\"Why not take a virtual trip through the eyes of a robot that uses a camera and displays it to the user\u2019s VR headset. VIRTua Bot allows you to do just that with your android smartphone.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/\" \/>\n<meta property=\"og:site_name\" content=\"Senior Design Day\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-18T17:20:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-13T15:44:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/03\/20210507_025507-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"473\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#\\\/schema\\\/person\\\/351018fbcf84ed8cac6d8072ba5b347c\"},\"headline\":\"VIRTua Bot\",\"datePublished\":\"2021-03-18T17:20:06+00:00\",\"dateModified\":\"2022-04-13T15:44:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/\"},\"wordCount\":412,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/20210507_025507-scaled.jpg\",\"articleSection\":[\"3. Programs Archive\",\"4. Keywords Archive\",\"Art Archive\",\"Augmented Reality \\\/ Virtual Reality Archive\",\"ECE Archive\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/\",\"url\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/\",\"name\":\"VIRTua Bot - Senior Design Day\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/20210507_025507-scaled.jpg\",\"datePublished\":\"2021-03-18T17:20:06+00:00\",\"dateModified\":\"2022-04-13T15:44:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#\\\/schema\\\/person\\\/351018fbcf84ed8cac6d8072ba5b347c\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/20210507_025507-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/20210507_025507-scaled.jpg\",\"width\":1920,\"height\":2560},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/virtua-bot\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VIRTua Bot\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#website\",\"url\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/\",\"name\":\"Senior Design Day\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/#\\\/schema\\\/person\\\/351018fbcf84ed8cac6d8072ba5b347c\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.hajim.rochester.edu\\\/senior-design-day\\\/author\\\/seniordesign\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"VIRTua Bot - Senior Design Day","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/","og_locale":"en_US","og_type":"article","og_title":"VIRTua Bot - Senior Design Day","og_description":"Why not take a virtual trip through the eyes of a robot that uses a camera and displays it to the user\u2019s VR headset. VIRTua Bot allows you to do just that with your android smartphone.","og_url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/","og_site_name":"Senior Design Day","article_published_time":"2021-03-18T17:20:06+00:00","article_modified_time":"2022-04-13T15:44:36+00:00","og_image":[{"url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/03\/20210507_025507-scaled.jpg","width":473,"height":630,"type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/#article","isPartOf":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/"},"author":{"name":"admin","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#\/schema\/person\/351018fbcf84ed8cac6d8072ba5b347c"},"headline":"VIRTua Bot","datePublished":"2021-03-18T17:20:06+00:00","dateModified":"2022-04-13T15:44:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/"},"wordCount":412,"commentCount":0,"image":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/03\/20210507_025507-scaled.jpg","articleSection":["3. Programs Archive","4. Keywords Archive","Art Archive","Augmented Reality \/ Virtual Reality Archive","ECE Archive"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/","url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/","name":"VIRTua Bot - Senior Design Day","isPartOf":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/#primaryimage"},"image":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/#primaryimage"},"thumbnailUrl":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/03\/20210507_025507-scaled.jpg","datePublished":"2021-03-18T17:20:06+00:00","dateModified":"2022-04-13T15:44:36+00:00","author":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#\/schema\/person\/351018fbcf84ed8cac6d8072ba5b347c"},"breadcrumb":{"@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/#primaryimage","url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/03\/20210507_025507-scaled.jpg","contentUrl":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-content\/uploads\/2021\/03\/20210507_025507-scaled.jpg","width":1920,"height":2560},{"@type":"BreadcrumbList","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/virtua-bot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/"},{"@type":"ListItem","position":2,"name":"VIRTua Bot"}]},{"@type":"WebSite","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#website","url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/","name":"Senior Design Day","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/#\/schema\/person\/351018fbcf84ed8cac6d8072ba5b347c","name":"admin","url":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/author\/seniordesign\/"}]}},"_links":{"self":[{"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/posts\/47742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/users\/6242"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/comments?post=47742"}],"version-history":[{"count":5,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/posts\/47742\/revisions"}],"predecessor-version":[{"id":62392,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/posts\/47742\/revisions\/62392"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/media\/52122"}],"wp:attachment":[{"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/media?parent=47742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/categories?post=47742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/tags?post=47742"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.hajim.rochester.edu\/senior-design-day\/wp-json\/wp\/v2\/coauthors?post=47742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}