Anatomy of the McKibben Artificial Muscle

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am ordering materials for the artificial muscle I’m going to be working with for a while. Let’s get started!

The McKibben Artificial Muscle

In my research this week, I learned the pneumatic muscle I’ve chosen to start prototyping with is in fact called a McKibben Muscle. An inner sleeve is typically made out of rubber. A fluid –usually air– is pumped in through an endcap. The sleeve expands radially, a woven outer casing translates that outwards expansion to a lengthwise contraction.

I’ve seen several tutorials on how to make these muscles online. The greatest design freedom is in the endcaps. They can be as simple as a clamp or complex enough to need a 3D printer. Their functions are to hold the inner sleeve and outer casing together, seal them off while still allowing air in and out within the greater pneumatic system, and provide mounting points to work on.

Materials Shopping

The most important part is the outer casing. I will be using cable management sleeving like what protects the cords coming off the power supply in my main computer tower. Squish them, and they expand: same principle in reverse of the muscle. I remember at least a couple sources saying to use nylon, but a little shopping yielded a selection of tubes made from polyethylene terephthalate (PET).

Tubing is almost as important as the casing. As long as it keeps air inside the muscle, it should work for all I know right now. I talked about it with my father while walking the dogs, and we figure longer-term durability will be best served by a rubber tube a bit thicker than a balloon, but not so thick it’s near difficult to inflate.

We’ve talked about an air source. Compressors are loud and bulky. Lower end models lack a tank for storing pressure, which I will need for anything resembling a decent response time. We also briefly considered getting a SCUBA tank, but those run more than a compressor and most certainly cost to refill. Whichever option we end up buying, this will be the most expensive part.

We’ve only baerly started brainstorming endcaps. My father proposed using a nut and a pipe clamp for one end, but I’m having trouble imagining how that will look while trying to attach a mount point. Perhaps some PVC piping will be involved after a trip to a hardware store. I can have a T pipe with a plug for a mount point across from the muscle and an adapter to the air supply coming off the tail.

Takeaway

The main consideration for buying parts at my stage is matching size. It won’t do to have an inner tube that barely fits in the expanded profile of the sleeve.

As noted above, it would seem everyone showing off their air-powered muscles has a slightly different design depending on his or her available tools. I don’t have access to a machine shop, so I won’t be modifying any metal parts. Neither is my 3D printer working right now: printed parts will need to wait.

I’m excited to start testing.

Final Question

What variables do you expect will affect the quality of my McKibben muscle design?

Removing Backgrounds With GIMP

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am editing pictures for my church’s photo directory. Let’s get started!

My Background

I first learned the basics of photo manipulation in high school using Photoshop. Pictures can be split apart, remixed with other pictures or original (hand drawn) elements with a wide variety of tools, and sent back out for use elsewhere. The whole operation is organized in a series of layers with their won operations.

Photoshop is not a bad program, but ever since Adobe moved their product to a subscription model, service has have improved for people who use their products consistantly. But for people like me who only need it once every few years and at a moment’s notice, monthly or yearly payments are a terrible investment. I own an old copy of Photoshop, but even then the liscence is a pain to move from computer to computer — and if memory serves, it’I’m limited to the total number of computers it can ever rest on.

GIMP (GNU Image Manipulation Program) is a comparable, free and open source alternative. And in true Linux fashion, it focuses on a small core feature set to serve the vast majority of users’ needs while specialized functionality can be added with extensions. Contrast that with Photoshop loading every tool imaginable for everyone who won’t use but a quarter of them at most. In short: Photoshop has more polish, but GIMP is easier on system resources.

Selecting and Removing a Background

My church produces a photo directory every few years. Families grow, and pictures need updating. I was given a number of pictures and was expected to remove their backgrounds or else turn them white. Photoshop’s tool of choice would have been the quick select tool, but GIMP won’t have a perfect counterpart for this simple tool until GIMP 3.0. Instead, I taught myself the foreground select tool, which I would describe as resistant to learning by trial and error.

The foreground select tool has multiple phases. In GIMP 2.10 specifically, you start with a selection loop, overestimating your subject. You can use line segments or hand drawn boarders, whichever you deem most reasonable at the time. Endpoints are freely adjustable once you’ve closed the loop.

Hitting Enter will put you in phase 2. Here, the whole picture takes on a blue tint (The color is adjustable, but I didn’t learn how). The goal here is to paint in your clear foreground, heavily tinted background, and a lightly tinted buffer between them called “unknown” or “unknown pixels.” Tool options let you switch between what zone you’re painting.

Here, more than anywhere else, it’s particularly picky about keeping on task. I lost about two hours total because I did something just a little too unrelated and the foreground select tool sent me back to phase 1 with no way to undo. It is best to save other tasks in the workflow for later, like adding an alpha (transparency color) channel or duplicating/hiding the original picture layer for quick reference.

