MiniMuck – Week 4


Hello Wørld!


Leon

This week I used most of my time on research, and trying to understand how to use ROS2_Control. After getting a basic understanding of the system I started working on a URDF file for our vehicle. As well as messing around with RVIZ and looking into the Interface Control Document (ICD) with Herman.

The diagram above is a simplified version of how we plan to control the vehicle, I made it this simple to show the main concepts, and not get lost in the details. The structure contains of the physical hardware, a hardware driver that will be on the arduino mega, and then we use ROS2_Control on the RPI, for the HW Interface, which basically just is the file that is described by the diagram below. Then we have the controller and the main application.

This diagram shows how the software think the vehicle is structured and how all the components are linked together. This diagram is auto generated from the URDF-file.


Herman

This past week I had a review on the power supply before redesigned the top-level electrical architecture and defined the interface between our custom Actuation and Power Module (APM) and the main computer.

Ask reviewed the design for the DC/DC converter which he will write more about below. We then concluded that a power supply of this capacity should not be necessary. This does not mean that the supply is no longer needed, but we can downsize and choose some cheaper components.

To account for the changes in how we power the servo motors, I have updated the top-level electrical architecture with the new servo operating voltages.

With the new architecture in place, servos were sourced with the correct operating voltage and torque for our project. The torque requirement is a ballpark estimate at this time, but due to lead times, we account for a risk where we have to limit the arm angles to the hardware limitations. The key difference between the alternative servos were the extent of documentation. On DigiKey, the documentation was limited, but seemed to be consistent, while on AliExpress, the documentation was often contradicting itself making it difficult to trust. AliExpress has a limitation of one item per customer as a “New customer offer” on most of their products with the specifications we needed, which is not optimal.

Finally, I worked together with Leon to define an interface for how the main computer shall communicate with the motor controller and power supply. We went for a low-level approach using UART and instructions structured with an opcode and operands as shown below. This is a very efficient way to communicate using UART, and gives us enough flexibility while enabling a more reliable communication by limited the baud. See attachment for further explanation.

<Opcode Byte><Operand Byte 1><Operand Byte 2>

The next week, I plan to update the power budget and continue working on the motor controller for the LiDAR. When this is complete, we will have all the electrical hardware for our MVP Computation and Perception Module (CPM). The PCB I plan to implement, will be the card used on the final product, and since we only have one LiDAR available, the card must be tested and verified thoroughly.


Helle

This week I focused on mechanical solutions for how the car’s legs can move. I explored solutions using turntables or roller bearings to handle both axial and radial loads, providing stability when the legs rotate sideways. I also considered how such bearings could be combined with servos to make the rotation both precise and robust.

The plan is to build a car with four arms. The front and rear arms should be able to rotate sideways using servos, and the front arms should also be able to lift and lower with servos. Each wheel will be powered by its own DC motor. The challenge lies in finding a good solution for the rotation mechanism of the legs, while also designing a lifting system that is robust enough.

I examined several possible principles:

  • Rotation can be achieved with different types of bearings. Simple angular contact bearings in pairs provide an affordable and practical solution for moderate loads, while slewing bearings can withstand both high axial and radial forces and offer stiffness, though at the cost of higher weight and price. Thin-section bearings allow for a lighter and more compact design but have lower load capacity. The choice of bearing will directly affect how precise and stable the legs rotate under load.
  • Lifting can also be solved in different ways. Direct servo drive on the arm is simple but requires sufficient torque. A leadscrew solution offers strong force transmission and precision but takes up more space and often requires a stepper motor. Another option is a worm gear, which provides high torque and can hold position without continuous power. Parallel linkage or angle arms can also be used to distribute the load. Each solution has its own advantages and is evaluated against requirements for strength, space, and control.

Next week I plan to continue developing these solutions in SolidWorks and investigate whether some of the bearings are available in suitable sizes that can be purchased, or if they will need to be customized and manufactured.


Sara

This week i have tried to get the GUI to have input from the Muck. To do this I was thinking about taking the input via Bluetooth. I’ve searched and tried a couple of things, but it seems like if I’m able to install Bleak, I can get the input from there.


Ask

Hej Bloggen!

This week have mostly gone to finding out how ROS2 works with the help of Leon. I have set up a publisher script that will enable us to use the LiDAR data in RVIZ.  To start using RVIZ I needed to install Ubuntu and ROS2 on my Raspberry PI. This caused some problems because of some access rights on the Raspberry PI. I also had to make some small adjustments to the LiDAR parser script for it to work with the Publisher part.

I Also helped Herman with looking over some schematics for the electronics. This proved to be helpful as I found that Herman had overlooked the number of capacitors   needed and I also found a wrong component value.

Next week I will continue looking at the installation of Ubuntu and how to control the motor speed of the LiDAR with the help of Herman and his electronics


Mini Muck 2025

Leave a Reply