Software to make these wiz bang items work together

39 views
Skip to first unread message

Robert Teeter

unread,
Nov 15, 2012, 4:52:11 PM11/15/12
to cube-...@googlegroups.com
Guys - I have been looking at software that can be used to control the assembly/construction line system that we are designing.  There are several that have a general idea of what needs to be done but not one that will just shoe horn into place without change.  The characteristics need is a dispatch system and a flow system.  Each cube needs some kind of intelligence to allow it to interface to the control system.  My general thought is to put some kind of computer/controller into each cube that can communicate over Ethernet to the master control system (MCS/MCP of Tron Fame).  This system has to have these abilities -

1. setup/initialization  (it should be able to interrogate each cube found and list them on the screen - a human being (some intelligence source) then will need to configure the order that they occur.
2. initialize the cube sequence and be used for troubleshooting of the initial configuration sequence.  
3. Be configured for items to be processed.
4. Control when each item is passed from cube to cube
5.  Upon completion of jobs notify in some manner that it is done.  (IE.  Exploding/Melting down/ Buzz/ flash a light/give up and go home)

Any other input on the simple NOT subject.

Bob Teeter

Cube Spawn

unread,
Nov 15, 2012, 6:14:31 PM11/15/12
to cube-...@googlegroups.com
just started into this in my other reply - please take a look at ROS


uses a publish, subscribe architecture so each cube could publish ready messages at long intervals and subscribe to a command channel specific to thier address...

Cube Spawn

unread,
Nov 15, 2012, 6:24:30 PM11/15/12
to cube-...@googlegroups.com
Also - this is where I have been investing the effort in getting the parts/BOM/requirements into the GitHub repository in a way that allows for machine readable specifications and dependency resolution - 

as in: 
If a motor is needed to make a product,
and its not in inventory or nearby,
but the materials are present 
Can we fold the making of the motor into the master BOM for this production run
and if so,
do all the machines required, 
have openings in their upcoming schedules to allow for this additional list of tasks?...

etc, etc to the 50th power of complexity

OverThinking?!  you betcha!!

Robert Teeter

unread,
Nov 15, 2012, 7:12:48 PM11/15/12
to cube-...@googlegroups.com
Ok but I have thought about this and it appears that what we need is a 2 tier process.  The first is what ROS appears to be and that is a software system that will run a cube and do whatever is needed to be done in the cube. (IE. machine any part.  extrude a plastic piece and such).  The second level is a master control level where control of the cubes come from and keeps the line moving at the best speed possible.   It appears that trying to create a replicator a la Star Trek is not possible at this time because I don't have any free atoms of stuff just laying around that I can dump in a hopper.  Aluminum ingots I got but not just any atoms.  If the cubes are arranged in a specific order then there are a series of jobs to be done to create an item. BUT rearrange the cubes and you cannot get the same item without traversing the cubes in the same original order to create it.  If I put a series of  cubes in order to create cube corners from aluminum then I cannot expect this same set of cubes in the same order to create a 36" tungsten rocket nozzle.  So if we are making items that are very similar then the line can be used to create them but not anything outside those parameters.

Sorry just my thoughts

Bob Teeter


Robert Teeter

unread,
Nov 15, 2012, 7:18:44 PM11/15/12
to cube-...@googlegroups.com
By the way I was just chasing across the internet and found what might be usable as a 2nd level control system.

http://www.sos-berlin.com/modules/cjaycontent/index.php?id=osource_scheduler_introduction_en.htm

This could be used to talk to the cubes and keep things moving.

Bob Teeter

Data Pathway

unread,
Nov 16, 2012, 12:46:18 PM11/16/12
to cube-...@googlegroups.com
I agree that we need a complete architecture and a local system controller could be one of many possible packages. as you know I favor ROS - since we get a whole bunch of control libraries for specific types of autonomous machines as an intrinsic part of the package and, I feel its well suited to the task - BUT, its certainly not a mandate - if you come up with something that works better in your situation - go for it! - Working solutions always trump theoretical or academic ones.

And This IS the star trek replicator - just implemented in 21st century technology!

As to changing sequencing within a cube array, that's where tools that prepare control files, in predictable places within a local system will lead us to automation and graphical interfaces later.

so I think working on a general work flow for file handling - to perform the sequencing steps, while viewing the process in an architectural frame of mind - will lead us to what is needed in a control interface - I can butcher up (cut/paste/copy etc) text files in a editor on any system to feed to automation - then once the specifics are defined - build the (software) automation to create or alter those files under machine control.

so what are the steps to this dance? (preliminary view)

Note getting a work flow defined for each type of machine and process on that machine will be useful irregardless of what, and when automation takes place... 

For a machine tool any of the following may be needed (both for a human operator AND a machine) I'll put an "H" or an "M" based on the primary beneficiary in some cases its an essential resource that "B"oth will need....

Note: these assumptions are for a mill job  - lathe work has many similarities, and several specific differences
  
(B) a cad drawing of the part
human need visual reference and dimensions
machine need g-code generated from the cad file

(B) Fixture diagram 
where is the stock fixtured on a standard pallet? what clamps bolts and stops are needed?
What is the stock orientation for the first operation, are the more than one? (keep in mind the stock will probably be a job that has many specifications including its OWN fixture diagram...)

(B) Tooling Table
what diameter tools of what types are needed. What are to tool length offsets? what tool change mechanism is available? are the available tools cutting speeds compatible with the specified RPMs (as in spec'd for carbide but cutters are HSS) or TiN coated etc etc


(M) canned g-code - hopefully this is part of any verified, package file - so the task is automatable

(M) A control and sequencing file specifying the order of these steps for the task scheduler

(H) videos, renderings, print-able instructions assembly diagrams etc

+All the stuff I forgot to mention... ;-)

Samuel Rose

unread,
Nov 17, 2012, 9:04:47 PM11/17/12
to cube-...@googlegroups.com
Wow, this is incredible!

I've been working a lot with the idea of sensor data, and scanned id
tags being tracked via a message queue. But, I hadn't thought about
controlling a network of robots, or machines with message queue
systems.

Thanks for sharing this. I've also worked with OpenCV in the past.
Lots of potential here. Would be interesting to explore 3D motion
sensing, as typically found in XBox and other gaming systems, too.
--
--
Sam Rose
Hollymead Capital Partners, LLC
Cel: +1-(517)-974-6451
email: samue...@gmail.com
http://hollymeadcapital.com
http://p2pfoundation.net
http://socialmediaclassroom.com

"The universe is not required to be in perfect harmony with human
ambition." - Carl Sagan

Leo Dearden

unread,
Nov 18, 2012, 5:03:48 AM11/18/12
to cube-...@googlegroups.com

For 3D scanning or motion sensing you may be interested in Point Cloud Library (pcl). It's something like openCV for point clouds. It has input drivers for MS Kinect amongst others.

Samuel Rose

unread,
Nov 18, 2012, 7:32:17 AM11/18/12
to cube-...@googlegroups.com
Leo, thanks, I finally noticed that. Exactly what I was looking for.

Data Pathway

unread,
Nov 18, 2012, 1:51:12 PM11/18/12
to cube-...@googlegroups.com
Since Both of these FOSS projects are Willow Garage Supported (in the case of PCL, Willow started it) integration with these capable packages is probably fairly tight - anyone up for the task of helping to flesh out an actionable  architecture document for the cubes assuming this regimen? ( it doesn't have to be the only one - but its an obvious contender for the crown)

***cups right ear, leans forward...)***

and Sam, any news about the template? no pressure (obviously) just eager and curios ;-) 