Phase 3 will “[calculate] the alpha value of unknown pixels” referring to your boarder zone. It provides a preview of exactly what you’re selecting and lets you make further adjustments, but it will recalculate everything each paintbrush stroke you make. I recommend finding the small dialogue box that lets you disable the preview, effectively reverting to the more economical phase 2. By going back and forth between these two phases, you can tell where the algorithm understands your selection and where it needs more help. Hitting one enter while in phase 3 will finalize your selection.

Training Family

One of the more rewarding parts of this experience was teaching my father this tool, though there were unique challenges. At one point, he was having frustrations getting the tool to cooperate. I had worked with this tool using two or three computers, but his description of what was happening sounded alien to my experiences.

I took a look at his workflow, and GIMP was skipping straight from what I’m calling phase 1 to phase 3, forcing him to use long strokes or face tons of extra recalculation time. Long story short, while I was trying to make his tool icons larger, I found he was on GIMP 2.8, the latest available in the Linux Mint repositories. The GIMP download page directed me to a GIMP 2.10 flatpack installer. The system still prefers GIMP 2.8 when unspecified, but he figured out how to proceed, so that’s a tech support topic for another day.

Color to Black and White

Later on, the software for the directory was making some pictures way too dark. Photoshop has a layer filter for this exact use case with six sliders to adjust different color ranges. GIMP doesn’t include any layer filters, but I was able to make a crude approximation of this tool. Just know there may be a better way to do this and I don’t know it — plugin or otherwise.

To make the perfect black and white version of a color picture, I would start by adding a white background and merging layers if necessary. Next, I menued over to an option to decompose the color channels to a new document. With each layer in grayscale, I added another white background and used Color to Alpha on the red, green, and blue color channel layers. I then adjusted the opacity of each layer until I had a result I was happy with.

Each picture was its own challenge. Most times, I would have one layer carrying most of the data while reducing the other two dramatically. Too little color data, and the picture would fade. Too much, and it would go dark. I targeted a mix where the picture would pop and my eye would relax a little while looking at it.

Takeaway

Both GIMP and Photoshop are wonderful pieces of software in their own rights. I’ve had a class on Photoshop, so of course I’m going to find it easier to navigate that program, even if it’s been years. Despite my slim requirements of advanced photo editing, GIMP’s slim feature set slimmed out a feature or two I miss.

Final Question

Have you taught yourself both Photoshop and GIMP? Which is harder to learn?

The Economy of Scale in Robotics

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am following up on last week’s post, covering my brief corrispondance with Artimus Robotics. Let’s get started!

I first approached Artimus through their site’s Contact Us page [1], where I provided some details about my project – a quadrupedal robot system aimed at hobbyists.

Sticker Shock

The next day, I received an email from Andrew Morton representing Artimus. “Our actuators start at $2,995 and it is another $1,995 for the rest of the kit (kit total starts at $4,990) [2].” He then directed me to the Application Assistant where I could provide more details about my application.

Ouch. I thought HASEL actuators were supposed to be made from relatively low-cost materials. But yeah, I understand: they have the research to pay for, they’re making everything to order, and it’s going to be more durable than something I assemble at home; and that’s just the costs I know about.

Lower Speccs

HASEL actuators reportedly compare relatively well to human skeletal muscle on several metrics [3]. I don’t need that level of performance. I’m also looking at potentially several dozen tiny muscles that only need a few pounds of pulling force. While it would be nice to see my robot galloping, jumping, and dancing, I’ll settle for standing up and walking around obsticles. Getting up and down stairs will be a luxury to strive for.

In all reality, I won’t need my eventual full strength actuators (I’m just going to call them muscles or artificial muscles for the remainder of this post) the moment I have my first fully assembled prototype – certanly not until I have the kinematics worked out. On the other hand, it’s not a bad idea to buy what you’ll need near the end with the idea that you’re not blowing money on as much intermediary equipment.

I went ahead and went through the Application Assistant. The form asked several important questions. What motion does my proposed actuator make? How much, hard, and fast does it move? How long should it last? What kind of space will it be installed in? How presicely controlled does it need to be? Will it need to be self-sensing? What are the most important characteristics you’re controlling for [1]? I answered as best I could, but I found myself leaving the form mostly blank or full of “TBD.”

I came to the last page where it asks for an overall description. I will also take this moment to note that I did not retain a copy of my exact wording, and none was ever echoed back to me. (If there’s one complaint I have with my experience, that would be it). I found myself weaving in most of the information I had put in different note fields, so I compiled it here and tidyed up on the other pages. I also expressed my concern at the up front cost, asking if they offered something like a junior developer’s kit for small scale projects.

Important Questions Without Answers

Hi [Shadow],

