lootRepair0.3

Good Morning from my Robotics Lab! This is Shadow_8472 and today, I am reviewing my progress on the lootRepair program from my previous two posts. Let’s get started.

I started this iteration of the program with a major paradigm shift. My first two attempts at the program could be modeled as following a coded track. I gave up when I had trouble tracking down too many bugs when I tried to break my second attempt.

My new version has two phases in its main loop: a getState phase, and an action phase. The getState phase takes a look at the turtle’s state, and the action phase acts on that phase, handling the upstream redstone output, weather or not to wait on an event, and there’s even a spot where I can put extra code; all of which were previously handled with multiple instances of redundant code, each copy of which had to be visited when a change was made to one of them. I think of it as a state machine, but I’m not exactly sure if that’s the proper name for it. Whatever the case, the debugged product should be able to handle me giving it more abuse with less patchwork.

Building up the code to check for a crafting table took four attempts before I came up with a version that wasn’t too ugly to follow, and then one still needs to know what they’re looking at. Early startup() attempts were based on “use the correct tool, turtle.getItemDetail(n)[“name”], and baby its weak spot, (possible crash from a nil return)” ideas, so I ended up using the slightly slower, but more ingenuitive approach, try to equip each item in the turtle’s inventory and see if it can craft if something equips. Keep track of if and where a workable slot is found, and try the other equipped slot. (There’s a bug where crafty turtles forget their crafting benches, but they work after unequipping and reequipping them.)

As of right now, I still need to finish debugging it. When I transferred my Notepad++ generated document and stuffed it in the ComputerCraft folder where executable programs are stored, I got a bunch of errors and wide gaps where lines of code should be, or more likely, they are some other character interpreted as a line feed. After all, the CC editor doesn’t use proper tabs, maybe something else is messed up.

I’ve been editing the original program in parallel as I debug the in-game version. It’s a little redundant, but I really want to publish this some time here, hopefully next week… if I don’t take a break and blog about something else.

Final Question: Do you know a lot about ComputerCraft? Why is the turtle glitching its crafting table away on chunk reload?

Construction of the 3D Printer Case Part III

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am finishing my 3D printer’s case. Let’s get started.

Last week, I printed the brackets, and oh, did that thing drone on and on. I’m not looking to print anything else for now, so I finally unloaded the filament and put it away. PLA filament is supposed to be stored in an airtight container, and I am fortunate a gallon Ziploc bag can barely swallow it. One tip I heard when first researching 3D printing before setting the printer up: on the side of the spool, there is a place to feed the filament so it doesn’t tangle while in storage.

Besides the brackets, my father and I are using some cheap wood for the frame and some spare Masonite panels for the siding. The door is being made of an acrylic sheet. Instead of hinges, I’m planning of making it slide out the top.

Construction this time has been much more straightforward than previously. We used a skill saw to cut three six foot pieces of 3/4 in lumber down to size… “Measure twice, cut once.” Good thing we bought extra for stock. Of course, after sending the ‘finished’ pieces back out for a round of quality control on the skill saw, we assembled the frame with the stunted, vertical edges. Those got swapped out after inspection. Had they gone unnoticed, the filament spool would have required accommodation through the roof, defeating the whole point of the project; to keep the cats off the printer.

As stated before, the side panels are fashioned from some Masonite we had occupying garage space. We cut a couple of pieces to form the back, sides, and top of the case. The side and back panels do not reach all the way down. The gap provides access to the power chord, switch, and various ports on the side. The bottom panel is absent; if anything bumps the case, it is isolated from the printer and won’t transfer the shock as readily. The top corners are cut to facilitate ventilation and dodge the corner brackets. The front panel, will be different. My father and I have run out of time this week, but the current plan is to make a panel to slide out the top instead of a hinged door.

Over the course of this project, the materials at hand have not always lent themselves to the exact plan. The hardware store didn’t have appropriate corner brackets, so I ended up printing them. The calculations for the wood for the frame were actually made with the assumption of eight foot pieces, they came in six. It’s only when you look for hinges that you realize just how many choices there are and how many won’t work for you. Roughly nothing about this case is untouched by design revisions.

Final Question: What projects have you adjusted for available materials?

Goal Checklist

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am reviewing my goals leading up to development on a robot. Let’s get started.

