Wanna be the best,
Like no delta ever was,
At what, I don't know

This Is How We Do

In academia, we use the word "towards" in titles when we don't necessarily know what we're talking about but want to get something out into publication to at least get people talking (also to game the system and farm citations, but that's another story). A problem with optimization is that we can do so any number of ways, including workspace size, stepper resolution, effector stability, actuator efficiency, manipulability index etc.

For my purposes, the design space includes just 2 parameters: the arm length (L) and the virtual delta's radius (R), which should be equivalent to the printer radius variable in the Repetier firmware. Consult my last post and Steve Graves' Kinematics Document for more details about the virtual delta equivalent. Considering the virtual delta simplifies a lot of the calculations and also lets us temporarily disregard the carriage and effector offsets, which may vary between delta designs due to unavoidable design constraints. The overall delta radius (distance between center and towers) should be equal to the virtual delta radius plus the carriage and effector offsets. I would argue that the carriage and effector offsets should both always be minimized to reduce cantilevered load on the linear rails/rods and effector weight, respectively.

We can evaluate each set of delta parameters a number of ways:

  • Minimize Max Tower Travel: This can be approximated by the pose where one of the arm pairs are oriented vertically. This is effectively the amount of "wasted" travel in the detal
  • Minimize Azimuth/Elevation Joint Range: Certain joints (the Traxxas universal ones in particular) can only accommodate a limited joint range, especially in the azimuth projection. Also, in my experience, magnetic joints can tend to pop out at high speeds when the joint travel is large.
  • Maximize Avg Tower Resolution: For a unit motion across the build plate, we want to maximize the effective steps/mm so that the machine is more robust to possible stepper errors. We could also maximize the minimum tower resolution, but that tends to only describe very specific regions of the build plate. The same could be said about minimizing the maximum tower resolution (to enable higher speeds).

I've ignored loading and forces completely. Minimizing the azimuth/elevation ranges already sort of help account for loading concerns. Also, I think most designers just assume that the loading on the moving effector is close to negligible. Minimizing the effector weight would probably do more than any optimization through adjusting radius and arm dimensions (pure speculation here).

Optimization Setup

For my design, I'm using a hexagon heated bed with a build radius (bR) of 170mm. I'd like to note that the build radius pretty much determines the minimum virtual delta radius, if you don't want the arms to go past vertical (and I don't think you should). I found it a bit curious that the Rostock MAX build plate has radius 140mm, but its virtual delta radius is only around 130mm (from the stock Seemecnc Repetier firmware). Even though the virtual delta radius can be as small as the build space radius, we've seen that the ik tends to explode as the arms approach vertical, so we'd want some buffer. I varied the radius parameter bR+10 < R < bR+50. The limits were pretty arbitrary, but since the arm length would need to increase with the delta radius, the wasted build height will begin to increase as well. Keep in mind that the final delta radius is this virtual delta radius plus the carriage and effector offsets.

For the arm length (L) values, I actually varied the range of arm lengths to test for each tested radius value. I considered the initial configuration with the effector at (0,0) and took the arm length corresponding to a range of elevation angles (45 < E < 75). I've read more than a couple of designs suggesting an initial elevation angle of 60 degrees, so I based my test range around that as well.

In total, I ran 400 simulations, which took about 3 hours.

Results: Max Tower Travel


No big surprises here. This confirms the suggestion to minimize the arm length whenever possible to preserve build height. A larger delta radius and initial elevation angle necessitates a longer arm length. Minimizing both when possible will help us maximize our build height, assuming our overall machine size is limited (maybe due to structural concerns or part availability).

Results: Elevation/Azimuth Range


Ah, now the results get a bit more interesting. First off, ignore any outliers; I think I have some wrap-around errors when computing the joint angles properly. At first glance, it looks like the trends seem to be completely at odds with the results for the max tower height. However, note that: 1) the results begin to taper as we increase angle E or arm length L, and 2) the design isn't necessarily limited for elevation range, especially when using Traxxas joints.

Focusing on the azimuth range, we see that there gets to be a point where increasing the initial elevation angle (and the arm length, effectively) doesn't provide any noticeable change to the distribution of results we're getting. In those scenarios, increasing the delta radius is what lowers the maximum azimith range. Selecting an initial elevation angle between 0.9 and 1.0 seems to be reasonable for my specified design goals.

Results: Tower Resolution


These final results regarding resolution are where I'd like to focus and prioritize. First off, I should note that I'm not sure what's going on with the outliers in the maximum resolution plots. I want to say these are edge cases that happen when the delta's on its workspace boundaries, but it's weird to me that they show up for all delta radii. The minimum resolution results are encouraging: for small initial elevation angles and shorter arms, the minimum resolution can be mostly guaranteed to be above 0.05. From the last post, it was approximated that a single commanded step corresponds to a 0.01 tower motion. The mean resolution results show that increasing the arm length decreases necessary tower motion and subsequently increases the demand for a higher degree of tower precision.

For my purposes, I would like to keep my initial elevation angle above 0.9-1.0 in order to avoid the maximum resolution outliers as a precaution, though I could argue that I'll never print on the furthest boundaries of my workspace, so maybe that's not as critical. Otherwise, these results suggest a general design rule: decrease arm length for a higher resolution printer where speed is not as critical, and increase arm length to optimize for print speed.

Optimal Design?

Your design goals may vary, but I'm operating under the following constraints:

  • Limited z height (I've already bought my 1515 extrusions) for a 160mm diameter build plate
  • Precision over speed (small build plate, so I'm not planning on printing incredibly large items)
  • Would like to minimize joint travel, so that the effector can actually reach outside of the build space for nozzle wiping or deploying/retracting a z-probe

This suggests a wider-than-normal delta with an initial elevation angle of around 1.0 rad (57 deg). There's no clear optimal, but by the plots, I'm comfortable with a delta radius around 110 mm, resulting in an arm length of approximately 204 mm. Assuming similar carriage and effector offsets as the Rostock MAX I currently have, this would mean an overall delta radius of 170 mm (from build plate center to the towers/rods). The overall machine size will be a tad larger than this as well.

Are these the "best" delta parameters? Probably not. They're actually also quite close to the oft-suggested initial elevation angle of 60 deg. However, this at least gives me some validation and reasoning behind my choice of dimensions instead of just going about it haphazardly or by copying existing designs directly