Thank you for providing the application details. Do you have a force or stroke specification for the actuators? These are the primary specs used to size an actuator. No problem if you don't have those yet as you're welcome to purchase a standard actuator development kit for preliminary testing to better understand the technology and your needs. I think that is the best path given the complexity of your project. 

We don't have any lower-budget actuators, just our standard actuators that start at $2995 or $4990 for the development kit. Please let me know if you would like a formal quote.

Thank you,

Andrew Morton [1]

At this point, I was coming to terms with the realization that Artimus will be out of my price range until I’m much deeper into prototyping. Even then, I may have a tough time keeping my unnofficial $5,000 goal unless the price comes down.

My reply ballparked my figures: a 20 inch robot, muscles ranging 1-4 inches long, 5-10 pounds of pulling force each, and the whole unit anywhere between 5-20 pounds [4]. Total guesswork on my part. But the focus was more on how my pockets weren’t that deep. I thanked Andrew for his time.

I still hope to work with Artimus in the future, even if it’s for my scaled up version.

Andrew got back to me in a third and final email, probably saving face as much as I was. As I suspected, they’re oriented around industrial clients right now, and smaller clients will be served well once economy of scale kicks in [1].

Takeaway

Going forward, it looks like homemade muscles will dominate my development process until I’m ready for something professionally assembled; my first prototypes may very well end up being powered by pneumatics. They won’t be untethered, but at least I can find the figures I need and get back in touch with Artimus when I’m ready.

Final Question

What artificial muscle technology would you recommend as an analogue for HASEL?

Works Cited

[1] Artimus Robotics. Accessed: June 29, 2021. Available: https://www.artimusrobotics.com.

[2] A. Morton. “Artimus Robotics Actuators” Personal emails (June 30-July 2, 2021).

[3] P. Rothemund, N. Kellaris, S. Mitchell, E. Acome, and C. Keplinger “HASEL Artificial Muscles for a New Generation of Lifelike Robots—Recent Progress and Future Opportunities” Nov. 2020 Advanced Materials vol. 33, issue 19, May 13, 2021 Available: https://onlinelibrary.wiley.com/doi/10.1002/adma.202003375. [Accessed: June 6, 2021]

[4] S. 8472. “Re: Artimus Robotics Actuators” Personal email (July 1, 2021)

Contacting an Author

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am writing in to the authors of the paper on HASEL artificial muscles (hereby referred to as the “HASEL paper” in this post)[1] I covered recently. Let’s get started!

How to Present Myself?

The HASEL paper was dense. I probably understood around 80-90% of it if I’m being generous. It’s an exciting, new technology, but I’m left with questions – questions that might send me looking elsewhere for parts if things don’t work out. I’m writing in.

But how do I present myself? I’m not representing some big company with a finished design; I’m a computer blogger with a dream at best and a wannabe entrepreneur at worst. I have a negligible following, I’ve never bothered to make sure my comments section works, and the default potted cactus theme from 2017 is still staring anyone down who visits.

At the same time, I’m more serious than a random Joe trying to look a little deeper into a novel idea before moving on. I dare say I’m more serious than the average hobbyist looking for a challenging project because I’m already thinking past the “it’s done, that was fun” stage. I want to see my robot out in the world, helping people.

The Letter

To the authors of HASEL Artificial Muscles for a New Generation of Lifelike Robots—Recent Progress and Future Opportunities or whomever it may concern:

I am a computer blogger with three and a half years experience working with Linux. I am presently conceptualizing an untethered robotic system primarily aimed at adept to expert hobbyists. I’ve read your paper, and I believe HASEL actuators show enough promise to warrant serious consideration for my project.

My goal for a version 1.0 is to produce an 18-20 inch tall quadrupedal social robot that doesn’t reach out to the Internet for its basic functions, like speech. By open sourcing the design, users can more easily service their robots and customize them to add character. Adventurous users could assemble their own units from kits containing pre-made artificial muscles, custom circuit boards, and –optionally– 3D printed bones or other parts they can otherwise manufacture at home.

If successful, I dream of the platform being upscaled as large as a miniature horse and serving in a similar capacity to service animals for people with disabilities. If the price can be kept in check, it may even be competitive against the cost of training a new companion animal every number of years. Where an animal might carry a general information card, a robot with an onboard conversation engine could communicate pertinent information in the case of a personal crisis: “My handler is fine. Please leave him alone until he sits up,” “Help! My handler requires XYZ assistance, but is unable to speak.”

A strong point of HASEL actuators I was drawn towards was the possibility of rapid prototyping techniques, but a notable part of the draw vanishes if I cannot prototype shell shapes out of my home lab – even if I expect to need professionally manufactured muscles as I move out of early testing and eventually into release/production. Do you have or plan to make any instructional material on how to develop a schematic which Artimus Robotics can manufacture?

