Posted on

Robot Arm Study 5 in Robot Overlord, Tool mounting design

I’ve got Study 5 working in Robot Overlord.  The STL files are heavy in detail so the load time is long, but it works.  Forward and Inverse kinematics as good as any other arm in the system (which already includes the 7bot, MANTIS, and others).  I still don’t have enough time to rip apart the inner workings and rebuild it with a record & play back mechanism.  That would be very nice…

Also here is the hole pattern if you want to design a tool that fits on the wrist of the robot.  I would love to see someone design an Automatic Tool Changer (ATC) so the robot could put down one tool, pick up another, and use any tool it is currently holding.

Posted on

How would I create a robot arm from scratch Part 2: 3D modelling

This is part 2 of How I would create a robot arm from scratch.  In part one I talked about high-level approach and used a computer model to work out some of the design constraints to meet my goals.  In this part I applied my design skills to plan a model that should fit within those constraints.   Pictures inside! Continue reading How would I create a robot arm from scratch Part 2: 3D modelling

Posted on

How would I create a robot arm from scratch?

Reddit user singdawg asked a great question:

I’m currently starting a project to [create a robot arm]. Anybody know good resources? I’m a capable programmer, have experience with microelectronics and microcontrollers. Have some advanced maths to understand the depth of material (jacobian matrices etc) but I’ve limited experience with servo motors.

If your goal is specifically to DIY a robot arm from scratch, I’d start by figuring out what are my design constraints. I’d choose a carrying weight limit, a reach distance, the number of DOF, and the maximum mass of each joint. from that I could build a kinematic chain to find my torque limits, and match those to available motors & gearboxes. Personally, I choose stepper motors. In Fusion360 I’d create models of those motors, then start placing them at their desired locations. The gaps between parts would be filled with my custom designs, which would then have to be manufactured. The custom design part is very iterative and very slow (for me). Some of the things I ask myself are: where do the bearings and fasteners fit? how do i plan to make this custom part and how does that affect the design? where do i run the wiring so it doesn’t catch and break? have i remembered to put in *every* part, not just waved my hand and said “figure it out later”? Can i design this in smaller pieces for easier testing of each piece?

I should mention here that a robot built with stepper motors can’t tell where it is from moment to moment the way you or I can. Mostly they are built by having limit switches. The robot moves to touch the switches at startup. Since it knows where the switches are it can count steps as it moves from then on. It is crucial from that point on to never miss a step. One day we’ll have better encoders for DIY robot arms, but not yet!

Once I’ve reached a design I like, it’s time to use the bill of materials from F360 to place my order for the parts, and get to making the custom bits while the orders are in the mail. Once they arrive I can put it together and figure out what I did wrong, then go back to the fusion custom part step 🙂

Once I get something that doesn’t fail on assembly, I take each major section of the arm in F360 and save them out as STL files. I bring those into Robot Overlord and make it move virtually. I can then modify some Arduino CNC firmware to follow the same kinematic model that I used in RO, and now I have a GUI to drive it. There are several arms already in RO, feel free to branch it and add your own.

Robot arm torque calculator

I find calculating forces boring and I love to code. So I wrote a Processing sketch that can simulate a robot arm enough to calculate some masses and torque values. My thinking is that I can use this to set an upper limit on the weight of each joint, then see the torque values and find the motors that will be under-weight and over-torque.

Robot arm torque calculator

The arm can be moved by clicking on a joint and pressing Q/E.  The values at the bottom are the joint number, the direction of rotation, the maximum weight, the distance from the previous joint, the current angle, and the current torque.  In a 6DOF arm there are joints 0-5 and joint 6 represents the weight of the tool or the payload carried by the arm.

Get and run the Arm torque calculator.

Final thoughts

I’ve done this with 3dof and 5dof arms. I’m currently working on a 6dof robot arm.  I like to design from the wrist backwards, because the payload is the most important part, and each motion after that depends on the ones that come before it.

I’m constantly distracted by the work of assembling my other machines. Ironic! If I had the arms they would do the work for me. Soon, soon!

Next in part 2 I will show some of my work designing the arm based on the calculated constraints.

Posted on

Robot Overlord: THOR added

As I just wrote on the THOR project page, Robot Overlord now supports inverse and forward kinematics for the THOR robot.  One by one they all fall under my dominion!  MwahahahHAHAHAHAHhahahaha…..aha…

Posted on

Jigsolve: First jigsaw pieces attached!

As part of filming the Kickstarter video a team member suggested a video of putting two pieces together via robot.  Of course!  So we got down to it… and it was the most nail-biting thrill I’ve had all day.  First try was close, second was on the money but didn’t press in, and third pressed it into place.  Phew!

…ok, I tried to make a GIF of the action and it came out at 560mb.  Something new to learn.

Posted on

