In His Lordships Servose

I was getting weird behavior from the servo and whiney error messages when uploading scripts. With the assistance of the internet, I found out that not all USB ports are created equal. Obviously there different specs, but also where everything hooks up. Basically, by going through the front I was using a port on a hub, and that was my problem. One I plugged in to the back of my computer, I typed a number, and that’s where it went.

Huh.

So I got some play it off the servo, but not the movement I was expecting. Is it the wiring? Is it the second? Is it Maybelline?

End of (Vacation) Days

While I did more work than my normal meh-worthy amount this vacation, I didn’t get as far on my projects as I hoped, which means that my plans for overlording or new robotic overlords is still a process. I think a lot of my challenges comes from the cyclic way I work on things. While it’s great to always come into projects with 90% of fresh eyes and thereby be willing to try something different, it’d also be swell to be able to make that choice for myself rather than let my unfamiliarity with the topic force the new avenues.

Where I’m at? I have my box of motors and stuff. I’ve realized things I should Amazon and am currently building a shipping cart. I’ve started to hook up things experimentally. I have opencv installed and am working through a dozen different tutorials to get it to do the training for the caps.

I currently have the grippers servo plugged into the RedBoard, but I’m getting no movement. I’ll need to look at a few things when I get home: is it the board, the software, or the servo? I should start with the servo as that’ll be easiest to diagnose, as I can just swap the servo. After that, it’ll be the board…

I did dismantle that old power drill I have and am going to start looking at making it a drill press I think. The motor and gearbox are fine if I remember correctly, it’s always the batteries that die first.

Day 9 – End of Day

I had a 22 and a pint. They were both quite good from Flying Bike, so I’ll be leaving my arm until tomorrow. I’m still thinking of a name. I probably should just look up the name of the AI that was born in Neuromancer and became an artist I’m later Willam Gibson novels… But that almost seems wrong as this won’t have that level of autonomy (yet).

Speaking of novels, I was thinking of one of my favorite quotes:

Huh. Can’t find it. I’ll have to read the collected works of Douglas Adams again. Needle Haystack, GO!

Day 9 Notes

Now to still, imwrite doesn’t create a folder that doesn’t exist, nor does it care the folder doesn’t exist. As a plus note, the continuous swapping of the bottle caps I think qualified me for my physical therapy of the day. Now I can do tomorrow’s also…

I have 200 pictures of beer caps now. Just need to crop them all, grab about twice as many negatives (though that’s way easy enough as they can be anywhere and anything) and get processing.

Right. Cropping them is being annoying. Cropping an image takes a few seconds, but a few seconds adds up. I’m trying to get a utility called imageclipper to play nice, but so far it won’t run. Now to try building it myself. That’s taking longer than I’d like as well because one of the libraries it uses had to be gotten first, but it’s behind a 60k file zip…

Screw it. I’m doing it by hand for the minute. I’ll get it pre-existing, and see how far along I get in the processing of the actual Cascade in the morning.

Day 8 – recap

Python is fully installed with numpy and opencv sans virtual environment. Plugged in my baby webcam and was able to capture video and stills. I started digging into doing the actual recognition, but I had to compile stuff from scratch (or at least my initial look around didn’t come up with the executable I needed). I then whipped out Visual Studio for the first time in my life, and Microsoft managed to do something that was a pleasant surprise. I pointed it at the force folder and it wallet to build everything after automatically running the cmake configure script. This was a total surprise. To be clear though, yesterday Microsoft also asked me my opinion on a desktop notification. I answered. Sternly. So yesterday was more like Mehcrosoft.

I might have parts show up today, but I have other things to do so I’ll probably have to wait until later if not another day to start pushing things.

Day 7 (as a crow flies)

Finished installing a clean(er) build of opencv. It works directly from the command line, with no virtual environment. By must standards this isn’t ideal, but it’s a good start of I’m trying to keep everything as light as possible. I only add the (er) as I didn’t compile anything myself which means that everything I grabbed should be suspect. I’m not super worries though because reasons.