So far, I have a Linux machine running. That’s about it. OK, I setup a pair of  MineCraft server programs on it, and all those activities built up my skills, but now, the path forward seems a bit less linear. I’ll try to explain each skill I think I’ll need and a possible project to accompany it.

The next project I want to do is set up another Linux MineCraft server, but this time, I want to remote in and use another computer to control it.

At some point, I think at some point, I will need to look into 3D Modeling. The skill to program a shape into a virtual environment is a valuable skill with many downstream applications, like animation, renders, and 3D Printing, among others. I have a minimal amount of experience with Blender, and I hear it’s fairly well supported across many platforms and for about any job. Plus, it’s free and open-source nature fit the secondary themes I’m trying to work with. The only thing I can think of to do in terms of learning it is to find a tutorial and follow it, pure and simple.

Gazebo and ROS are programs I will need. But before I can go there, I will want to get my main tower properly dual booted. Before I can feel comfortable doing that, I want to set up Linux a few more times AND a get a regular backup going for my computer. Once those are in place, I can start toying around with a virtual robot in Gazebo with ROS before moving up to physical robots.

Manufacturing the bot is something I’m looking forward to, but it’s going to feel like grunt work to me. I want to get on to programming it, but not so fast as to be completely oblivious as to how to do it when I get there. That said, I realized I will need to develop skills in following schematics when I spotted a post on the site for my intended model last week (LINK).

Even after I get a little proficiency in those skills, I can see myself having to go through a prototype or two before I work up to a social robot I’ll be satisfied with. I feel like I should practice setting up a dual boot system before converting my main system. Final Question: What kind of things would you want to see in a finished, open-source social robot?

First Project Complete

Good Morning from my robotics lab. This is Shadow_8472 and today, I am explaining why I am not upgrading my computer this week. Let’s get started.

Long story short, California was set ablaze last week.  Our neighborhood saw a glow from the fire burning the next city over. We packed all our most important possessions, like a 100+ year old trunk of photos and my desktop computer.

The Internet dropped out for a day or two and our gas got nixed so it wouldn’t make a flamethrower if the neighborhood burned down. We still had power, and our stove and new drier are electric, so we only really missed our hot water. We tuned in to the local radio station for live coverage.

The station itself was in a badly burned section of town, almost having been burned down themselves. They were ultimately spared, but they did say something about an exploding tree shooting an ember the size of a large fist into their back parking lot.

The stereo we were listening on is almost as old as audio CDs. Fun fact about radio technology: when you are barely getting a station, it gets fuzzy with static. Repositioning the antenna is a minor mitigation, but it doesn’t help when your position in the room can interfere with incoming radio waves, even if you are just sitting up.

I eventually got tired of the static and tried to fix it. The sliders on the front helped, but not enough. Touching the antenna seemed stabilized the signal almost perfectly, but no one seemed interested in standing there with an arm on the thing.

Eventuality, in true MacGyver style, I raided the tool chest and grabbed the first metalic spool of wire I saw, in this case, some sodder for stained glass.

I ended up using a plastic clothes pin to affix the makeshift antenna extension. I later improved my design by curling the sodder around the tip of the antenna to prevent the connection from slipping down. Since then, the radio only complained when adjusting the spool, which was hung up on the wall.

In closing, the fires are still burning, but the firefighters are getting them under control; it looks like my neighborhood was spared. I haven’t seen any national coverage, but locally, the news has been positive in the face of the disaster. Sure there were some looters going through evacuation zones, and people are still trying not to breathe the airborne remnants of other’s houses, but the impression I got is that people as a whole are getting together to help each other.

In the future, I am sure there will be times I am at a lack of overall progress due to one delay or another. What do you think about unplanned mini-side projects?

Early Progress

Good Morning from my robotics lab! This is Shadow_8472, and today, I’m going over my progress so far. Let’s get started.

Now that I’ve written about getting the site up and a few vague goals, I want to explore some relevant research I did before I went off to start blogging about said research.

ROS. That is about the first, term you should hear when first looking into hobby level robotics. ROS (Robot Operating System) is, surprisingly, not quite a OS (Operating System) for robots. My understanding is that it’s more like a program that manages robot parts. It’s free, open source, and used at all levels of robotics, including some commercial products. Just don’t use it for something that absolutely must not get hacked or someone could die. Security, I hear, was more of an after thought.

