{"id":10713,"date":"2025-09-15T20:25:05","date_gmt":"2025-09-15T19:25:05","guid":{"rendered":"https:\/\/dronesonen.usn.no\/?p=10713"},"modified":"2025-09-15T20:28:41","modified_gmt":"2025-09-15T19:28:41","slug":"hydrawlics-week-4","status":"publish","type":"post","link":"https:\/\/dronesonen.usn.no\/?p=10713","title":{"rendered":"Hydrawlics \u2013 Week 4"},"content":{"rendered":"\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<p class=\"has-text-align-left\">Hello and welcome back!\ud83d\udc4b<br><br>In last week\u2019s post, we defined our Minimum Viable Product (MVP) and divided the main components into individual responsibilities. This week we have each been working on our parts to bring the MVP to life.<\/p>\n\n\n\n<div class=\"wp-block-media-text has-media-on-the-right is-stacked-on-mobile\" style=\"grid-template-columns:auto 85%\"><div class=\"wp-block-media-text__content\">\n<p><\/p>\n<\/div><figure class=\"wp-block-media-text__media\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Hydrawlics-Logo.webp\" alt=\"\" class=\"wp-image-10722 size-full\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Hydrawlics-Logo.webp 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Hydrawlics-Logo-300x300.webp 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Hydrawlics-Logo-150x150.webp 150w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Hydrawlics-Logo-768x768.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n<\/div>\n\n\n\n<p>As a reminder, the tasks were distributed as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Fredrik<\/strong> \u2013 Build the actuator system and prototype end effector<br><\/li>\n\n\n\n<li><strong>Erling<\/strong> \u2013 Design a simple joint mechanism using syringe hydraulics<br><\/li>\n\n\n\n<li><strong>Emory<\/strong> \u2013 Research and develop a proof-of-concept image edge detection algorithm in Python<br><\/li>\n\n\n\n<li><strong>Lisa<\/strong> \u2013 Source parts and code the C++ Arduino firmware to demonstrate the motion of the hydraulic arm<br><\/li>\n\n\n\n<li><strong>Syver<\/strong> \u2013 Implement a baseline Python Flask webserver for collecting and serving user content, serving as the system interface<br><\/li>\n<\/ul>\n\n\n\n<p>In this post, we\u2019ll share our individual progress and results so far!<br><\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\">Fredrik<\/h3>\n\n\n\n<p>This week I was responsible for the hydraulic actuator system. In other words, I need to push the syringe with the use of an electrical actuator. For this early development phase, I based the design on the components we had easily available, being mainly servo and stepper motor. The stepper motor can exert more power, but the servo has positional awareness. This positional awareness can come in handy for repeatable testing, so we went forward with the servo.&nbsp;<\/p>\n\n\n\n<p>The system needed to convert rotational motion from the servo to linear motion. I brainstormed some concepts of systems that could accomplish this, shown in the images below. I landed on the last of these concepts. This is mainly because the rotational and linear motion is proportional, eliminating the need for solving this in software. Another benefit of this concept is its thin design, with everything being in one line. This would make it easy to stack the system for more syringes. <br><br><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"854\" height=\"990\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_1.jpg\" alt=\"\" class=\"wp-image-10779\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_1.jpg 854w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_1-259x300.jpg 259w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_1-768x890.jpg 768w\" sizes=\"auto, (max-width: 854px) 100vw, 854px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"460\" height=\"748\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_2.jpg\" alt=\"\" class=\"wp-image-10780\" style=\"width:145px;height:auto\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_2.jpg 460w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_2-184x300.jpg 184w\" sizes=\"auto, (max-width: 460px) 100vw, 460px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"718\" height=\"960\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_3.jpg\" alt=\"\" class=\"wp-image-10781\" style=\"width:171px;height:auto\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_3.jpg 718w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_3-224x300.jpg 224w\" sizes=\"auto, (max-width: 718px) 100vw, 718px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p><br><br>The sg90 servo can rotate approximately 180 degrees, and the syringe needs to be pushed 66.5mm. I used bevel gears to allow for more rotation in the system per degree from the servo, thereby reducing the linear transmission per degree. <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"648\" height=\"594\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_3-expanded.jpg\" alt=\"\" class=\"wp-image-10782\" style=\"width:234px;height:auto\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_3-expanded.jpg 648w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Concept_3-expanded-300x275.jpg 300w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><\/figure>\n\n\n\n<p>Every part of the system is 3D-printed on my 3D-printer, with the exception of the servo and the syringe. When designing and testing, I quickly understood that friction would become an obstacle. Therefor I played around with different 3D-printing materials, mainly PLA and PETG, and figured out that a PLA surface to a PETG surface had low amounts of friction. Many of the parts in the system is therefor printed with this in mind, trying to alternate between the two. <\/p>\n\n\n\n<p><br>The finished system is shown in the images below. The system ended up successfully converting rotational motion from the servo into linear motion, with low friction and high precision. Although when attaching the syringe, the force exerted by the system fell short of the required amount, meaning that the syringe was not pushed and pulled in a way that would work in our project. This is shown in the video below. The system did however serve as an excellent proof of concept, and could be further developed into a fully working force transmission system. If I were to work on this concept moving forward, I would look for ways to reduce friction even more, switch to a stepper motor instead of the servo, and consider switching to a rack and pinion system. <\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"602\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-solidworks-1024x602.jpg\" alt=\"\" class=\"wp-image-10783\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-solidworks-1024x602.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-solidworks-300x176.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-solidworks-768x451.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-solidworks-1536x903.jpg 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-solidworks.jpg 1586w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-printed-1024x768.jpg\" alt=\"\" class=\"wp-image-10784\" style=\"width:254px;height:auto\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-printed-1024x768.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-printed-300x225.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-printed-768x576.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-printed-1536x1152.jpg 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Full-assembly-printed-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Actuator-without-syringe-1.mp4\"><\/video><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Actuator-with-syringe.mp4\"><\/video><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h3 class=\"wp-block-heading\"><br>Lisa<\/h3>\n\n\n\n<p>I\u2019ve been working on my part for the MVP, which was to source the parts and to code the Arduino firmware that will demonstrate the motion of the hydraulic arm.<br><br>As a first step, I set up a servo motor that moves along a single axis using the Arduino IDE and electronic components. The Servo will eventually receive instructions from the system to control the arm\u2019s drawing motion. Since we haven\u2019t reached that point yet, I replaced the instruction input with a potentiometer.&nbsp;<br><br><\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_3320-1.mp4\"><\/video><\/figure>\n\n\n\n<p>This allowed me to manually control the servo, and I was pleasantly surprised by how responsive and well synchronized it was. The servo reacted instantly and smoothly to adjustments on the potentiometer, making it a solid starting point for further testing and development.<\/p>\n\n\n\n<p>On top of this, I have also taken care of maintaining our Notion workspace. I not only make sure that all databases stay updated and synced so the group always has a clear and shared overview of tasks and progress, but I\u2019ve also spent time finalizing the overall structure. This way, the workspace is easier to navigate and provides a solid foundation for us to continue organizing our work efficiently.<br><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Syver<\/h3>\n\n\n\n<p>This week, I have focused on setting up a web-based front-end, as well as a boilerplate Python back-end in which the image edge detection code will live. Using a web-based front-end solution allows us to host the website locally, allowing people wanting to use the machine to join a local Wi-Fi and open the website on their personal device. Therefore, making it accessible and user-friendly for all was a big part of designing this GUI.<\/p>\n\n\n\n<p>For the front-end I have decided to use Vue and TypeScript, due to previous experience with this stack. I chose to use Vite as a build tool for now, providing a live development environment, but there is nothing stopping us from building into HTML\/CSS\/JS and letting the Python back-end host it for us in the future.<\/p>\n\n\n\n<p>Before implementing the GUI, I laid out the general design and components, which are divided into roughly three main parts: top part with logo and status indicator, main large container where the processed image will be previewed, and the bottom container containing the controls and preferences. I focused mainly on simplicity and expandability, making way for new elements (user preferences and such) to be implemented in the future.<\/p>\n\n\n\n<p>The group decided that it would be best to implement the back-end with Python, due to the vast amount of existing resources available. Continuing this line of thought, I chose to go with Flask as the back-end framework. Its clear and simple structure makes it easy to integrate Python libraries being developed in parallel. There are other alternatives like Django or FastAPI, but both are generally tailored to larger projects or heavier workloads.<\/p>\n\n\n\n<p>The endpoints implemented as of now are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2018\/ping\u2019 for testing<\/li>\n\n\n\n<li>\u2018\/config\u2019 for information about current back-end configuration, like supported file types<\/li>\n\n\n\n<li>\u2018\/upload\u2019 to provide input image and receive back the job ID, start processing job<\/li>\n\n\n\n<li>\u2018\/jobs\/[ID]\/status\u2019 for how far the processing is along<\/li>\n\n\n\n<li>\u2018\/jobs\/[ID]\/download\u2019 to get final image<\/li>\n<\/ul>\n\n\n\n<p>In summary, the web app can now connect to the back-end, display the connection status, and exchange images with the back-end. Here is a quick demo of the front-end web app sending an image to the back-end, and getting back a test image.<br><\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Skjermopptak_fra_2025-09-14_16-13-05-1.mp4\"><\/video><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h3 class=\"wp-block-heading\"><br>Emory<\/h3>\n\n\n\n<p>This week, I developed a proof-of-concept for an edge detection algorithm in Python. To achieve this, I began by researching various methods for detecting the edges of an image.<\/p>\n\n\n\n<p>The one method I thought looked most promising was the canny edge detection algorithm. Cause it\u2019s known for a low error rate and is good at localizing edge points. It uses 4 steps in detecting the edges.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Noise reduction<\/li>\n\n\n\n<li>Gradient calculation<\/li>\n\n\n\n<li>Non-maximum suppression<\/li>\n\n\n\n<li>Double thresholding<\/li>\n<\/ol>\n\n\n\n<p>Under you can see the implementation of the canny edge detector algorithm.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"523\" height=\"958\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/KodeBilde-1.png\" alt=\"\" class=\"wp-image-10791\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/KodeBilde-1.png 523w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/KodeBilde-1-164x300.png 164w\" sizes=\"auto, (max-width: 523px) 100vw, 523px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><br><br><br>The algorithm has different stages for what it does to turn the original image into a black image with only the edges showing:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Turns the original image into grayscale.<\/li>\n\n\n\n<li>Compute gradients using x and y directions<\/li>\n\n\n\n<li>Calculating the magnitude and angle using the x and y directions<\/li>\n\n\n\n<li>Setting up thresholds for weak and strong edges based on the maximum gradient<\/li>\n\n\n\n<li>Checks if there is a local maximum in the direction of the gradient. If not, sets the magnitude to 0<\/li>\n\n\n\n<li>Classifies pixels as strong edges, weak edges, or non-edges<\/li>\n\n\n\n<li>Then returns the edge map it has created<\/li>\n<\/ol>\n\n\n\n<p>The rest of the code consists of finding an image I have in a folder on my pc, starting with making the image into grayscale using cv2, which is from OpenCV, then putting that into the canny edge detector. It prints out the before and after image into a graph so you can see the difference. Like the image below.&nbsp;<br><br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"396\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Bildeibilde-1024x396.png\" alt=\"\" class=\"wp-image-10792\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Bildeibilde-1024x396.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Bildeibilde-300x116.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Bildeibilde-768x297.png 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Bildeibilde-1536x594.png 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Bildeibilde.png 1669w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><br><br>This algorithm gives a good starting point for further development to be able to make an algorithm for plotting the edges into a vector format.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h3 class=\"wp-block-heading\">Erling<br><\/h3>\n\n\n\n<p>This week i have made the arm structure of the MVP unit. This was designed in Solidworks and printed in PLA on my personal 3D-printer.&nbsp;<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5193-768x1024.png\" alt=\"\" class=\"wp-image-10714\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5193-768x1024.png 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5193-225x300.png 225w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5193-1152x1536.png 1152w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5193-1536x2048.png 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5193-scaled.png 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">After testfitting my parts i realized i needed to make some modifications in order for the component to fit together properly. The final shape of it looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"819\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/MVP-Render-1024x819.png\" alt=\"\" class=\"wp-image-10718\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/MVP-Render-1024x819.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/MVP-Render-300x240.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/MVP-Render-768x614.png 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/MVP-Render.png 1350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>I have done some research and preparation on basic hydraulic systems and hand drawn some simple ideas on possible ways to actuate the syringes in order to move the axes.<\/p>\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=\"768\" height=\"1024\" data-id=\"10715\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5194-768x1024.jpg\" alt=\"\" class=\"wp-image-10715\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5194-768x1024.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5194-225x300.jpg 225w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5194-1152x1536.jpg 1152w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5194-1536x2048.jpg 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5194-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"10716\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5197-1024x768.jpg\" alt=\"\" class=\"wp-image-10716\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5197-1024x768.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5197-300x225.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5197-768x576.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5197-1536x1152.jpg 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5197-2048x1536.jpg 2048w\" 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=\"10717\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5198-1024x768.jpg\" alt=\"\" class=\"wp-image-10717\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5198-1024x768.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5198-300x225.jpg 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5198-768x576.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5198-1536x1152.jpg 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/IMG_5198-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>I purchased 2 large and 2 small syringes in order to model the arm properly.&nbsp;<\/p>\n\n\n\n<p>In order to make a hydraulic system the way I envision it, we need a water pump. So i bought one on Temu that has 6 l\/m volumetric flow and a working pressure of 9 Bar (0.9Mpa). Using Force = Pressure * Area, this means our large syringes may be able to lift a weight of 11Kg.<\/p>\n\n\n\n<p>After modeling in Solidworks i put together an assembly to visualize the movement.<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Recording-2025-09-10-210541.mp4\"><\/video><\/figure>\n<\/div>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Arm.mp4\"><\/video><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">MVP Results<\/h2>\n\n\n\n<p>After working individually on our tasks, we are starting to see the MVP take shape. Both the digital and physical parts of the project are coming together, and this week we\u2019ve been able to test and visualize some of the progress!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Digital \u2013 GUI and Image Processing<\/strong><\/h3>\n\n\n\n<p>We have combined the GUI with the image processing prototype, giving us a first look at how the system might function when it\u2019s all connected. The code base is growing quickly already \u2013 check it out on<a href=\"https:\/\/github.com\/7RST1\/hydrawlics-webui\"> GitHub<\/a>!<br><br><br><\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Fellesdel-1.mp4\"><\/video><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><br><strong>Physical \u2013 First Motion Tests<\/strong><\/h3>\n\n\n\n<p>On the hardware side, we\u2019ve successfully demonstrated motion with the servo-driven hydraulic setup. This is the first step towards the robotic arm being able to follow drawing instructions.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Servo-and-actuator.mp4\"><\/video><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/09\/Servo-actuator-and-arm.mp4\"><\/video><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<p class=\"has-text-align-center\">That&#8217;s all for now, see you next week!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello and welcome back!\ud83d\udc4b In last week\u2019s post, we defined our Minimum Viable Product (MVP) and divided the main components into individual responsibilities. This week we have each been working on our parts to bring the MVP to life. As a reminder, the tasks were distributed as follows: In this post, we\u2019ll share our individual [&hellip;]<\/p>\n","protected":false},"author":116,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10713","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/10713","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\/116"}],"replies":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10713"}],"version-history":[{"count":6,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/10713\/revisions"}],"predecessor-version":[{"id":10799,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/10713\/revisions\/10799"}],"wp:attachment":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}