Tomorrow I have other things to be doing while the day is lit, so I’ll not be going full arm for a bit. Hopefully the vision stuff itself will get going relatively fast. I also didn’t get a book today (almost went to a bookstore but stuff) though I’m back to the nay side of the wall anyway. A book may or may not happen eventually.

Tomorrow I’m switching out two outlets, mounting some solar lights and cutting down a played tree. We’ll see how that all works seeing as how I still have the world’s stupidest injury. At least the Wif finally started agreeing with me about what my injury is.

Day 7

Screw this. I’m installing python and opencv by hand. Is not that the virtual environment want working. It’s that it was working to make me angry. This is a symptom of my being irrational I know.

Well now that’s off my chest, let’s get down to brass kinematics. What’s my goal? A general people arm that can reliably (within reason) move items around the Den. I should rename the Den of Inequity. Den of… I don’t know. I’ll find something. Back to the arm. The base software will be running on a Raspberry Pi 3, because I have a couple that should do the things. The rain why I’ll initially go with that versus the BeagleBone is the built in WiFi will help with install development repositioning (fewer cables), though at a later point I might consider switching because the PRUs of the BeagleBone would probably make for some sweet smooth movement. I’ll be starting with servos to avoid having to deal with stepper motor drivers right out of the gate, though again this will probably change as the arm expand on scope and size. I’m still debating on the initial arm type. I’m almost thinking a SCARA arm for the reduced force needed as the fight against gravity isn’t forced, pardon the out, on every single motor. Obviously whenever people think arm though they’re thinking of something like the arms they always show in movies, it’s just they’re not that efficient. Decisions suck. Right. SCARA will be first, and I’ll go from there.

Monday or so, because of irrational reasons, I have a parts showing up. That would be a gripper assembly, wire assortment, as I do need to be better about colour coding my wires, and a stack of motors of various types. The goal is that I should be able to recognize a beer bottle cap, its average colour as well as it’s two most prevalent colours and the penance there of. Add on top of that it’s orientation to the viewer.

This will be in the service of creating a mosaic of beer bottle caps. I’ll probably need to think about a jig, for the first iteration, but soon enough a good state would be the arm picking up a cap from a bucket, while in any position, assisting it to see the colors, am and then planning the cap appropriately.

Day 6

So I got pycharm going; I have a virtual environment from anaconda; I got output to output. Tomorrow I’ll start digging into finding a resource I like for actual learning. I think I might see if the Wif wants to go to Ada to look for book(s). It’s always a difficult choice. I could find tutorials online and deal with what’s a crapshoot of (often contradictory) information. I could get a book that’s already outdated. Neither option is phenomenal. The nice thing about a book is I can read it anywhere, and if any one thing is too new to have made it into the book, than it’s probably something I don’t need to have be in my base toolbox.

Day 5

I decided today was going to be when I’d bet to work.

I forgot that python package managers (conda in this case, pip when I was doing this on my pi-top) make everything so much simpler than compiling libraries for C. Now I know it’s just me, but I think I prefer the old fashioned download a library, make config, download a library, make config, etc. dance. It was a cleaner. It also took forever and random guesses somedays, but it wasn’t trying too hard to keep you from having to get down in the bushes.

I figure by the time I go through all the tutorials on how to install some bleeding edge (or at least the current version) python and opencv, I’ll be ready to gouge out my eyes at which point having something to do the looking for me will be an incredible boon.

I also decided on this vacation to only drink afternoon, which this experience isn’t helping with one bit.

It’s not that I’m against package managers, and it’s not that I’m against running various code versions (though I actually am)… It’s that if you’re going to have a package manager that is there entirely to maintain multiple packages of different versions of the same thing (the equivalent compiling to whatever god forsaken older library actually works I assume) than have a dependency tree (speaking of drinking).

  • I install the manager.
  • I start a wrapper.
  • I choose a version of python.
  • I choose other packages of whatever with the version number next to them.
  • As options get chosen for version numbers it checks for compatibility, greying out options that don’t work.
  • Have a final check and done.

I don’t think this is too much to ask for. Or maybe I should just get used to the inevitable advance of technology forcing me into compliance. Or I could just start doing things the hard way…