Linux is the more familiar name for the do-it-yourself type of computer OS. Personally, I’ve used Windows since I first taught myself Chess on Windows95. Guess which OS ROS runs on. Answer: Linux. Guess what my second major goal for this project is going to be. (Tip: the first goal was my first post.) Answer: Install Linux and learn more about it. Now, I’ve had some minimal exposure to Linux at both my high school and university (both used Windows primarily). I’m not a “What’s Linux?” type of guy, but I’m no alien to it either.

Gazebo is another program I read about related to ROS. It’s some sort of robot simulator. I don’t know much about it, except It primarily runs on Linux, and that you better know what you are doing if you dare set it up on any other OS *Windows*. I think it prefers to run in Ubuntu, but I’ll check that out later.

Anyway, since Linux keeps popping up everywhere I look during my preliminary investigations, I figured I’m not going to have a good time if I try to get anywhere without it. I set out to install Linux on my desktop; my SSD was full, even after relocating a sizable file and picture archive. Somewhere on Gazebo’s site, they recommended against just running Linux off a flash drive, which would have been my next investigated solution. I finally caved and bought a new SSD to install so I can dual boot my machine. It was about that time I decided to start this little blog sidequest. Besides, the more I learn, the more ambition this project goal seems, and I can use all the help I can get.

That pretty much brings you up to date with my research so far. As of this posting, I have not installed the drive. That’s in next week’s topic. I plan on uploading a video where I perform the upgrade.

Final question: While my ultimate goal is to assemble the software side of things for free, paid stuff still might be beneficial to look at. (Think, “They did it, now can I?”) What software should I look into?

Project Goals and Dreams

Good Morning from my robotics lab! This is Shadow_8472, and today, I’m going over my long term goals for this blog. Let’s get started.

Starting off with my core goal: I want to build a social robot with a customizable personality using open source hardware and software. My hope is that anyone reading can follow along with their own robots, learning from my research and hopefully contribute back as the projects develops.

Social robotics is a field within robotics where robots are made to interact with people. I expect building the robot will be the easy part. Programming it will be the real challenge. As far as the physical robot itself, I have been considering using Proto2, a platform developed by the team at sweetiebot.net. According to their FAQ page, they intend to release Proto2 to be open source before the end of the year.

In addition to making the personality customizable, I would just love it if the software was capable of operating offline. From my research so far, my first impression is that this is a stretch goal; any potential personality software I found requires an Internet connection at all times. This may be because it is just easier to program, or if it is even reasonable with today’s technology.

This leads into my first dream level goal. Maybe, just maybe, some of the work done here will end up in a larger robot serving as someone’s service dog. I doubt a bot on that scale would be cheap without having a major reduction in price. I hear nylon muscles are under development. I may have to check back on those in a few years.

In closing, my strategy is to aim high and hope I can find the right people to work with along the way. For my ending question: What personality traits would you give a robot?

Hello World!

My site is now active. As I enter these first few words, I’d like my audience to know, setting up a blog is not easy. Sure, I could have gone an easier path, but for me, this isn’t just a robotics blog. I have a class in web languages that I will need to retake some time, and I wanted to view my site’s code and edit it.

I started with the idea about a month ago. I made my first, permanent progress almost to the hour and minute. All along, I was figuring I’d be posting by “next week,” until I completed the task at hand and the next part of the problem presented itself. Even now, I still have a lot to do in terms of web design.

Never underestimate the value of a good tech support team. I rejected at least a few services with live chat who barely passed the Turing Test solely by running out of prewritten messages and displaying a lack of English skills. One place even had a chime announcing an answer to your question. The previous two features combined provide an experience I would imagine a low end fortune machine would provide. While the same chat client with an annoying chime was used for HostGator, my host, the help was consistently productive and the chime was something to look forward to. The tech support for NameSilo, my DNS, was awesome and helped me learn the difference between a nameserver and DNS records. NEVER underestimate the value of a good tech support team.

I intend to make weekly text posts, and hope to make monthly video posts. Each week, I want to end with a question. As the site is still under construction and I don’t know how to set up a comments section yet, I ask anyone who is viewing this: What is the date you first came across this site?

Edit: Comments are open now.