Jigsolve: Solenoid release valve added; Kickstarter help, please?

Second challenge, the pump is not letting go just like my ex even though I run it in reverse.  I’m not sure what I’m doing wrong there, it’s probably a software mistake.

Fixed!  The pump can’t run in reverse, so I bought a normally-closed solenoid air valve from STCValve.com.

The first time we tried to fire the solenoid was directly from the AMS1 shield motor connection #3, which killed the Arduino.  It no longer gives a USB device descriptor.  The solenoid says it runs at 12v1.67a and the AMS1 shield says it can handle peak 2a, so not sure what happened.

The AMS1 shield has a servo connection on pins 9 and 10.  Rather than using it for PWM, we send the pin 10 signal to a breakout relay which fires the solenoid for ~1000ms and lets enough air into the system to release the piece being held.

So now we can testably lift, move, rotate, and drop pieces from Twitch.  I’d say we’re ready to give this a go.  Now for the really challenging part: building a successful kickstarter campaign.  Help?

Posted on

Jigsolve: Twitch streaming is live!

https://www.twitch.tv/jigsolve/

Congratulations to Instagram user DavoDD_ for being the first person to drive the Jigsolve robot through Twitch.

Special thanks to Twitch Developers Canary and BarryCarlyon for help with broadcasting software setup.

Apparently the solution is to stream the pi cam to the LAN, watch the feed with VLC, and then use OBS to screen scrape the image and send it to Twitch.  The lag is awful – 2 seconds or more! – but it works.  Maybe Twitch Dev or raspi experts can tell me how to shorten that delay.  please please pretty please

Second challenge, the pump is not letting go just like my ex even though I run it in reverse.  I’m not sure what I’m doing wrong there, it’s probably a software mistake.

Posted on

Jigsolve: It works!

​the jigsolve robot works!

This morning I tested movements against software limits, the picking, the placing, all through the irc bot. I then spent three hours trying to configure my (&/#*\+~€{! Routers to let the camera video out to the internet.

Above is a quick vid I shot just before I started the testing.

The networking issue is actually moot and I should let it go. I need to integrate the twitch API and get the Kickstarter video done. Once the machine moves to its temp home wherever it’s running for the duration of the game I’ll have all new networking …fun.

Wow! Writing a log on my phone is painful. Seriously, hackaday, get your shit together.

Like these posts?  Tell your friends about marginallyclever.com.  Selling electronic parts keeps me building weird stuff like this.  Thanks!

Posted on

Jigsolve: IRC bot rewrite; monetization; assembly photos

Since the last update

I fought a hell of a long time with my DIY Prusa i3. Nothing sticks to any bed, and I blame the nozzle. I’ve ordered two new Prusa i3s from Prusa himself, so fingers crossed that’ll go better.

Meanwhile, back at the farm

While we wait for delivery I’ve been using the Tinkerine printer at the Vancouver Hack Space to print parts from my design.

and I’ve attached the Raspberry Pi B to the side of the X-Carve collet. I’ve also modelled a place to attach the air pump.

The Pi camera talks to the pi which Wifi’s back to the PC 3 feet away. The PC runs a Java IRC bot which listens to user commands and then translates them into GRBL, the firmware running on the X-Carve.

Either the PC or the Pi will upload the camera image to the internet – I’m not sure which yet, but Pi would be more straightforward. I wonder about bandwidth. There is a separate special PCB that runs the stepper driver to rotate pieces when they are picked up and turn on the air pump. This PCB could not be connected to the X-Carve directly with ease. I could reuse some of the extra connections on the back of the X-Carve (coolant system?) but that makes me uncomfortable.

Monetization

At some point this robot has got to start paying for itself. I considered banner ads on the video feed, corporate sponsors, and a few other options. All of them seemed like a lot of long term work. I want to turn this on, scatter the jigsaw pieces, and then walk away. So instead I’m taking a page from http://reddit.com/r/place and http://www.milliondollarhomepage.com/ to sell off the squares under the jigsolve. There are 75×75 1cm squares, and I’m thinking $2 each is very fair. 300dpi print covering the whole table should be 118 pixels on each side of each square (300*10/25.4). Plenty for all kinds of messages or fun pics! Plans are already being drawn up for a short kickstarter video to promo this project.

I’m glad we had this talk

I’m heading out right now to pick up the last mounting hardware for the air pump. If it fits then tomorrow I rewire all the components and try to get through the unit tests. Maybe even an integration test! God laughs at the plans of mortal men.

Save & Share Cart
Your Shopping Cart will be saved and you'll be given a link. You, or anyone with the link, can use it to retrieve your Cart at any time.
Back Save & Share Cart
Your Shopping Cart will be saved with Product pictures and information, and Cart Totals. Then send it to yourself, or a friend, with a link to retrieve it at any time.
Your cart email sent successfully :)