Data Pathway

unread,
Nov 18, 2012, 2:54:44 PM11/18/12
to cube-...@googlegroups.com
WOW!

Just dug into ROS fuerte (barely) and visions of LSD tripping sugarplums are dancing on the head of a pin before my very eyes!!!!***!!!!

A distributed ROS install! 

Turns out you can run ROS just fine on an R-Pi or a BeagleBone and you can distribute the processing tasks between these nodes so long as one of them is  "master" so the "layer 1" functionality discussed in the previous posts is an inherent feature of a ROS install - so the challenge (as I see it) is while running ROS - can we still command a smoothieboard ect, from the relevant node? I'm going to guess this should not present a problem - I'm sure lots of issues are yet to be identified, but this looks better and better as I dig!!

happy sunday!!

James

Samuel Rose

unread,
Nov 19, 2012, 9:30:11 AM11/19/12
to cube-...@googlegroups.com
Which "template"? Maybe I misunderstood an earlier request? Is this
related to help you were asking for around github? I have trouble
following all of the cubespawn threads (although I am glad to see the
activity). So, if you can re - request, I will see what I can do.

John Griessen

unread,
Nov 19, 2012, 9:47:16 AM11/19/12
to cube-...@googlegroups.com
On 11/18/2012 01:54 PM, Data Pathway wrote:
so the challenge (as I see it) is while running ROS - can we still command a smoothieboard ect, from the relevant node?


