In the past, I’ve always used fixed focus lenses for machine vision because although autofocus lenses are cool, they added a lot of cost and size and I could manage without them.
Last year at Photonics West, Varioptic had an impressive demo: two tiny 2D barcode readers (from Cognex and Microscan) that both sported autofocus lenses using Varioptic’s liquid lens technology. Back then, Varioptic only made autofocus modules in M12 size or smaller. Most machine vision cameras, however, use C or CS mount. (In the future, maybe Micro 4/3 (M43) will become common for machine vision, which would add a lot of affordable autofocus lenses, although they might not be optimized for machine vision).
Recently, however, Varioptic introduced a compact C-mount autofocus lens. It’s not a cure-all; I don’t know the price and currently only one model is available (16mm). Control options are analog, I2C, SPI, or RS-232. Next time I have to use machine vision, I might not use this lens, but I’ll definitely check out the details.
Here’s one example of why an autofocus lens can be handy: suppose I need to inspect different parts of various sizes. The camera is in a fixed location. The parts are picked up by a robot, so I can move the parts to any desired distance from the camera. Ideally, I’d like to be able to position the part so that it fills most of the camera’s field of view, thus providing the best image.
However, if my depth of field is less than the distance between the optimal positions for the biggest and smallest parts, I will get less than optimal images, since I will have to position the smaller parts farther away (in my diagram above, at position 2 instead of 1). With an autofocus camera, I can either use an autofocus routine, or have a set focus position for each part size. Also, at times maximum depth of field is not desirable: sometimes a shallow depth of field gives an better inspection image, or you need to use less light (larger depth of field requires smaller aperture, which means more light is required for the same image brightness).
Blog note: I’m still working on the robot series, but the next few posts are taking more research and time than I expected.
December 5, 2013 No Comments
As I’ve mentioned before, I like to follow embedded development, but unfortunately don’t have much time to do it, either at work or at home. There truly is an amazing number of very capable microcontrollers, such as the ST STM32F4, NXP LPC18xx, and Microchip PIC32MZ, that most don’t stand out. However, I’d like to highlight a couple MCU families that have uncommon features:
- TI’s Tiva TM4C129x is a typical high end ARM Cortex M4F MCU with FPU, up to 256K SRAM, up to 1M flash, and lots of connectivity and other peripherals.
- What’s unusual? It includes an Ethernet PHY on chip (IIRC, the only other ARM MCU with PHY was TI Stellaris LM3S9B models, which are now legacy parts. Freescale also has some MCUs with Ethernet PHYs, such as the Coldfire MCF5223X).
- NXP’s LPC4370 is another Cortex M4 MCU, clocked at 204MHz, with FPU, 264K SRAM, no flash, Cortex M0 co-processor, and lots of peripherals.
- What’s unique? An 80M samples/sec 6-channel 12-bit ADC. Even if the ADC isn’t as good as a dedicated ADC chip, that’s still quite impressive, especially for the price (~$10 in small quantities).
- Freescale’s Vybrid series features a Cortex A5 at up to 500MHz, optional Cortex M4 co-processor, 1.5M SRAM, no flash, and lots of communications peripherals; a low cost dev board is available.
- What’s unusual? The most SRAM in an affordable (VF3xx is <$12 in 100′s) and available chip; double precision FPU is also uncommon. (Renesas has some MCUs with 1M SRAM, with up to 10M SRAM coming, but they aren’t widely available or affordable).
- Cypress’ PSoC 5LP is a Cortex M3 MCU with up to 64K SRAM, 256K flash, 2 1M samples/sec ADC, and a 20-bit ADC.
- What’s unique? Cypress’ PSoC programmable analog peripherals combined with a powerful ARM core.
- The XMOS xCORE-XA has a Cortex M3 core, up to 192K SRAM, up to 1M flash, and a $15 dev kit that attaches to a Raspberry Pi.
- What’s unique? It also has 7 deterministic XMOS cores, for a total speed of 500 MIPS, which can be used to create peripherals in software. The concept is very similar to Ubicom’s chips (Ubicom started by making the speed PIC-compatible SX chips, then created a multi-threaded (IIRC) MCU. They went bankrupt, and IIRC, Qualcomm bought their assets), and a bit similar to the Parallax Propeller (but much faster).
- Spansion’s FM series of MCU’s are a broad range of ARM-based MCUs.
- What’s unique? All series include parts that can run at 2.7V to 5.5V, which is very unusual for a 32-bit MCU.
Note that the Tiva and FM series aren’t in full production yet.
December 2, 2013 No Comments
I like simplicity, but sometimes complexity is unavoidable. Recently, I had to re-design a safety system to meet SEMI S2 requirements without destroying the customer’s parts. Unfortunately, meeting both requirements required a more complex safety system than a traditional fixed safety controller, so I had a choice: add complex wired logic to our current safety controller or move to a programmable safety PLC.
The choice was easy: go for an expandable safety PLC because:
- The safety PLC is much more flexible.
- If someone finds a problem in the safety logic, it’s easy to update: just send out the update to certified techs to update, instead of re-wiring every machine.
- If we need to add a new feature, again it’s an easy update instead of laborious re-wiring.
- If a new feature requires additional inputs or outputs, we can always add a new I/O module, and keep the wiring simple.
- We can handle different customer safety requirements by changing the Safety PLC software, while the base hardware stays the same.
- The safety PLC is much easier to build: it’s straightforward wiring to inputs and outputs, instead of criss-crossing wires trying to implement safety logic. My feeling is that the safety PLC probably saves money, too, because although the initial cost may be higher, we will have far less wiring problems (and they’ll be easier to troubleshoot) and troubleshooting problems always takes a lot of time.
On the other hand, the price of most safety PLCs is really scary: I don’t need a super-fancy, networked über-safety PLC. So I checked out my list of usual suspects plus did a lot of searching, and came up with two candidates I really liked: the Leuze MSI-202 and the Sick Flexi Soft. (Actually, maybe I found 4, since the Phoenix PSR-TRISAFE looks just like the Leuze, and the Mitsubishi WS is the same as the Flexi Soft, except it costs more.)
Despite their list prices, both models are <$1000 when configured with 8 outputs. Both have free software (big kudos to Leuze and Sick!). Both software programs include a simulator (which is really helpful both for both evaluation and developing). Both are expandable, which is essential (I’ve been burned too many times by non-expandable systems).
The Leuze MSI 202′s advantages include:
- It has more inputs. The base configuration is 20 safe inputs, 4 safe outputs, and 4 monitoring (non-safe) outputs; each expansion module adds 8 inputs and 4 outputs (or, if you want, 12 inputs / 0 outputs) and 2 monitoring outputs. The Flexi Soft’s controller has no inputs; each XTIO module add 8 safe inputs and 4 safe outputs.
- Monitoring is much easier: you can install the software (for free), open the project, enter the project password, and then monitor the project’s internal state (downloading a project requires knowing the PLC’s password). I like this feature because it can make troubleshooting in the field much easier. The Flexi Soft doesn’t have an equivalent.
The Flexi Soft’s advantages include:
- More flexible communications. You can read and write from a block of memory (not the safety area!), while the Leuze only uses standard digital I/O.
- Better network support. The Leuze only supports Profibus-DP via an add-on module, while the Flexi Soft supports Sick’s Flexi Line protocol on some models (which could handy if you’re using other safety equipment from Sick), and,via 7 different add-on modules, CANOpen, DeviceNet, Ethernet/IP, EtherCAT, Modbus/TCP, Profinet, and Profibus-DP. Note that neither PLC supports networked safety.
- The Flexi Soft has a greater range of expansion modules. The Leuze only has one type, while the Flexi Soft has four types.
For my application, the Leuze MSI 202′s advantages were important (I needed 20 inputs), while the Flexi Soft’s advantages were nice, but not necessary.
Some final notes based on using the MSI 202:
- Overall, the project has gone well.
- The simulation feature has been very useful trying to get my software written before the machine was wired.
- The software seems a little slow, and has its quirks, but overall it’s been very usable.
- I’ve especially learned to be patient when downloading the project to the PLC. I’ve found it works better to wait until the CFG light blinks before pressing the Confirm button.
- Safe Function Blocks such as EDM take up a lot of memory, as does the base configuration. However, even with a reasonably long program, I’m only at ~50% memory used.
- Communications is via a standard 5-pin mini-USB connector.
- I choose the version with spring clamp terminal blocks; I really like Leuze’s choice of terminal blocks. They’re easy to operate terminal blocks with two connections per terminal — really nice!
- For some reason, Leuze USA is behind the times; if you want the MSI 202 manual and the latest software, go to the Leuze’s European web site (which I linked to at the top).
- SEMI S2 requires an EMO switch with no software involved, not even a safety PLC. I still wanted to do EDM (external device monitoring) on the EMO circuit, but the standard EDM Function Block is designed for the safey PLC to control the contactor’s coil, while I have to have EMO switch control the coil. I was able to work around this with my own EDM logic.
November 22, 2013 No Comments
I’ve been on a quest to find the best match for my home internet needs. At home, we don’t use the internet much, because I don’t have time (too busy doing non-geeky things), my wife only does e-mail, internet radio, browsing and the occasional Youtube video, and we try to keep our kids in the real world as much as possible (Legos! Drawing! Parks!). We only use about 5G/month, so I don’t want to pay for a lot of Gigabytes we won’t use.
As I’ve mentioned before, we were on the Clear WiMax basic plan ($35/month for unlimited 1.5M down / 500K up), which helped since I could dump my rip-off of a basic phone plan (~$23/month for metered local calls). Note that Clear service is no longer available since they are now fully owned by Sprint.
A couple months ago, I finally found a better fit: FreedomPop’s Home plan, which uses Clear (now Sprint) WiMax. I’m on the top plan, which is 10G of whatever speed you can get for $19/month. Here are my comments so far:
- FreedomPop’s website and sign up process really reminds of GoDaddy. You need to read carefully and know what you want so you don’t pay for unneeded extras.
- Speed is good; I have maximum signal strength, and can get 12-14Mbps down and 1.3-1.5Mbps up (based on running speed tests a couple times).
- Latency can still be an issue for VoIP (see below for more).
- I like the modem’s included 2-port switch. Its built-in WiFi has good speed, but seems to have poor range. My Obi 202 ATA is still on power line adapters instead of WiFi.
- FreedomPop’s plans are niche: if you do much streaming, you’ll quickly pay a lot, good WiMax coverage is limited, and FreedomPop’s LTE plan is way too expensive for my usage (5G/month would be ~$65/month).
- If I need to change, I’ll probably go to LMI.net’s Fusion service. It’s a pricier (~$52/month with taxes), but has good customer service, high speed, no usage caps, and unlimited long distance calling.
Even with the extra speed, Google Voice on the Obi isn’t perfect. Most of the time it’s good enough. I note that Clear was promoting Ooma for VoIP over WiMax, although I think only the newer Ooma models have the wide-band codec that’s better for wireless.
I still really like my Obi; I like knowing I can configure it myself, I like having 2 lines, I like the USB options (Bluetooth, WiFI, analog phone line adapter (FXO/FXS) and I like having up to 4 service providers.
Initial voice quality using the FreedomPop HomeBurst wasn’t so great. I made two changes that helped: I changed to Obi’s configuration so that the Ethernet port was always at 100Mbs, and I paid for the mysterious FreedomPop “SpeedBoost”, which can’t boost my speed, but does seem to increase packet priority (voice quality improved — and even with the added expense, it’s still a deal: the cost is about the same as I was paying for just local phone service).
Sometime I want to try using LTE for VoIP, because it supposedly has much better latency than WiMax.
Now the news is out that Google is dropping XMPP support for Google Voice during May 2014, so the Obi will no longer work with Google Voice. I’m going investigate one or two options (which is easy, since my Obi 202 still has a couple free service slots).
- I will definitely try LocalPhone.
- I might try using Skype using the SipToSis bridge (Obi notes here). This will require having a computer on all the time, but I have an old laptop with a broken LCD that should work.
I will write a new post when I have results.
November 17, 2013 1 Comment
I’ve made a few changes to my blog list:
- I’ve removed Deelip’s blog since he’s been updating infrequently.
- Although Gary Mintchell’s Feedforward blog is no longer being updated, I’m leaving it for now, partly because of its automation blog list. I plan on removing it on my next blog list update.
- I’m also keeping Evolving Excellence for now, even though updates are infrequent, because of the many good interesting posts in the past.
- I’ve added Bill Waddell’s new home, The Manufacturing Leadership Center. Bill was previously on Evolving Excellence.
- I’ve added Gary Mintchell’s new site, The Manufacturing Connection.
- I’ve added links to my two companion sites (for trac and subversion) so they’re easily to find. The trac site is kind of a notepad for me, but it does have a lot of useful information.
- I’m adding a special mention here to Walter Russel Mead’s Via Media blog. Since I avoid politics almost all the time here because I think too much is already politicized, I’m not adding it to my blog roll, but Via Media is a thought-provoking non-partisan blog that’s well worth reading.
Sometime (hopefully next year) I’ll look at updating the theme, but right now I want to concentrate on getting more content written. I hope to have my next Robot Primer post up within a week, and have too many other post ideas.
November 14, 2013 No Comments
I recently had the problem that my internal SATA drives were showing up in the Windows 7 Safety Remove Hardware and Eject Media tray icon. Since I don’t plan on ejecting my internal drives, I decided to solve the problem.
This How can I remove the option to eject SATA drives from the Windows 7 tray icon? Q&A gave the information I needed (I mainly used the first answer), but didn’t spell out how to find the correct driver. So I will go over the procedure I used. Note: if you’re not comfortable with hacking Windows, don’t do this!
- My configuration is an Asrock 960GMUS3S FX motherboard with a Samsung 840 Pro SSD on the first SATA 3 channel and a WD HDD on the second SATA 3 channel. The first SATA 2 channel is used for eSATA; the last 3 channels are currently unused.
- First open up the Device Manager, find the controllers section, right click on the appropriate controller, and click on the Properties item. In my case, both drives are on the Asmedia 106x SATA Controller under IDE ATA/ATAPI controllers.
- Click the Driver tab.
- Click on the Driver Details button.
- Note the name of the driver file; in my case, it’s asahci64.sys
- Now the procedure pretty much follows the Q&A. Start by opening Regedit.
- Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services, and then find the name that matches the drive file name in step 5 (asahci64 in my case).
- Add the keys as specified in the Q&A. In my case, I added Controller0, and under Controller0 I added Channel0 (for the SSD) and Channel1 (for the HDD). Under each channel, I added the DWORD value TreatAsInternalPort, and then set the value to 1.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\asahci64\Controller0] [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\asahci64\Controller0\Channel0] "TreatAsInternalPort"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\asahci64\Controller0\Channel1] "TreatAsInternalPort"=dword:00000001
- Reboot and verify everything works as expected (it took me a few tries to get everything right).
November 13, 2013 No Comments
I’ve been wanting to get a NAS (Networked Attached Storage) unit for the last few years. Finally I made time to put one together using NAS4Free and some parts I’ve had for a while.
I choose to go with NAS4Free over commercial and other open source projects for a few reasons:
- NAS4Free was cheaper (since I already had the parts) and more flexible than a commercial NAS box.
- I wanted my NAS to use ZFS for its robustness, which really limited my options.
- NAS4Free’s installation and setup looked pretty easy, and there are many available resources.
- NAS4Free supports UPnP which I want to use with my Grace Digital Audio system.
- If I need to, I can install additional software (FreeBSD packages), although I should note that NAS4Free strongly recommends that the NAS stays just a NAS, and doesn’t become an all purpose server.
- NAS4Free is fully Open Source, not the free version of a commercial product.
My major NAS hardware is:
- Antec Sonata case – a quiet mid tower case
- Abit NF8V motherboard. The good: Gigabit Ethernet. The bad: old enough that I needed to add a SATA PCI board to handle the Terabyte hard drives.
- AMD Sempron 2800 with 2G RAM. I’ve had the case, motherboard, CPU, and RAM for ~8 years, and it’s nice to be able to re-use them. The CPU is plenty fast enough, and the RAM is more than enough.
- I left in the CD-ROM drive to use for initial installation and updates.
- An old 256M Kingston CF card plus a CF to PATA adapter to store the OS. NAS4Free strongly recommends running the OS on a separate drive, so I’m using the embedded installation method.
- Dual Seagate ST1500DL003 1.5T drives for the main storage; with their 5900 RPM speed, these drives give me a nice balance between performance and power savings. (“Green” drives are not recommended.) I have the drives mirrored, since 1.5T is plenty of storage, and I’m more concerned with data integrity than storage capacity or speed.
My Experiences So Far
At the bottom, I’ve listed most useful resources I found; here are some additional notes:
- Performance is fine; I’ve seen up to ~50MB/sec transferring files to my desktop.
- Installation went pretty well, except for trying to get encryption working (more below).
- The web GUI is nice, but could be a lot better. You definitely need to read the documentation and some tutorials to get everything setup.
- Remember, as the NAS4Free site says, a NAS is not backup! You still need to backup the data (preferably in another location). Right now I’m using some portable USB hard drives; in the future, I’m thinking about getting a high capacity (120G) Blu-Ray burner.
My main problems came trying to get encryption working with mirrored ZFS drives. Here’s what I found:
- In short, it’s not worth it for me. Encryption is a like a lock: it can help, but it’s not a security cure-all, and does add hassles. So I decided instead of whole disk encryption, I could use a container (such as TrueCrypt) for the files that need it.
- If you really need encrypted ZFS drives, it’s probably worth checking out FreeNAS V8, which now includes its own ZFS encryption (not compatible with Oracle’s version).
- NAS4Free’s underlying FreeBSD operating system includes the GELI encryption drivers, which can do whole disk encryption. It’s probably a decent match with the UFS file system.
- The problem is that every time you restart NAS4Free with GELI-encrypted ZFS drives, the drives are not attached until you enter the password in the encryption GUI.
- So after reboot, your ZFS configuration is gone: you have to re-attach the encrypted drives (entering the appropriate passwords), then recreate their ZFS configuration, and synchronize: see the gory details here. I decided that was too much work for the benefits.
In the future, I’d like to do a fancier NAS with hot swap drives and such. My default OS will be NAS4Free, but I’d also take a look at FreeNAS and illumos-based solutions. Although mini-ITX cases with hot-swap bays from Chenbro and CFI are very cute, I’m very tempted to use a bigger case because the mini-ITX cases are limited to 4 3.5″ hot-swap drives, while I have a case that can handle 10 hot-swap drives (using something like this), and ZFS starts to get really interesting at 5 drives and up. Another possible approach is to use 2.5″ drives and something like this or this, and a cute mini-ITX or micro-ATX case.
Here are some links I found useful:
November 6, 2013 No Comments
In my last post, I talked about the development time advantage the robot’s integrated system brings. However, I think the core robot advantage is coordinate points, transforms, and kinematics, which all go together.
However, a robot still has much faster development time because it deals with real world coordinates.
Terminology And Capabilities
I am using Denso Robotic’s terminology and capabilities as a rough basis for my posts, instead of continually saying “most robot controllers do X, some do Y, and a few do Z”. Most robot controllers should have similar capabilities and equivalent terms.
A point in space is represented using a coordinate systems, such as cartesian (XYZ or rectangular), spherical, or cylindrical. Using the coordinate system that best fits the problem can really help when you’re doing physics or geometry, but in the robot world rectangular coordinates are the usual choice.
However, most controllers provide a choice of coordinate origins, including work (fixed relative to the robot base) and tool (fixed relative to the end of the robot’s arm).
The orientation of the end effector can be represented using systems such as Rx (roll about the X axis), Ry (roll about the Y axis), and Rz (roll about the Z axis) or roll, pitch, and yaw.
Kinematics Yet Again
The robot moves its joints, not coordinates. Kinematics (the science of motion) and inverse kinematics is how the robot figures out how to move its joints to get to the desired coordinate position and orientation.
The robot controller knows the position of each of its joints (using encoder feedback) and knows their relationships (length of each joint segment, which joint is connected to which, etc), so by doing a little fancy math it can always know where the end effector is in a particular coordinate system (the kinematics part) or figure out how to move the joints to get to the desired position (the inverse kinematics portion).
Let’s look at a very simple example: suppose we want to lay down glue on the path shown below at a constant velocity from P1 to P4.
It’s pretty simple if you are using a cartesian robot. For example, if you are using a Galil controller, the core code could be something like:
PA 0,0 BG AM LMAB VS 10000 VA 50000 VD 50000 LI 0,5000 LI 10000,0 LI 0,-5000 LI -10000,0 LE BGS AM
But suppose we’re using a SCARA robot. Now it’s tough to use a normal motion controller, because joints are rotary so every time we try to move a joint in X or the Y axis, we also move in the other axis (Y or X). To get straight lines, we have to move multiple joints at just the right relative speeds.
But it’s easy with a robot controller:
MOVE L, @E P[1 TO 4], S50
which moves the robot through positions P1, P2, P3, and P4 at 50% speed with square corners.
The bottom line: the robot controller makes using complex robots (such as articulated, SCARA, or delta) as easy as using a cartesian robot.
Coordinate transforms are very useful; here are a few examples:
- Moving using the teach pendent in Tool mode (the robot has to do coordinate transforms between the Tool coordinates and its base coordinates)
- Easy use of multiple end effectors, such as dual grippers and a camera. For example, you can teach one location and then move any of the end effector tools over that location simply by changing the Tool mode.
- Getting machine vision information into a form usable by the robot (calibrate camera, get its positions, and then transform them into robot coordinates)
I will be dig deeper into coordinate systems, transforms, and their uses.
November 1, 2013 No Comments
Most robots are integrated systems. Combined with robot controller features such as kinematics and teaching points, this makes it much faster to to get a robot up and running.
When we were evaluating a Denso robot, I setup it up in one day, from unpacking to running a simple demo. My task was like this:
- Unpack the robot and controller
- Place it on a solid bench and mount it (with help from our techs)
- Connect the robot power cable to the controller
- Connect air to the robot (for the Z axis)
- Connect the teach pendent to the controller
- Have our techs connect a simple end effector (it’s nice having a machine shop)
- Connect AC power to the the controller
- Start the system
- Teach a few points using the teach pendent
- Create a simple move routine going through several points using the teach pendent and searching through the manual for the appropriate commands
- Test it
Now when I’m setting up a motion controller, it starts with:
- Unpack the motion controller, motors, and stages
- Find the motion controller documentation
- Connect electrical power to the motion controller via the appropriate terminal blocks
- Find the motor documentation
- Use a break-out board to connect the motors to the motion controller
- Configure the motion controller for the motor, and try to spin the motor, verifying encoder, hall sensors, etc.
- Do some initial tuning.
- Connect the motor to the stage.
- Verify the limit sensors.
- Then I have to repeat steps 4-9 for all the other axes, and we still just have a bunch of unconnected stages.
Of course, if you’re using a robot controller with custom cartesian stages, setup time will be longer. And to be fair, many (most?) robot applications will take considerable programming time.
October 6, 2013 1 Comment
In this post, I will take a quick look at industrial robot types. I know there are more robot types (such as cylindrical and polar) and variations in each type, but these are the most common. The manufacturers’ web sites and other resources such as books and system integrators have more opinions about when to use what robot type.
Robot terminology can vary between manufacturers. I will use this post to define my terminology.
A Few Words About Coordinates and Planes
Since I will be using reference axes, the picture above shows my reference system. The X axis is toward the viewer, the Y axis is left to right, and the Z axis is down to up. The XY plane, highlight, is formed by X and Y axes.
Note that while three positions (such as X, Y, Z position in rectangular coordinates) uniquely define a point in space, it takes more to define the position and orientation of a real object in space. Robot controllers often borrow from aviation and use yaw (nose left/right), pitch (nose up/down), and roll (rotation about the principal axis) to define the robot end effector’s orientation.
The end effector is the tooling attached to the end of the robot’s arm. End effectors consist of whatever is needed to get the job done, such as vacuum cups, grippers, cameras, glue dispensers, and welding equipment.
The articulated robot is constructed from a series of interconnected rotary joints or axes, typically 4 to 6 in total. It’s biggest advantage is flexibility; a 6 axis model should have full 6 DOF (degrees of freedom), and thus can approach a given XYZ point with any desired yaw, pitch, and roll (within the robot’s mechanical limitations). All those joints make it easy for the robot to reach around obstacles. A five axis articulated robot will still be more flexible in its moves than a 4-axis SCARA.
If you want to visualize this flexibility, consider performing automatic screwing at several locations on the surface of a sphere. The robot’s screwdriver needs to be perpendicular to the sphere’s surface at each location: a 6-axis articulated robot can do this, but a 4-axis SCARA can’t.
Like SCARA robots, articulated robots have a large work area and a small base. Very large articulated robots are available. They are often slower than SCARA or delta robots and less rigid in the Z axis than SCARA robots.
I number the robot axes by starting with the joint closest to the base as Axis 1 and work out from there. The picture above shows my numbering.
The SCARA robot has all three rotary axes in the XY plane, with only 1 axis that can move up and down. This configuration gives the robot more rigidity, or less compliance, along the Z axis, and thus the name: Selective Compliance Assembly(or Articulated) Robot Arm.
Like articulated robots, SCARA robots have a large work area and a small base.
Since the SCARA robot is fast and rigid, they are often used for assembly (especially when downwards force is required), pick and place, dispensing, and palletizing.
The picture shows my axis numbering. The quill combines Axis 3 (Z, up/down) and Axis 4 (rotation around axis 2). The quill is typically hollow to allow passing through cabling (pneumatic and electrical) to the end effector.
Cartesian robots are made from a combination of linear stages, typically stacked. Using linear stages offers a potentially wide range of possible characteristics, including:
- Very heavy load capability, especially with gantry (parallel) stages.
- Very high acceleration and velocity, for example with linear motor based stages
- Very high precision, for example with stages using air bearings and flexures
- And more with options such as piezo motor stages and belt-driven stages.
If a cartesian robot makes sense, then there are several possible approaches. I’ll use Adept’s lineup as an example, since I’m familiar with it and they offer cartesian robots:
- Use an Adept robot controller with an Adept cartesian robot. This is by far the easiest approach, with very little integration work: basically plug the robot into the controller, and go.
- Use an Adept robot controller with Adept servo drives and motors and third party stages. This will take considerably more integration, including defining the kinematics.
- Use an Adept robot controller with standard servo amps and motors and third part stages. Again, this will approach requires much more integration, including defining the kinematics, but provides the most flexibility.
- Or if the application doesn’t require the extra capabilities of a robot controller, use an appropriate motion controller. For example, the ACS SpiiPlus is oriented towards precision motion (think semiconductor) while the Schneider LMC-20 is targeted towards packaging. This will require substantially more integration work than using an integrated robot and controller package.
Given the variety of possible cartesian robots, it’s hard to give definite comparisons. In general, they are going to take up more area (larger base) than a SCARA or articulated robot, and will not have the flexibility of the 6-axis articulated robot.
The delta robot is a parallel robot with various arms joined together at the end effector. Typically it has 3 degrees of freedom (XYZ), although some models have an additional rotary axis.
The delta’s strong points are speed and stiffness: since the arms are very light, it can accelerate and move very quickly. The multiple connected arms add stiffness, but they also reduce the work envelope.
The delta robot is typically mounted above the work area.
Delta robots are popular for packaging and other high speed pick and place type operations.
September 28, 2013 2 Comments