My biggest concern is the operational voltage reported in the paper. Some strategies were proposed to mitigate risk, but are recent developments enough to lower the voltage for a product as described above? If not, do you expect the next 5-10 years will bring sufficient progress?

Shadow_8472
letsbuildroboticswithshadow8472.com

As of writing, I have not sent this letter in e-mail form or otherwise. Only when I sat down to start my write up did I think to instead contact Artimus Robotics (I just realized it’s spelled different than the Greek goddess so no help from spell check). Their site [2] even has a contact page I only laid eyes on last minute as I went to dig up an e-mail address I remember seeing in the HASEL paper.

Takeaway

While attending university, I tried contacting the man behind another exciting robotics technology for a research paper. No response. I don’t want a repeat, and they’ve presented a better method to facilitate first contact. It’s just the information in my now open letter will need to be spread out for the different format. I’ll do a follow up soon if things work out.

Final Question

Have you ever tried writing in to a company?

Works Cited/Mentioned

[1] P. Rothemund, N. Kellaris, S. Mitchell, E. Acome, and C. Keplinger “HASEL Artificial Muscles for a New Generation of Lifelike Robots—Recent Progress and Future Opportunities” Nov. 2020 Advanced Materials vol. 33, issue 19, May 13, 2021 Available: https://onlinelibrary.wiley.com/doi/10.1002/adma.202003375. [Accessed: June 6, 2021]

[2] Artimus Robotics. Accessed: June 28, 2021. Available: https://www.artimusrobotics.com.

Project Evaluation: Old Church Laptop

Good morning from my Robotics Lab! This is Shadow_8472, and today, I am going evaluating a “barn find” of a laptop to see if it’s worth resurrecting to limp along for someone another year or two. Let’s get started!

Eyes on the Hardware

The laptop in question was built for my church to run Audio-Visual (AV) when all it needed to do was run PowerPoint on Sabbath mornings. It was replaced after our audio CD ministry, which was hosted on dedicated hardware, was superseded by live streaming services directly to the web.

The laptop has spent the last several years tucked away in a corner cabinet built into the church office protected by its carry case. After a few calls to the other AV team members, I have permission to do with it what I can.

A further inspection of the case yields a CAT .5e Ethernet cord, a USB Wi-Fi antenna (most certainly useless by now), a bag with some software CD’s, and a tiny, little corner pocket has a slideshow clicker/laser pointer combo with an empty slot where its dongle should be stored. Unfortunately, the package is power cord not included.

Inspection of the Case

Low usage during the laptop’s lifetime means the case only has a few scratches on the lid. There’s even a hard disk logo is clearly visible on a rubber pad where it should quickly get worn off under normal use.

The lid is secured by a spring loaded slider and a couple hooks. Opening it up presents me with an old 4:3 screen. Two stickers to the right and left respectively warn the user about upside down USB ports, and advertise the Pentium 4m CPU.

The bottom has a little more information. There’s an empty, plastic pouch for a business card where someone wrote, “[name]/ SDA/ Church/ AV Dept. 7/04.” Another sticker licenses this machine to run Windows XP Home Edition, and the product key is clearly visible. Another sticker gives its serial number with a bar code, and the FCC compliance sticker says it is an A2500L Notebook PC and asks for a 19 volt power supply, 3.42 amps, 65 watts.

I also poked around, inspecting the sides. I recognize a number of USB ports, a VGA connector and a parallel port –each complete with screw holes– separate Phone/Ethernet ports, a DVD drive, and an empty bay where an optional SD card reader would have gone.

The Search For a Power Supply

This right here could kill the project before it even really starts. It’s why I’m even putting this much effort into writing about project evaluation instead of an actual project.

There was nothing in the cabinet where the laptop hid away. In fact, I left it there a couple days when I didn’t find anything looking through the AV booth, though since I’ve brought it home, my father has suggested looking behind the equipment where a mere AV tech used to operating the system wouldn’t think to look.

You never realize just how many standards of voltage consumer electronics use until you look through the myriad of transformers contributing to spaghetti soup where they collect. Each voltage has at least one different size to keep you from frying something.

My father was eventually able to find a 19v power supply, but it’s way lower of an amperage than the laptop calls for. At best, I’m looking at leaving it to charge overnight for an hour or two of work, and that’s assuming the battery is in any good working condition.

Takeaway

I honestly don’t know if you’ve heard the last of this laptop. Without a proper power supply, nothing is happening. The most we’ve gotten in terms of charging/booting is total power loss after displaying an ASUS logo, most likely while loading the BIOS. Otherwise, there’s an orange light that starts blinking when plugged in.

