{"id":11700,"date":"2025-10-21T11:17:22","date_gmt":"2025-10-21T10:17:22","guid":{"rendered":"https:\/\/dronesonen.usn.no\/?p=11700"},"modified":"2025-11-07T12:44:56","modified_gmt":"2025-11-07T11:44:56","slug":"minimuck-week-9","status":"publish","type":"post","link":"https:\/\/dronesonen.usn.no\/?p=11700","title":{"rendered":"MiniMuck \u2013 Week 9"},"content":{"rendered":"\n<p class=\"has-text-align-center\">Hello W\u00f8rld! <\/p>\n\n\n\n<p>This week the team made a lot of progress. We got the Dynamixel servos running, completed the controller for the MVP, made progress with slam, and did a whole lot of CAD, 3D printing, and laser cutting.<\/p>\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 has-text-align-left\">Herman<\/h2>\n\n\n\n<p class=\"has-medium-font-size\">This I have worked with the Dynamixel servos, and together with Ask to make the mechanical structure for our vehicle.<\/p>\n\n\n\n<p><strong>Dynamixel Servo and Microcontroller<\/strong><\/p>\n\n\n\n<p>We have borrowed the Dynamixel XM430-210W-T from the University, which is a 210-degreee servo with about 4.0Nm stall- torque, which should be sufficient to drive the arms. With these, we have borrowed the OpenCM 9.04 microcontroller module with TTL interface, which can be programmed with the Arduino IDE by using the board file and Dynamixel2Arduino library.<\/p>\n\n\n\n<p><strong><em>Setup Guide for Dynamixel:<\/em><\/strong><\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Install board on Arduino IDE\n<ol start=\"1\" class=\"wp-block-list\">\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Add to board paths: <a href=\"https:\/\/raw.githubusercontent.com\/ROBOTIS-GIT\/OpenCM9.04\/master\/arduino\/opencm_release\/package_opencm9.04_index.json\">https:\/\/raw.githubusercontent.com\/ROBOTIS-GIT\/OpenCM9.04\/master\/arduino\/opencm_release\/package_opencm9.04_index.json<\/a><\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Install OpenCM 9.04 in board manager<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Run dxl-monitor from examples: OpenCM 9.04 \u2192 Dynamixel SDK \u2192 Protocol2.0 \u2192 dxl_monitor. Use the commands through the Serial monitor to configure the servos<\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Scan for servos using scan to see what unique addresses are present. Servos who have the same id only show up once, and must be connected one at a time to be configured individually.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;CMD] scan\nScan Dynamixel Using Protocol 1.0\n.............................................................\n\nScan Dynamixel Using Protocol 2.0\n&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... SUCCESS&nbsp; &#091;ID:001] Model No : 01030\n&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... SUCCESS&nbsp; &#091;ID:002] Model No : 01030\n.............................................................<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Reset using<strong> <code>rst2&nbsp;001<\/code><\/strong><\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Set new unique ID on each servo on address 7 using <code><strong>w2 001 007 [ID]<\/strong><\/code> e.g. <code><strong>w2 001 007 002<\/strong><\/code>. It is best for only one servo to be connected simultaneously. Only disconnect the servo when power is shut off and the USB is disconnected from the PC!<\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Enable torque on address 64 using <code><strong>w2 001 064 1<\/strong><\/code><\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Servo is in position mode by default. Set position (dword) on addresses 116 through 119 using <code><strong>wrd2 001 116 [pos(0-4095)]<\/strong><\/code> If the servo moves to its new position, it is working.<\/li>\n<\/ol>\n\n\n\n<p>When scanning, one servo did not show. First, I was unsure if the servo was functioning properly, but after some trial and error, I found that when the baud was set to 1M, the servo was visible, meaning it was only configured differently than the standard. To find this in dxl-monitor, I used <strong><code>baud 1M<\/code><\/strong>.<\/p>\n\n\n\n<p>To fix this:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Write to baud address in EEPROM using dxl-monitor: <code><strong>w2 002 008 1<\/strong><\/code><\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Remember to change back to <code><strong>baud 57600<\/strong><\/code><\/li>\n<\/ol>\n\n\n\n<p>Now we are sure the servos are working properly and can be controlled with the Arduino2Dynamixel Library.<\/p>\n\n\n\n<p>Using the example code, I tested the library, but got this error:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:#ffffff;color:#cf2e2e\" class=\"has-inline-color\">Error: Torque off failed\nError: Set operating mode failed\nError: Torque on failed<\/mark>\nLED ON\nGoal Position : 512\nLED OFF\nGoal Position : 2048\nLED ON<\/code><\/pre>\n\n\n\n<p>After some troubleshooting, I found the issue. The code was expecting the expansion card to be connected, which uses another pin on the microcontroller. By changing these lines, the issue was fixed:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Change <strong><code>#define DXL_SERIAL Serial3<\/code><\/strong> to <strong><code>Serial1<\/code><\/strong><\/li>\n\n\n\n<li style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">Change <strong><code>const int DXL_DIR_PIN = 22;<\/code><\/strong> to <strong><code>28<\/code><\/strong><\/li>\n<\/ul>\n\n\n\n<p>After this, I wrote some code which takes in Serial commands over UART (in accordance with our ICD), and sets the servo angle using the input. This is shown in the video below:<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"http:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/hd_vid_1.mov\"><\/video><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"612\" height=\"462\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-143.png\" alt=\"\" class=\"wp-image-11702\" style=\"width:650px;height:auto\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-143.png 612w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-143-300x226.png 300w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><figcaption class=\"wp-element-caption\">Table 1 &#8211; from ICD<\/figcaption><\/figure>\n\n\n\n<p><strong>Mechanical Structure<\/strong><\/p>\n\n\n\n<p>After getting some progress on the electronics, I spent some more time on the mechanical structure. The base plate will be made of laser cut acrylic sheets, while the brackets will be 3D-printed. The front assembly uses a servo for steering, and two servos for the arms. The plate has holes for cable ties. &nbsp;Below are all the parts of the front assembly. Ask made a brackets for the Dynamixel servo axle, so i combined these with my part to connect to the front plate. I also made brackets for the side to be mounted to the main plate.<\/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=\"319\" height=\"273\" data-id=\"11705\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-144.png\" alt=\"\" class=\"wp-image-11705\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-144.png 319w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-144-300x257.png 300w\" sizes=\"auto, (max-width: 319px) 100vw, 319px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"360\" height=\"302\" data-id=\"11707\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-146.png\" alt=\"\" class=\"wp-image-11707\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-146.png 360w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-146-300x252.png 300w\" sizes=\"auto, (max-width: 360px) 100vw, 360px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"308\" height=\"247\" data-id=\"11708\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-147.png\" alt=\"\" class=\"wp-image-11708\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-147.png 308w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-147-300x241.png 300w\" sizes=\"auto, (max-width: 308px) 100vw, 308px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"349\" height=\"273\" data-id=\"11709\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-148.png\" alt=\"\" class=\"wp-image-11709\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-148.png 349w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-148-300x235.png 300w\" sizes=\"auto, (max-width: 349px) 100vw, 349px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"613\" height=\"548\" data-id=\"11710\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-149.png\" alt=\"\" class=\"wp-image-11710\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-149.png 613w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-149-300x268.png 300w\" sizes=\"auto, (max-width: 613px) 100vw, 613px\" \/><\/figure>\n<\/figure>\n\n\n\n<p>The base plate of the car has holes for cable feedthrough and for cable ties. The LIDAR is mounted above the Raspberry Pi on plastic spacers, and the Power Supply and Motor Driver board sits behind the Pi so the connectors for the servos are centered on the plate, due to length limitations of premade wires. However, if this becomes a problem, we will extend the wires. The model below uses placeholders for the arms, which Ask is designing. <\/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=\"362\" height=\"356\" data-id=\"11711\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-150.png\" alt=\"\" class=\"wp-image-11711\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-150.png 362w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-150-300x295.png 300w\" sizes=\"auto, (max-width: 362px) 100vw, 362px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"445\" height=\"397\" data-id=\"11714\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-153.png\" alt=\"\" class=\"wp-image-11714\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-153.png 445w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-153-300x268.png 300w\" sizes=\"auto, (max-width: 445px) 100vw, 445px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"783\" height=\"457\" data-id=\"11713\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-152.png\" alt=\"\" class=\"wp-image-11713\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-152.png 783w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-152-300x175.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-152-768x448.png 768w\" sizes=\"auto, (max-width: 783px) 100vw, 783px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"824\" height=\"702\" data-id=\"11715\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-154.png\" alt=\"\" class=\"wp-image-11715\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-154.png 824w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-154-300x256.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-154-768x654.png 768w\" sizes=\"auto, (max-width: 824px) 100vw, 824px\" \/><\/figure>\n<\/figure>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/hd_vid_2.mp4\"><\/video><figcaption class=\"wp-element-caption\">Video showing the dynamics of MiniMuck<\/figcaption><\/figure>\n\n\n\n<p><strong>Plan for next week<\/strong> <\/p>\n\n\n\n<p>For the next week, I plan to solder the PCB when the components arrive and begin testing. In case the PCB does not function as intended, to an extent where we are unable to resolve it in time for the deadline, we have a plan B where we use OpenCM, prototyping board, L298N Motor Driver, Standalone DC\/DC Buck Converter in similar fashion as MVP Vehicle.<\/p>\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\">Leon<\/h2>\n\n\n\n<p><strong>MVP control<\/strong><\/p>\n\n\n\n<p>This week I got the controller to work with the physical MVP. To get this to work I switched the MockComponents that I used for the digital tests out and implemented a custom hardware interface. Moving on I updated the CMakeLists.txt and package.xml files so that they would work with my new changes.<\/p>\n\n\n\n<p><strong>Testing<\/strong><\/p>\n\n\n\n<p>When I had updated the support files, I moved on to testing. The testing was done statically to accommodate simultaneous development<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/real_control_video.mp4\"><\/video><\/figure>\n\n\n\n<p>I finally got to test the custom hardware interface, I spent some time debugging and getting the custom hardware interface working. Now the MVP is driven and controlled using teleop twist which is a ros2 node that lets you steer robots using the keyboard. Onwards the plan is to connect the controller with Nav2 and drive autonomously, moreover we will focus on doing this with the final product.<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.ros.org\/en\/ros2_packages\/jazzy\/api\/teleop_twist_keyboard\">https:\/\/docs.ros.org\/en\/ros2_packages\/jazzy\/api\/teleop_twist_keyboard<\/a><\/p>\n\n\n\n<p><strong>Launch file<\/strong><\/p>\n\n\n\n<p>After getting the controller to work with manual launch I started creating an xml launch file, to make it easy to use the MVP.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"351\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-168-1024x351.png\" alt=\"\" class=\"wp-image-11861\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-168-1024x351.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-168-300x103.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-168-768x263.png 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-168.png 1248w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>This is a snippet from the launch file, this part of the code starts up the robot state publisher and ros2 control node. The state publisher is used to display in Rviz, and the control node runs the hardware interface and controller. I have used the official ros docs for many things in this project, also for the launch file.<\/p>\n\n\n\n<p><a href=\"https:\/\/docs.ros.org\/en\/jazzy\/How-To-Guides\/Launch-file-different-formats.html\">https:\/\/docs.ros.org\/en\/jazzy\/How-To-Guides\/Launch-file-different-formats.html<\/a><\/p>\n\n\n\n<p><strong>Next week:<\/strong><\/p>\n\n\n\n<p>Shifting focus to the final product.<\/p>\n\n\n\n<p><a href=\"https:\/\/gitlab.com\/mini-muck\/mm_software_2025\/-\/tree\/control_branch?ref_type=heads\">https:\/\/gitlab.com\/mini-muck\/mm_software_2025\/-\/tree\/control_branch?ref_type=heads<\/a><\/p>\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\">Ask<\/h2>\n\n\n\n<p>Hei Bloggen.<\/p>\n\n\n\n<p>This week I have been working together with Herman on the mechanical structure of the Mini Muck , researching SLAM with ROS2 and found a prebuilt package called SlamToolBox and battling a timing issue between the slamtoolbox package and the lidar data. &nbsp;<\/p>\n\n\n\n<p><strong>MiniMuck Software<\/strong><\/p>\n\n\n\n<p>This week I have been researching ways to use SLAM with ROS2. I found a package for ROS2 called SlamToolBox that has support for the functions we want. It works like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"105\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-159-1024x105.png\" alt=\"\" class=\"wp-image-11742\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-159-1024x105.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-159-300x31.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-159-768x79.png 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-159.png 1248w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The Slamtoolbox takes one full rotation of the LiDAR data in the form of the LaserScan type discussed in last week\u2019s blog. From this rotation it makes a map of the points, Rviz then takes this map and visualizes it.<\/p>\n\n\n\n<p>The issues I have now lie with the time on the Lidar header and the time the SlamToolBox expects. I have tried some fixes like setting a flag the creator of the slamtoolbox has made for faults like this. This didn\u2019t work for me. &nbsp;I haven\u2019t found a fix yet since I shifted some focus to the mechanical structure of the Mini Muck this week.<\/p>\n\n\n\n<p><a href=\"https:\/\/gitlab.com\/mini-muck\/mm_software_2025\/-\/tree\/LiDARBranch?ref_type=heads\">https:\/\/gitlab.com\/mini-muck\/mm_software_2025\/-\/tree\/LiDARBranch?ref_type=heads<\/a><\/p>\n\n\n\n<p><strong>Mechanical Structure<\/strong><strong><\/strong><\/p>\n\n\n\n<p>Together with Herman we have CAD-ed up the Mini-Muck where I took the main responsibility of the wheel arms.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"349\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-160.png\" alt=\"\" class=\"wp-image-11743\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-160.png 496w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-160-300x211.png 300w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"408\" height=\"349\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-161.png\" alt=\"\" class=\"wp-image-11745\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-161.png 408w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-161-300x257.png 300w\" sizes=\"auto, (max-width: 408px) 100vw, 408px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"511\" height=\"425\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-162.png\" alt=\"\" class=\"wp-image-11744\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-162.png 511w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/10\/image-162-300x250.png 300w\" sizes=\"auto, (max-width: 511px) 100vw, 511px\" \/><\/figure>\n\n\n\n<p>It was some adjusting for everything to line up but I have a 3D printer at home so I could test the parts quite fast and how they line up. I have also helped Herman to print his parts.<\/p>\n\n\n\n<p><strong>Next Week:<\/strong><\/p>\n\n\n\n<p>I will continue to 3D print and test the parts all together and hopefully have a finished mechanical structure for the Mini Muck. I also need to debug the timing issue and hopefully get a fix.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\" \/>\n\n\n\n<div style=\"margin-top:0;margin-bottom:0;height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image aligncenter size-medium is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"175\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/08\/mm2-300x175.png\" alt=\"\" class=\"wp-image-10524\" style=\"aspect-ratio:1.7045454545454546;width:150px;height:auto\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/08\/mm2-300x175.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2025\/08\/mm2.png 753w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption class=\"wp-element-caption\">Mini Muck 2025<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello W\u00f8rld!<\/p>\n<p>This week the team made a lot of progress. We got the Dynamixel servos running, completed the controller for the MVP, made progress with slam, and did a whole lot of CAD, 3D printing, and laser cutting.<\/p>\n","protected":false},"author":111,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[101,102],"class_list":["post-11700","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-mini-muck","tag-smart-systems-2025"],"_links":{"self":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/11700","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\/111"}],"replies":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11700"}],"version-history":[{"count":18,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/11700\/revisions"}],"predecessor-version":[{"id":12549,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/11700\/revisions\/12549"}],"wp:attachment":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11700"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11700"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11700"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}