I have been working with Roboteurs in hopes to offer this robot as a super advanced build it yourself kit. If you are interested in this kit and maybe getting one of our first kits email info(at)roboteurs(dot)com
Robot controller: http://roboteurs.com/products/slushengine
Raspberry Pi: https://www.raspberrypi.org/
This design is a remix/redesign of the two following projects.
]]>With our Printabots Maker Robot Kit, we've had customers and makers comment that it's not always easy to get access to a 3D Printer, and Shapeways isn't exactly an inexpensive option.
So we decided to use our kit to make a robot using everyday items.
For this robot, we use:
Instructions:
We created a featured Instructable here: http://www.instructables.com/id/Binder-Clip-Robot-Arm/Before we start trying to build controllers for this arm we need to make sure that the logic of the design is sound. We are going to do some simple "bread-boarding" to get this arm moving. We wont be using any actual breadboard just a motor driver and an STM32 Nucleo controller (stm32f0).
The Bammer motor driver was released last week and we decided to use this driver to move the robot. The Bammer drive is designed for high power motors but it can also be used for smaller motors with high efficiency. We followed some basic steps to control this arm from the Bammer board.
From this experiment we learned that there is a bit of backlash in the robot arm system. Some of this error is in the spur gear drives and some is in the fastening of the drive to the arm. It would be very difficult to remove this backlash in hardware so we can hopefully remove it in software. We also learned that the gear drives are quite noisy, nothing we can do about that.
The above video uses the code featured below. We use a very simple real-time operating system to manage different tasks to control the robot. The program was made with Mbed which is an online IDE. All of the libraries are built in and the below code will run without any background work required (other than wiring of course).
]]>
With this need for control in mind we need to select a controller with networking capabilities. This project gets only a couple hours a week and I don't want to spend all my time sorting out networking drivers on a micro-controller platform. So we are going to use a Linux board, it's too bad there is a shortage of them these days... Ha. I have picked 4 main contenders and will talk a bit about each one below.
What will the controller be doing? Good question. Well the Linux side of things will be managing the network and processes, calculating the inverse kinematics for the robot, and maybe some kind of display. A real time controller (micro-processor) is also needed to handle things like managing the feedback loop and PID controls of the robot arm.
Beaglebone Black: The best part of the BBB is the programmable real time unit. This is a micro-controller inside the AM335x chip that can be programmed by the BBB or an external tool. To be honest the BBB is probably the best choice for this reason alone. We dont need 4 cores of processing power to move a robot. But we do need something that can handle fast real time data.
Olimex Lime: A real opensource Linux board. As far as processing power goes this board is nothing special. But the features it has are spot on! It has Sata capabilities and a built in UPS feature powered by an external Li-Po battery. It also has a whole whack of GPIO. Lacking a real time micro-controller on board is not a deal breaker.
UDOO Neo: A surprisingly cool board, the NEO also has a built in real-time controller. This can be programmed using the Ardunio IDE right from the device itself. The board even has a WiFi option as well for a pretty good price.
Raspberry Pi: I have to mention this board, a powerful processor with Wifi and Bluetooth all at an affordable price. We do a lot of work with the Pi and it is a great tool. But it is healthy to venture out and try new things as well.
What board are we going to use? Well at the end of the week we will probably make a choice on twitter. It would be good to get some input and see what people think. Maybe there is a 5th option hiding somewhere out there.
]]>I finished the mechanical restoration of the robot and all joints are working and moving again. A bit of work needed doing but I didn't have to replace any parts that where not sitting in our stock already. So what needed changing you ask? A robot that has been sitting idle for 20 years must have some problems, and oddly corrosion wasn't one of them.
With the mechanics cleaned up we need to redo the wiring because it really is a total mess. Stay tune for next week when we talk about what controller to use for this old robot.
]]>
To design a new controller we need to know something about the motors. At the moment all we know is that they are 12V and DC, other than that there is no information. Really all I need to build the controller now is the output of the potentiometers and the current usage of the motors. I suspect that it will be less than an amp each, the motors arnt that big.
To test the motors I am going to power them manually and run the power through a Fluke meter and record the max current. The max current with a stalled joint was about 500mA, so it looks like the motor driving is a job for a DRV8801 chip!
Testing the potentiometers shows that they are continuous rotation pots (cool), and have a range of 0 - 300 Ohms. The next step is going to be creating a method of connection for potentiometer/encoders.
]]>Now before we go on I must warn you, I am an engineer so the spelling in this article will be just awful so please bear with me (edit: luckily I (Justin) can proof read)
This is our first candidate for the Robotresto project. This was dug out of an old lab and had no controller and no documentation, it just had a lot of dust. Finding this arm was like finding a piece of gold. Restoring old robots is a real passion of mine. I think its the combination of learning about older methods and trying to adopt new ones.
Finding a robot like this one is probably the hardest part of this project. Sometimes you can find some cool old ones on ebay but usually it's just to expensive to ship them (like $500 to get an old SCARA across the country).
The robot is driven by some 12V DC motors, and these are connected to a clunky looking gear box. These little motors will move the robot without a doubt but how fast they will go is the real question.
On the side of the robot we have some little blue potentiometers. I hope these are still working okay, it might be tough replacing these. They are connected directly to the mechanical link in the robot. Despite the low accuracy of using a potentiometer, this will be easy to code and no homing of the joints is required!