Future potential is mostly in learning on my end. My goal –assuming I can get it running browsing, E-mail, and possibly streaming a video– is to find someone in the church who needs a simple laptop. I’d be putting a lightweight Linux distribution on it. A friend recommended XFCE with a Win95-like aesthetic, and while I might think a 10 clone would be more readily accepted, the older look might afford it more slack, though a quick search landed me looking at a theme called Longhorn Plex I might try to look like its original XP.

In all reality, this thing is 17 years old! I am literally grave robbing here, even if it wouldn’t feel self-conscious being set up in a museum or personal collection.

Final Question

Have you ever pulled in an old laptop, only to find the power cord AWOL?

Attempting a Personal Wiki

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am trying to set up a personal wiki to understand my own site better. Let’s get started!

Searching for a Wiki

Pick a game, show, or fandom, and chances are you will find a wiki for it — sometimes more. These online subject encyclopedias are normally open for readers to edit, and otherwise need no introduction.

I already knew there existed at least one version of the software free and open source, but Wikipedia has a whole list of them [1]. The table was static [note: only on mobile], so I had to mentally track for process of elimination across categories like open source vs proprietary or even its target audience.

My use case is to make a wiki about my sister’s fanfiction series. She’s built up her own take on the world of Sonic, and we decided it could be fun to learn how to organize elements of her story into a familiar format. If successful, the same process will make it easy for us to grow similar wikis from other stories, like when we’re worldbuilding for a possible role play game.

I landed on pursuing Foswiki [2]. It’s not limited to a single user, it’s free and open source, and it has most or all the features tracked in the comparison cited above. I did not notice at the time, but it expects you to work with Perl, a programming language of which I know little more than the name. I am open to learning, though.

Foswiki Host

For the record, I currently lack a dedicated home server I have complete control over while ButtonMash is on picture scanning duty and my fleet of Pi’s is dealing with unknown issues: either a poorly chosen brand of SD cards or one of the machines going bad. Besides, I was hoping some of you finding this post might be interested in doing this at home, so I wanted to use one of my workstations.

I landed with using DerpyChips. Even though it’s not always the most stable, it is the most readily accessible of my workstations from any point on the home network. I encountered some trouble updating though: a repository in its listings was no longer signed. It wasn’t until the next day of work that I noticed it was just a repository for Celestia, a computerized home planetarium. So far, the issue has been ignored, but it ate up a lot of the time I otherwise would have used towards the main project. In the meantime, I had reached out to three or four places, including the PopOS Matermost chat and the Celestia Discord once I identified the problem.

Apache2

A web site cannot run on bare operating system alone, apparently. There’s an extra layer called a web server. Apache Web Server is a name I’ve heard in relation to the web for a while. I gather it’s a popular choice. It was also mentioned in the installation documentation for Foswiki, and only after I installed it by repository did I notice that it’s only one of a few supported options.

Apache installed smoothly. sudo apt-get install apache2 and Firefox was able to reach the test page for Ubuntu at Derpy’s IP.

My only reservation at this point is a possible mix up between Apache and Apache2. It’s just a version difference, but I have not spotted Apache2 being called out in Foswiki’s documentation.

Takeaway

I fully hoped this would be a one and done project. Once understood and scooted the problem to the side, Foswiki appears more involved than I expected. I don’t want this to become another long-term project, so I may take another look at that list again and see if there’s something geared a little more towards a brother and sister organizing thoughts.

I find it odd that Foswiki doesn’t capitalize their W when most other wikis appear to.

Final Question

How would you use a personal wiki to organize information?

Works Cited

[1] “Comparison of Wiki Software,” Wikipedia. Accessed: June 13, 2021. [Online]. Available: https://en.wikipedia.org/wiki/Comparison_of_wiki_software

[2] Foswiki. Accessed: June 14, 2021. [Online] Available: https://foswiki.org/

HASEL Actuators: A First Glance

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am continuing my research on my design for a personal robot. Let’s get started!

Situation Overview

In my last post on this subject, I introduced my overarching vision for an open source social robot aimed primarily at hobbyists at or around my skill level as of when I first got serious about this project: familiarity with Linux, a little experience with 3D printing, and the perseverance to see it through. This will not a beginner’s project. But that doesn’t mean I can’t plan on lowering the barrier to entry.

When all is said and done and I have my completed plans, any master level hobbyist is more than welcome to assemble one resistor by capacitor by electrode should he see fit. That doesn’t mean I won’t be able to arrange already cut or assembled circuit boards for those who need it. I might also arrange kits for people who just want to assemble their own robot from parts, and I can even possibly open up orders for fully assembled units.

HASEL Actuators

A major concern I’m designing around is cost. Motors are loud, bulky, and as expensive as they can be precise. Artificial muscles can typically be made for pennies on the dollar while offering a lot more design flexibility. They are, however, an overall younger technology.

