{"id":3364,"date":"2019-10-06T22:42:17","date_gmt":"2019-10-06T21:42:17","guid":{"rendered":"http:\/\/dronesonen.usn.no\/?p=3364"},"modified":"2019-12-05T08:22:15","modified_gmt":"2019-12-05T07:22:15","slug":"haptix-week-39-and-40","status":"publish","type":"post","link":"https:\/\/dronesonen.usn.no\/?p=3364","title":{"rendered":"Haptix week 39 and 40"},"content":{"rendered":"\n<p>We decided to post both week 39 and 40 because of the server issues in week 39.<\/p>\n\n\n\n<p><strong>Daniel:<\/strong><\/p>\n\n\n\n<p><strong>Week 40:<\/strong><\/p>\n\n\n\n<p>Last week I completed\na scene that can be used as an environment for the interaction we will have to\nimplement. This week I made a simple UI menu for the Unity Application:<\/p>\n\n\n\n\n<p><a href=\"https:\/\/i.gyazo.com\/54fdb30a54109ff212006bf0180fb23f.mp4\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">https:\/\/i.gyazo.com\/54fdb30a54109ff212006bf0180fb23f.mp4<\/a><\/p>\n\n\n\n<p>The menu has 3 options: \u201cPlay\u201d, \u201cInformation\u201d and \u201cQuit\u201d. Where the\n\u201cPlay\u201d button will take the player into the scene I did last week. The\n\u201cInformation\u201d button will display some simple information. Lastly, the \u201cQuit\u201d\nbutton will simply quit the application. Even though the menu doesn\u2019t have that\nmuch features as of yet, one could always add these in the future if needed.<\/p>\n\n\n\n<p>For next week, I will start the development of an interaction that can\nbe implemented into the scene. Possibly also do some research on some of the\nissues I found in the previous weeks. All while waiting on the gloves to be\ncompleted, so that I can start with the interface between Arduino and Unity;\nSomething I already tinkered with in week 38.<\/p>\n\n\n\n<p><strong>Week 39:<\/strong><\/p>\n\n\n\n<p>After\nhaving connected the Arduino and Unity application together&nbsp;in week 38. I figured I could start on the creation of a scene (terrain, models,\nobjects, etc.) within Unity.&nbsp;In this case, removing the scene I did in week 37 so that I could start on something\nfresh.&nbsp;Where&nbsp;I decided to use free low poly packs from the Unity store, combining&nbsp;<a href=\"https:\/\/assetstore.unity.com\/packages\/3d\/environments\/free-low-poly-desert-pack-106709\" target=\"_blank\" rel=\"noreferrer noopener\">this<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/assetstore.unity.com\/packages\/3d\/environments\/landscapes\/polydesert-107196\" target=\"_blank\" rel=\"noreferrer noopener\">this<\/a>&nbsp;pack. Which&nbsp;ultimately gave&nbsp;the terrain a decent look:&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"549\" src=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Example-daniel-1024x549.png\" alt=\"\" class=\"wp-image-3366\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Example-daniel.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Example-daniel-300x161.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Example-daniel-768x412.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> Example&nbsp;of&nbsp;what&nbsp;the&nbsp;user&nbsp;will&nbsp;see&nbsp; <\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"620\" src=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Example-daniel2-1024x620.jpg\" alt=\"\" class=\"wp-image-3367\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Example-daniel2.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Example-daniel2-300x182.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Example-daniel2-768x465.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption> Overview&nbsp;of&nbsp;the&nbsp;scene&nbsp; <\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>This scene will be able to serve as the environment for\nwhere we can implement the interaction. E.g. by having the interaction in the\nmiddle (where the pink cube is located).&nbsp;Furthermore, I will also add a soundtrack to this scene. Something\nthat can be looped in the background.&nbsp;<\/p>\n\n\n\n<p>In addition to this, I have started the development of an&nbsp;UI&nbsp;menu&nbsp;that can be implemented into the Unity application as a main menu.&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>Petter<\/strong><strong>:<\/strong>&nbsp;<\/p>\n\n\n\n<p>Previously I was using mostly&nbsp;Unitys&nbsp;predefined components to create the physics and movements of the cube. Now this works all right, but because we are using a virtual interface, our control of the cube, or the lack off, makes it very difficult to make the cube return to a cube after turning.&nbsp;&nbsp;<\/p>\n\n\n\n<p>We could introduce stabilization of the&nbsp;xyz&nbsp;axises&nbsp;if the cubes are not aligned to 0, 90, 180 and so on, but this returns us to the previous problem, calibration, even if this does work, it would not be optimal, sometimes you want to hold the cube 45 degrees in the air to see three sides right? There are of course ways to achieve this as well, but what I\u2019m learning as I\u2019m trying out different solutions is that all these problems are caused because I jumped straight into&nbsp;full fledged&nbsp;joint based physics, which as I\u2019m also learning seems to create more problems than it\u2019s worth right now. So, I went back to the basics to ensure our cube functions like it should, coding it from the ground up. It\u2019s going well but there are many&nbsp;options&nbsp;to consider.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/gyazo.com\/362b77ac3c6b5eb9dc4074f75381265d\">https:\/\/gyazo.com\/362b77ac3c6b5eb9dc4074f75381265d<\/a><\/p>\n\n\n\n<p>Here&#8217;s a small prototype with some basic movement. I&#8217;m expecting to have it done by end of next week.<\/p>\n\n\n\n<p><strong>Even:<\/strong>&nbsp;&nbsp;<\/p>\n\n\n\n<p>Finalized the project\ndescription and made a short project plan. Prepared to make a plan together\nwith the group in week 41. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Project Description<\/h2>\n\n\n\n<p>To make this project a success we must be able to create a glove that can give the user feedback when \u201ctouching\u201d something in virtual space. To be able to do this we have to make a scene in unity where the user will be able to solve a rubix cube and do other simulations. The gloves will be made of a fabric where vibrating motors attached at the fingertips will replicate the sensation of touch. The glove will be controlled using an Arduino, and the virtual space will be displayed by using a HTC VIVE headset. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Project plan <\/h2>\n\n\n\n<p>Finalize the concept. <\/p>\n\n\n\n<p>Make a proof of concept\nfor the gloves<\/p>\n\n\n\n<p>Create the scene where\ndifferent simulations can be run. <\/p>\n\n\n\n<p>Create a UI where the\nuser can choose between different simulations, pause the simulations. And go\nback to main menu. <\/p>\n\n\n\n<p>Create a proof of concept\nsimulation where the gloves can be tested out.<\/p>\n\n\n\n<p>Create the Rubix cube\nsimulation<\/p>\n\n\n\n<p><strong>Herman<\/strong><strong>&nbsp;and&nbsp;Tom Erik:<\/strong>&nbsp;<\/p>\n\n\n\n<p>Herman and I arrived at which technologies we wanted to\ntry implementing for the alpha. We arrived at vibration motors for haptic\nfeedback. We\u2019ll also attempt to use IMU\u2019s and strain gauges in the form of flex\nsensors, to provide further accuracy to support the camera tracking or swap it\nout altogether.&nbsp;<\/p>\n\n\n\n<p>Further\ntime was spent researching components to be used for said use cases. Once\ndesirable components were found, we ordered them, in order to hopefully have a\nworking proof of concept soon. One, IMU, and flex sensor were ordered in order\nto experiment with their&nbsp;uses and&nbsp;verify our theories regarding their use in the project.&nbsp;<\/p>\n\n\n\n<p>An IMU is a combined accelerometer and gyro. The idea\nbehind using IMUs in the gloves are for more precise movement, and rotational\ntracking.&nbsp;<\/p>\n\n\n\n<p>The flex sensors are variable resistors, which vary in\nresistance based on how much it\u2019s bent, the idea is to apply these for precise\ncalibration of how much each finger is bent.&nbsp;<\/p>\n\n\n\n<p>Parts ordered:&nbsp;<\/p>\n\n\n\n<p>Vibration motor:&nbsp;<\/p>\n\n\n\n<p>Mini Vibration motor&nbsp;<\/p>\n\n\n\n<p>Datasheet:&nbsp;<a href=\"https:\/\/www.elfadistrelec.no\/Web\/Downloads\/_t\/ds\/316040001_eng_tds.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.elfadistrelec.no\/Web\/Downloads\/_t\/ds\/316040001_eng_tds.pdf<\/a>&nbsp;<\/p>\n\n\n\n<p>IMU:&nbsp;<\/p>\n\n\n\n<p>ICM-20948 9DoF IMU&nbsp;<\/p>\n\n\n\n<p>Datasheet: TDK&nbsp;invenSense&nbsp;ICM-20948, 06\/02\/17, revision 1,3&nbsp;<\/p>\n\n\n\n<p>Flex sensor:&nbsp;<\/p>\n\n\n\n<p>Seon-10264&nbsp;<\/p>\n\n\n\n<p>Datasheet:&nbsp;Spectrasymbol&nbsp;flex&nbsp;Seonsor&nbsp;FS&nbsp;<\/p>\n\n\n\n<p>Initial plans were also to sketch some schematics,\nhowever that is delayed due to software issues.&nbsp;<\/p>\n\n\n\n<p>As well as the\nsensors of the glove we have looked at how to control, read and transfer data\nin the glove.&nbsp; Here we have looked into\nthe option of using a microcontroller with BLE transmission or through WLAN,\nwhere we create an IoT network with both gloves and the computer. We are\nlooking at basing the communication on RS-232 for prototyping and to test proof\nof concept purposes for then to go over to a MQTT or another communication platform\nmore optimized for IoT systems. <\/p>\n\n\n\n<p><strong>William:<\/strong>&nbsp;<\/p>\n\n\n\n<p>Made a Flow Chart diagram&nbsp;explaining&nbsp;how I want the User Interface to be implemented.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"720\" src=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Uml-william-1024x720.png\" alt=\"\" class=\"wp-image-3365\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Uml-william.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Uml-william-300x211.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2019\/10\/Uml-william-768x540.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>We decided to post both week 39 and 40 because of the server issues in week 39. Daniel: Week 40: Last week I completed a scene that can be used as an environment for the interaction we will have to implement. This week I made a simple UI menu for the Unity Application: https:\/\/i.gyazo.com\/54fdb30a54109ff212006bf0180fb23f.mp4 The [&hellip;]<\/p>\n","protected":false},"author":72,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[59,1],"tags":[],"class_list":["post-3364","post","type-post","status-publish","format-standard","hentry","category-haptix","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/3364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/users\/72"}],"replies":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3364"}],"version-history":[{"count":6,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/3364\/revisions"}],"predecessor-version":[{"id":3375,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/3364\/revisions\/3375"}],"wp:attachment":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}