I haven't read up on ROS yet and hope it does allow using something like smoothie for controllers, since the
ARM microcontroller chips are low cost/high function.


So, some searching turns up that low data rate commands can be done with something called rosbridge or rosserial:

http://comments.gmane.org/gmane.science.robotics.ros.user/16691
------------------------Re: roscpp on embedded devices with ethernet?------------------------------

Understand. I have been working on a Roscpp light for this use case will be joining the sig discussion also. Will mention it to
Paul as the hobby market is full of them right now.

On Wed, Sep 12, 2012 at 4:05 PM, Dave Curtis <dave-6jffsD0+...@public.gmane.org> wrote:

Morgan,

Your initial post on the group describes the opportunity well. Where rosserial is good for a small 8-bit microcontroller, there
are a lot of 32-bit microcontrollers out there such as the Cortex-M3 and M4 processors that have ethernet controllers. It would
be really great to get those plugged into ROS as directly as possible with some kind of lightweight library that you can simply
link against, without having any dependencies on sophisticated kernel infrastructure.

Actually, if you are talking about the "imbedded linux" in my reply below -- that is probably *my* fat-finger when composing the
e-mail, not a misspelling on his part. My main point is that "embedded Linux" is very different from "embedded bare metal", which
is where I want to go. Embedded Linux requires an MMU and lots of RAM, uCLinux requires an MPU and lots of RAM -- I want
something that will fit in low-end 32 bit ARM with no external RAM, or some such widget.
------------------------Re: roscpp on embedded devices with ethernet?-----------------------------

-----------------https://code.ros.org/gf/project/ros/mailman/?_forum_action=ForumMessageBrowse&thread_id=73676&action=ListThreads&mailman_id=20----------------
--------2011-09-23 08:32:10 Re: [ros-users] tcpros on ethernet-enabled embedded devices--------------------
Posted By: Trevor Jay Obviously I'm a bit biased, but if your embedded platform supports
sockets or serial I second the idea of building off of a bridge (e.g.
rosbridge, http://www.ros.org/wiki/rosbridge or rosserial,
http://www.ros.org/wiki/rosserial ) instead of trying to get a full
ROS-compatible message stack on the embedded platform itself.

Many have reported success using rosserial with arduino and I've had
good results with using rosbridge from both Aurduinos and PICAxes

-------------2011-09-23 10:39:41 Re: [ros-users] tcpros on ethernet-enabled embedded devices---------------
Posted By: James Bowman Yes, I wrote rosduino as as an experiment. It's a minimal stand-alone
TCPROS client, and while it does actually join ROS and send/receive messages
completely standalone, the thing is a bit of a stretch for the Arduino's
meager resources. it might be interesting to revisit rosduino, targeting more
capable MCUs. Perhaps ARM with lwip?

Posted By: Mike PurvisIf we're not able to do the full stack, my preference would definitely be
toward rosbridge over rosserial.

-----------------https://code.ros.org/gf/project/ros/mailman/?_forum_action=ForumMessageBrowse&thread_id=73676&action=ListThreads&mailman_id=20------------------------

Data Pathway

unread,
Nov 19, 2012, 10:34:31 AM11/19/12
to cube-...@googlegroups.com
Yessir, the template at https://github.com/garyhodgson/githubiverse-template
the readme guides the implementation steps but there are some "github" knowledge assumptions...
so getting it working is the request ;-)

Data Pathway