While there are multiple possible designs floating around, I’ve been reading up on Hydraulically Amplified Self-healing ELastomeric actuators (HASEL), a relatively new technology within the relatively new field of artificial muscles. Imagine a baggie partially filled with oil. Paint or otherwise affix some flexible electrodes to magnetically squish together when a high voltage is applied, and you get the basic idea. The oil pushes out the sides of the baggie, causing the whole thing to contract lengthwise. There have been multiple generations of designs, each with its own improvements, drawbacks, and studies [1]. It makes for some very dense reading when authors use big words to talk about all of them at once.

My goal for right now is to start prototyping this month. Even if I don’t have a high voltage power supply to work with by then, I’m bound to learn something.

Citation Needed

To date, when I’ve needed to credit a work, I’ve listed a name in my text and thrown in a link. Citation was often my least favorite part of writing a paper, but I’ve decided that if I’m looking to be a little more serious about this blog, I really should start using appropriate citations when referencing things.

As I was finishing up this post, I looked up the format. School will teach MLA and APA as a given and Chicago if they’re up for some variety. It’s all a matter of what standard is being used in the field you’re writing for. From now on, I shall be using the IEEE standard as I am writing for the field(s) of technology and computer science.

Of note, the work cited in this post is actually one I’ve been digesting since at least early March, before it’s inclusion in a journal last month. I’ve accessed it multiple times, but I haven’t kept track of it. My father finally made a hard copy this week, so I’m “accessing” it from there in terms of citation.

In all reality, I don’t have a teacher marking me down for imperfect citations. The real goal is to let you guys know enough so it should be easy(TM) find whoever I’m talking about, even if a link dies. I’m also limited by what I can coax WordPress into doing, so proper indentation is not happening any time soon. I tried it. It broke the brackets.

Final Question

My post lengths vary quite a bit. About how long do you think I should aim for in terms of word count?

Work Cited

[1] P. Rothemund, N. Kellaris, S. Mitchell, E. Acome, and C. Keplinger “HASEL Artificial Muscles for a New Generation of Lifelike Robots—Recent Progress and Future Opportunities” Nov. 2020 Advanced Materials vol. 33, issue 19, May 13, 2021 Available: https://onlinelibrary.wiley.com/doi/10.1002/adma.202003375. [Accessed: June 6, 2021]

Family Photo Chest: Part 15.1: Incremental Improvement

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am working with my father, Leo_8472, on creating a master archive of our family photo collection. Let’s get started!

A Project in Motion

I’m starting this post off with a section written by Leo as my first-ever guest writer, since he has been doing most of the scanning.

Hi. Leo_8472 here, and today I am writing about my experience learning curve on using the scanning system set up by Shadow_8472 for our family photo archive. This has been a long process getting set up and now we are starting up production scanning. Shadow_8472 showed me the basics of XSANE scanning software, but here is where I go solo.

The first thing XSANE does when starting is to look for scanning devices. So, the flatbed scanner needs to already be on and fully booted up, or else XSANE will not find it. My next battle was to turn on the ‘Acquire Preview’ so that I can scan only the area of the flatbed with my photo, not the entire glass.

I eventually found the Acquire Preview Window option, but not before going down several rabbit holes. One of these rabbit holes holes pulled me in when I clicked on a gamma adjustment control on the XSANE menu and the gamma controls exploded, making the menu extend off of the bottom on the screen. XSANE would not let me move the menu up higher to reach any controls at the bottom of the menu, like the scan button. So in an effort to get more screen real estate out of the garage-salvaged VGA monitor, I swapped on an HD LCD monitor from my usual computer. Ahhh, an HD image at last. Almost. The image Button Mash was sending to my HD LCD monitor was exactly the same as what was sent to the VGA monitor. ARRGH! To get higher resolution I had to dive into the operating system’s monitor settings and raise the resolution to maximum for my new monitor. This mostly worked and I was able to see more of the XSANE menu, but not all of it.

Shadow_8472 came to my rescue to help me resolve the menu difficulties. He did not know the solution off hand, but started the process of looking up instructions for the gamma controls on the internet, ans we found a “Candelabra” toggle in the XSANE menu which will shrink the menu to a civilized size.

With the menus tamed and the Acquire Preview window showing, it is time to scan. I select a photographic print from the archive and examine the front and back of the print. Some of the photos have valuable information written on the back of the photo. (Old style Metadata.) I can often decode some of the info on the back of the photo such as a date or a name and sometimes the information is in Russian, which gives me a hard time. Anyway, photos with writing on the back get scanned both front and back. We decided to add the letter “F” for “front” and “B” for “back” to the end of the file name so that we can keep the files together.

I scan the front of the photo first, save it to a descriptive directory and then scan the back of the photo. We started scanning small photos at 1600 dpi and found the result was huge and filled an HD monitor display. 1600 dpi will pick up the texture of the surface of the photographic paper, so there is plenty of latitude for future cropping, if anyone wants to make an enlargement of this photo in the future.

The scanning process is repetitive, so I try to get into a rhythm of the steps required. Saving the scan to our Network Attached Storage (NAS) was taking at least as long as scanning and making for longer wait times. To shorten the wait, we repaired a length of CAT6 cable with a new end connector and put the scanning system on a hard wire cable rather then relying on WIFI.

We performed a test to determine our improvement in network speed by scanning a sample snapshot and timing the save using WIFI and using the CAT6 cable. We found that our sample snapshot of about 70 MB took about 34.5 seconds to save using WIFI and a second scan of 90 MB took about 4.5 seconds to save using the CAT6 cable. Saving 30 seconds per scan for this sized file is a great improvement as it is almost 10 times faster using the hard wire connection.

Future potential improvements to the scanning process would be to implement our ideas on the physical handling of the prints that we are scanning. Another important thing for this scanning project is to try to make progress every day to keep the momentum going. Eventually we will get through the whole archive.

Ethernet Enabled

Shadow back here. A while back, I was given the remnant from a spool leftover from when someone ran a network wire under our church. Originally, I was going to use it for a model supercomputer, but that project is on hold pending a better understanding of packet routing; I don’t want the individual nodes seeing other computers on the home network.

I had an idea while originally brainstorming the setup to run that cable from the router to the room where we’re set up for scanning, preferably before we cut it up into a bunch of little patch cords. We learned how to put the connectors on, but the cable didn’t work.

We eventually got confirmation from a continuity tester we ordered that a couple wires were switched, and one didn’t connect at all. In an effort to speed up saving each individual picture, we pulled out the tools to redo the ends. Leo managed to find the exact video for our crimping kit, and when the first one was done, I went ahead and tested continuity again. By chance we had fixed the bad end, and the results matched a known good cable.

I ran the cable from the Button Mash workstation directly to the router. Once I had it adjusted and everything, it had maybe a few inches to spare. We ran two tests: a ping test, and a speed test. When pinging the router at 10.0.0.1, we were hearing back about four times faster. The speed test had Leo scanning a picture and saving it once over Ethernet, and once over Wi-Fi. Ethernet finished saving in about 3 seconds. When we went for Wi-Fi, XSANE crashed while switching over, so we rescanned and saved a similar file, and it took around 30 seconds. My Pi 400 is stepping down from Wi-Fi duty.

AI Enhancement

And now for something I spent a while on, but have yet to get working. I thought it would be funny to pull a fast one on Leo by using an AI covered in one of Two Minute Papers’ YouTube videos last year. He explained how researchers came up with a new way to colorize black and white photos that addressed many issues with missing data, citing subsurface scattering where light bounces around within a subject’s skin before coming back out.

I managed to find the GitHub from the project and clone it. I tripped during configuration, not understanding the dependencies had a step to install them using an environment tool called Conda until someone pointed it out to me. Conda was a bit of trouble in and of itself. I don’t know exactly how I got it working, but one time I repeated an instruction and got a working result when expecting another failed one.

I set up the environment and switched to it, but eventually ran into an error I’m not able to blitz my way through: CUDA out of memory. All four gigabytes of my GPU (Graphics Processing Unit or graphics card) were gobbled up by the test pictures, and the model kept asking for more.

I even went to the lengths of asking my sister if I could put my hard drive in her computer to borrow her graphics card, but the thing ate through all 8 GB of hers and burped out the same error without seemingly making any additional progress.

My trouble is I don’t know what kind of hardware I need for this. I’m imagining a dedicated server with four top of the line GPU’s running headless (no monitors, accessed over SSH). There’s still the chance it could be looking at my card and thinking it can take everything and make up the difference with relatively slower resources elsewhere on the system. In that case, I’d be pouting at me over having to share with my GUI (Graphical User Interface).

Takeaway

You don’t need to wait to start a project until conditions are perfect, otherwise things will never start as new ideas are half-developed and never tested. Think small thoughts starting out as you continue dreaming big. Invest slowly as you need it.

Final Question

What sort of features would you like to see if/when I see about a site redesign?

Family Photo Chest: Part 15: Day 1, for Real This Time

Good Morning from my Robotics Lab! This is Shadow_8472, and today is officially –no questions asked– Day 1 of actual scanning my family’s photo archive. Let’s get started!

Scanner in Motion

We’re scanning! We’re actually, finally scanning! It feels worth almost nothing that most of my research on fancy techniques is in the bit bucket. It’s been a long year for me, yet when I picked it up, my father had had it for quite a bit longer.

It came to my attention that my main hangup is names. I don’t know who most of these people are, where they are, or when they were there. Meanwhile my father keeps doing show and tell. In the end, this is still his project just as much as it has been mine. I have researched and assembled the equipment and software, but he is going to be the main force behind putting names to everything.