unread,
Nov 19, 2012, 10:44:07 AM11/19/12
to cube-...@googlegroups.com
As always John, - your cutting right to the heart of it!

If this environment proves workable, (I'm optimistic)  CubeSpawns Software developement just leaped forward by several dozen man-years - I have toyed with the block diagram level concept for too long - time to get digital dust all over everything -I'll outline my idea in the Wiki and brace for the changes ;-) 
I currently have a beaglebone, several Arduino UNO's and a few slightly old PC's to set up as nodes - so I'll try to dummy up a network of ROS systems and begin digging into the specifics

Data Pathway

unread,
Nov 19, 2012, 10:49:38 AM11/19/12
to cube-...@googlegroups.com
I'll keep searching, but this seems like a good starting point to get ROS on the beaglebone...
http://williametter.com/portfolio/projects/ros-on-beaglebone/

Data Pathway

unread,
Nov 19, 2012, 6:12:53 PM11/19/12
to cube-...@googlegroups.com
Bob,

Have to extend my thanks for your questions, they seem to have jarred the project loose from its stasis! 

snoopy dance time!


On Thu, Nov 15, 2012 at 3:52 PM, Robert Teeter <bobt...@gmail.com> wrote:

Samuel Rose

unread,
Nov 19, 2012, 7:59:38 PM11/19/12
to cube-...@googlegroups.com
I set it up here:

https://github.com/samrose/examplerepo (notice the branch gh-pages
with the content you wanted included)

You can clone that whole repo and use it as-is as far as I can see.

see https://gist.github.com/4115258 for the commands I performed

Samuel Rose

unread,
Nov 19, 2012, 8:02:44 PM11/19/12
to cube-...@googlegroups.com
ps. when the files in the gh-pages branch are configured, they would
show up as a website by visiting:
https://samrose.github.com/examplerepo

Samuel Rose

unread,
Nov 19, 2012, 8:05:04 PM11/19/12
to cube-...@googlegroups.com

Cube Spawn

unread,
Nov 19, 2012, 8:08:18 PM11/19/12
to cube-...@googlegroups.com
  • Awesome! I shall attempt to follow your example later tonight - or in the morning - another giant lurch forward!!!

Data Pathway

unread,
Nov 15, 2012, 8:11:17 PM11/15/12
to cube-...@googlegroups.com
seems I created some confusion....
 
I see an instance of ROS as the master controller running the entire local cube array - this is exactly what this software is for: coordinating actions between self contained subsystems - each cube is a self contained subsystem. ergo.....

I see only a few different scenarios as to the onboard controller in a cube:

when I use the term "nano" I mean a nano computer like a beagle bone or an R-pi or a gumstick basically any embedded linux SBC

A dumb 8 bit controller that only executes a limited range of events when commanded and broadcasts status at regular intervals, or uses an asynchronous ach/nack start stop command structure. As in a pallet mover... Ethernet-->Controller-->Sensors 

An industrial control that recieves commands and then grinds away untill its finished (as during a cnc cutting sequence)  nano->controller (smoothie, arduino/grbl etc)->motor controller->steppers/servos->Sensors

a Robot, commands might flow back and forth between the master controller or a canned program including semi autonomous actions might be loaded and run
This could be another ROS instance, local to the cube
Nano-->multiple controllers running motion, sensors, vision etc

Now over the top of all of this is the agent software and likely some servers that ties participating sytems to the distributed manufacturing network via the web -- but the local system would not need that to work...

I will try to draw a diagram -- the one chris hardee did a couple years ago is pretty good for a general concept  


scroll to the bottom

Data Pathway

unread,
Nov 15, 2012, 8:14:30 PM11/15/12
to cube-...@googlegroups.com
I see now this is a little arduino centric - but the general principles still apply...

Samuel Rose

unread,
Nov 19, 2012, 10:31:21 PM11/19/12
to cube-...@googlegroups.com
If you get stuck, just let me know. I can be reached on chat sometime
over next few days, too.

Data Pathway

unread,
Nov 20, 2012, 1:54:58 AM11/20/12
to cube-...@googlegroups.com
after some dithering about... your excellent instructions led me here


so now more dithering as I determine how and what to add to populate the template
Reply all
Reply to author
Forward
0 new messages