Our System

We are taking some advice we found about grouping photos by location and approximate year. Batches are now defined by these groupings in their own directories, for example: LosAngeles-1952. We’ll also have a metadata file we should be able to do something with at a later time if we need it.

While the microfiber gloves aren’t working out for us to wear, they’re still microfiber, and they can still clean dust. Even then, there’s only so much that can realistically be done. Rips, scratches, and mold have destroyed original data.

Scanning is unfortunately picture by picture. There is a possibility I might try something with the GIMP XSANE plugin later, but for now, bare XSANE works well when used as intended: preview, select scan area, scan. We’re dumping our scans directly onto the NAS (Network Attached Storage), changing the name of XSANE’s preview as we save it to denote front or back when necessary.

Scanning at 1600 dpi, a postage stamp displayed at full resolution would nicely fill the old, boxy, VGA tube monitor I pulled in from the garage; a postcard natively fills a more conventional HD monitor. I was dreaming it might go up to 4K or 8K; technology progresses, but the archive will not.

To come is digital editing for the best photos. Acidic paper slowly eats itself away, giving old photos that characteristic yellow. Rips, scratches, mold, and dust will take time to remove, but it’s perfectly doable with a brush. And of course, edited photos will get a manual deskew and crop when needed, which is most of the time as I can’t stand to lose detail off the scan area, and it doesn’t line up with the glass perfectly.

Takeaway

Writing on the back is what really killed most of my grand plans. XSANE really didn’t want to accommodate in that department, my hack confused my mother when my work in progress confused her, and I never got around to touching the script I saw mention of for putting front and back side by side in the same file. On top of that, scanning backs is prone to mismatching when using the script Divide Scanned Images.

This project is a team effort now. As noted earlier, I’m being the tech support here, and my father is moving to be the star of the show. We’ll be trying for at least a package of pictures per day, and if it all goes well, we’ll bring the second workstation into the mix.

Final Question

Have you ever worked on a project, only to have someone seemingly take over, but realized it was turning into more of a group project with distinct roles?

I Got Git, But No Pi

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am starting out with Git. Let’s get started!

Previously…

Last week, I was all set to install Git on BlinkyPie, my Raspberry Pi 3B+, but it had some problems with accessing the apt store. I felt lucky getting away with barely fixing what I broke, but the cause remains unidentified.

Git

Disclaimer: this will not be a comprehensive tutorial starting out. There are plenty of those already. If you’re just starting out, I recommend a shorter tutorial. I viewed three videos ranging from 15 minutes to an hour (I still haven’t finished the hour long one) and found the information density roughly the same with longer tutorials covering features and configurations I’m guessing aren’t important for a single user first project. Focus on the main loop, then expand. For any one who missed my last post, GitHub is a site hosting the most well known and widely used Git server. I won’t be touching it today.

Every time I do any research about Git, it seems about ten times bigger then last I remembered. It’s free, it’s open source, and it’s even industry standard for tracking changes in a project (Version Control). I should have been using it ten years ago, but like pretty much any tool originally written with Unix or Linux in mind, its initial impressions when using it on Windows were that of an aquarium at a dog shelter; it’s been made to work, but it hardly looks like it belongs. I strongly recommend project or two in a Unix like environment to learn the command line if you want to become fluent in Git without relying on a graphical interface.

Git Server Installed, Not Configured

I have yet to see what is of BlinkyPie, but I was easily able to install Git server onto GoldenOakLibry, the Network Attached Storage (NAS), from repositories over the web interface. Had this been restricted, like what happened with my Bitwarden server, I would have proceeded with rigging a Pi to host while storing the data proper on the NAS.

Proper server side configuration will be a matter for another week. My goal was to have a test repository accessible from all my workstations. However, it appears I need to do such things as make a git user and set up credentials and user keys. I’m not prepared to do that this week.

A Simple Start

I know it doesn’t sound like much, but I have taken my first steps toward intuitively understanding Git. I made a directory and used git init to tell Git it is a repository. Git in turn made a hidden administrative directory called .git, which I don’t touch on pain of messing up the project history. I made a simple text file and walked myself through adding it, and committing it with some difficulty following on-screen instructions when it wanted a note about the commit.

The next step would have been to push it to a repository I’m at a loss for setting up. While writing, I went through the same steps again on GoldenOakLibry with no idea how I’m supposed to use a server except possibly using clone on all my client machines. I even went through the confusion that is vim terminal text editor, since nano wasn’t around and won’t be for the time being.

Takeaway

Git is big. Every programmer should learn it. Just don’t go learning both Git and the command line at the same time. I had trouble learning which was which way back when. And if you reasonably can, install Linux. All it takes is a small distribution on a thumb drive; an old computer is even better.

Final Question

Got Git yet?