tag:blogger.com,1999:blog-71300000483533592842024-03-06T12:00:54.171-08:00Regenerative AgRoboticsRegenerative AgRobotics is about the application of robotics to the practice of regenerative agriculture, with the goal of making its holistic practices more easily scalable.John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.comBlogger174125tag:blogger.com,1999:blog-7130000048353359284.post-5021173873029118822021-04-20T09:10:00.000-07:002021-04-20T09:10:18.886-07:00<p>
I see it's been nearly two years since I last posted here.
</p><p>
While I had already been tapering off, the primary reason for this is that the developer of the app I had been using for this purpose came to the conclusion that supporting this platform had become too onerous, because of an issue around access to stored image files.
</p><p>
Lack of the easy access that app had provided introduced just enough friction to keep me from posting, although I don't recall having had anything of burning importance to say, possibly because the bulk of my attention had also shifted to another interest.
</p><p>
I don't know what the future holds for this blog, but just now looking back through what's already here, I've been surprised and delighted to be reminded of some of it, and my sense of urgency has been rekindled.
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com2tag:blogger.com,1999:blog-7130000048353359284.post-67392935048851537952019-06-19T07:31:00.001-07:002019-06-19T07:31:11.129-07:00The ebb of ebb-and-flow<p>
I was already trying to concentrate on my music-related programming project before WWDC (June 3rd through 7th), and now my enthusiasm for it has been renewed, so that's where I'll be putting my time and energy for a while, months at least.
</p><p>
That doesn't necessarily mean this blog will fall entirely quiet, but that is one possibility. If nothing meriting long-form treatment occurs to me, I won't be posting here for a while.
</p><p>
In the meantime, I do expect to post the occasional tweet related to the same theme as this blog. To see those, have a look at <a href="https://twitter.com/lacyiceplusheat" target="_blank">https://twitter.com/lacyiceplusheat</a>.
</p>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-88039353606768626602018-11-15T07:55:00.001-08:002020-04-08T06:47:57.859-07:00Logistics for distributed, diverse production<p>
Farming operations don't exist in a vacuum. Farm products feed into a processing and distribution network, and, if nutrients are to be recycled, waste materials need to come back to farms to maintain and improve soils. Both flows, outward and inward, are served by keeping the supply lines (the need for transportation) as short as can reasonably be managed, given other constraints like economies of scale in processing, storage, distribution, and marketing.
</p><p>
This post will focus on the outward flow, from farm to processing and storage to distributor to vendor to customer, which, I'd argue, applies even to urban farms with direct-to-customer relationships, albeit in compressed form.
</p><p>
The usual model is that farms specialize, sometimes producing only a single commodity and typically only a few, with production profiles that closely resemble those of neighboring farms, feeding what they produce into bulk collection points (grain elevators, for example) and from those into processing, storage, and distribution networks that are optimized for certain measures of efficiency, notably the profitability of the companies involved.
</p><p>
But specialization of this sort does not lend itself well to high biological diversity, which, at the microbial level, is an important measure of soil health. This is less true of grazing operations, since pasture can be biologically very diverse, but even ranchers may suppress the growth of broadleaf plants to increase the proportion of grass in the mix, and, in any case, in temperate climates grazing may not be available all year around. For part of the year livestock may need to be fed hay, silage, grain, soy, etc., grown for this purpose or purchased from distribution chains similar to those described above.
</p><p>
So, even if we were already in possession of technology adequate to perform the detailed, plant-by-plant, leaf-by-leaf manipulations necessary to conduct diverse perennial polyculture at scale, we would still be faced with the challenge of pairing a production system with extended, overlapping harvests of perhaps dozens of different commodities from any given locale, with a processing and distribution system accustomed to large volumes of single commodities arriving more-or-less all at once.
</p><p>
This is both an informational challenge and also one of physical logistics.
</p><p>
The informational component begins with estimations of how much of what is likely to available from whom, how soon, with what expectation of quality. This can be combined over multiple farms to aggregate marketable quantities of each crop. By the time harvest arrives how much of each farmer's production should be combined with that from which other farms to go where should already be worked out.
</p><p>
The physical component is an exercise in materials handling, beginning with harvesting particular plants or plant parts from the midst of dense, mixed stands, without damage either to the crop being harvested or to what is left behind after harvest. The next step will likely be some form of containerization, so each farm's output can be identified, even after being combined with that from other farms for transport.
</p><p>
The informational component isn't so different from other applications of information technology, and, given the ability to provide reliable harvest predictions, developing that will be relatively straightforward. Most of what has yet to be worked out relates to the physical, materials handling component, the details of how to perform delicate harvesting operations and how to handle the crops once they're harvested.
</p><p>
Since efforts to develop such capabilities can't be expected to turn a profit next year, perhaps not even within the next ten years, this is an appropriate focus for government-funded research, and we should all be insisting that the relevant government agencies make this type of research a priority, while some soil remains to be saved and regenerated.
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-5687046374612006482018-02-23T09:04:00.001-08:002019-01-04T13:28:51.679-08:00The point isn't to replace people; it's to go beyond what people can do at scale.<p>
Imagine a horticulturist at work, repotting plants, snipping off withered leaves, moving plants farther apart as they grow, setting them out in gardens and landscapes, diagnosing nutrient deficiencies, diseases, infestations, and so forth, maybe even engaging in a little selective cross-pollination to produce new varieties, as time allows. A horticulturist needs to be a soil scientist, a botanist, a plant pathologist, a designer, and, in many cases, an entrepreneur.
</p><p>
Now imagine automating all of the most tedious physical tasks.
</p><p>
Even that is no small feat; skilled horticulturists probably have among the most secure jobs in existence. Nevertheless, it can be done and will almost certainly eventually be done.
</p><p>
So now imagine that you're running a company that is closing in on that goal and looking forward to what to take on next. Do you attempt to automate those aspects of the work requiring design and/or business sense, to entirely replace horticulturists with robots? Or do you press on with tackling more delicate tasks, faster, based on increasingly comprehensive sensory data backed by increasingly sophisticated processing and accumulated knowledge, with the intention of gradually moving this approach to plant cultivation out onto broad acres as the cost of doing so falls far enough to be competitive with other methods?
</p><p>
I suppose the answer depends on who you perceive the customer to be and what you perceive to be marketable, and whether you're only interested in business-to-business relationships or also want to serve the end consumer. (Note: people may quite willingly buy their food from a vending machine, but there's likely to be much more resistance to the idea of buying potted plants or flower arrangements from one. The interaction with another human being is integral to such transactions, and for good reason.)
</p><p>
I see the role of robots as coming in stages, beginning with augmenting what skilled humans can do by relieving them of the most time-consuming, tedious tasks, then taking the performance of those tasks deeper, by improving precision, data collection, and the conversion of that data into knowledge, then moving the capabilities developed into a broader context, such as by applying horticultural methods at the scale of agriculture.
</p><p>
The goal shouldn't be to replace humans, particularly not skilled, knowledgable humans. It should be to displace crude methods by bringing skill and knowledge to bear at scale.
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-18082360350919537872017-12-29T11:50:00.001-08:002017-12-30T09:23:32.886-08:00Terminology: Replacing 'mechanical' with 'physical'<p>
I have repeatedly referred to "mechanical methods" (of weed control, for example), both here and elsewhere. However, it has occurred to me that this phrase is far too constrained, failing to invite the broad-ranging imagination that will be needed, going forward. My sincere apologies.
</p><p>
'Mechanical' implies rigid structural components in more-or-less direct contact with whatever is being manipulated. Even solid components with a high degree of elasticity, such as are frequently used in soft robotics, aren't clearly included, much less devices with no moving parts, like phased-array radars, that project energy in a controlled manner.
</p><p>
"Physical methods" is a better, more inclusive term. The point is to differentiate methods involving pressure, momentum, impact, heat, cold, acoustic disruption, and so forth from methods involving the application of toxins.
</p><p>
"Physical methods other than tillage" is even better, since it helps avoid confusion with conventional physical methods. We need physical methods compatible with perennial polycultures which can be highly automated so they can be applied at scale. To this end, terminology which blinders the imagination is not helpful.
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-9320468468504681612017-04-07T09:36:00.001-07:002017-04-07T09:36:33.204-07:00Crash Course Computer Science video series<p><iframe width="560" height="315" src="https://www.youtube.com/embed/tpIctyqH29Q?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo" frameborder="0" allowfullscreen></iframe></p><p><a href="https://www.youtube.com/user/crashcourse" target="_blank">Crash Course</a> is a video channel you can access through YouTube.</p><p><a href="https://www.youtube.com/playlist?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo" target="_blank">Crash Course Computer Science</a> is an ongoing playlist of fast-moving videos that begin with the most basic underpinnings of digital computing and progress from there.</p><p>If you are a complete novice, you'll probably want to take them one at a time, watch each several times, and perhaps also supplement them with other sources, to make sure you understand each new concept.</p><p>If you're already somewhat familiar with the subject, this is a great review!</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-39005064934501967962017-03-13T09:48:00.001-07:002017-10-09T22:34:44.310-07:00What's wrong with ‘best practices’?<p>
What's meant by ‘best practices’ and what could possibly be wrong with it? (Yes, I've used that phrase frequently myself, but I've been becoming increasingly uncomfortable with it.)
</p><p>
So I take ‘best practices’ to mean, of the practices now in use, those which come closest to achieving commonly agreed goals. This begs the question ‘commonly agreed among whom?’
</p><p>
In the context of agriculture, depending who you ask, goals that are considered to be ‘commonly agreed’ might or might not include such fundamentals as soil conservation, crop heterozygosity (in-species genetic diversity), and eliminating the use of broad-spectrum toxins, and might also include maximizing the growth and profit of certain corporations, as well as maximizing agriculture's contribution to alleviating the imbalance in imports versus exports.
</p><p>
Without going into detail, what constitutes ‘best practices’ can look very different depending on the goals to be served, but even leaving that aside there's still the issue of ‘best practices’ implying that the matter is already decided.
</p><p>
There's also a problem with ‘now in use’ as used above. As our tools and understanding evolve, what is now in use is almost certain to be replaced with something better, by some measure, eventually if not sooner. By focusing on even the best of what is now in use, we may miss the opportunity to make further improvements sooner rather than later, and, in the context of eroding soils and evaporating genetic diversity, in time to prevent further damage.
</p><p>
The focus of this blog is on the application of robotics to (addressing the many problems with) agriculture. I understand this in not obvious to many, both roboticists and high-concept gardeners and farmers (those engaging in organic / biological / biodynamic / regenerative / natural systems ... practices).
</p><p>
I don't see robotics as a magic bullet. It could all too easily simply accelerate the damage, in fact that's probably the default, in the absence of advocacy for making the technology serve higher aspirations, and without funding for achieving them.
</p><p>
What I do see is a deep well of potential for improvement, in tools, in the practices those tools enable, in our understanding of how and why to wield them, and, most importantly, in the scale at which those new tools, practices, and understanding can be applied.
</p><p>
Robots are machines that make decisions, sometimes very simple decisions but decisions nonetheless. They make those decisions on the basis of information gathered from their environments, and vary their behavior accordingly.
</p><p>
They are very good at tracking a multiplicity of details, and can learn from experience and carry out experiments. And, while they were until recently clumsy and slow, they are now gaining delicate touch, dexterity, and speed.
</p><p>
The potential I see is for replacing broad-acre monoculture with something better, much better, on the scale of millions of acres, but for that to happen in a reasonable time-frame developing the technology must become a higher priority than protecting currently profitable operations and arrangements, and so far the demand for this is both unfocused and lackluster. I'm doing what little I can to change that.
</p><p>
Check out <a href="http://www.thepermaculturepodcast.com/2017/1709/" target="_blank">The Permaculture Podcast, #1709: Regenerative Agriculture with Ethan Roland</a>!
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-50754272668298335662017-03-12T10:56:00.001-07:002017-03-13T08:19:15.287-07:00Collaborating machines and avoiding soil compression<p>
Soil compression can be a serous problem, but it isn't always and in all ways a bad thing. For example, the impressions made by hoofed animals, so long as they only cover a minor fraction of the soil surface, create spaces in which water can accumulate and help it percolate into the soil more effectively, avoiding erosive runoff.
</p><p>
The linear depressions made by wheels rolling across the surface are more problematic, because they create channels that can accelerate the concentration of what would otherwise be evenly distributed rainfall, turning it into a destructive force. This is far less serious when those wheels follow the contour of the land rather than running up and down slopes.
</p><p>
Taking this one step further, if it is possible for wheeled machines to always follow the same tracks, the compression is localized and the majority of the land area remains unaffected. If those tracks are filled with some material though which water can percolate but which impedes the accumulation of energy in downhill flows, the damage is limited to the sacrifice of the portion of the overall land area dedicated to those tracks and the creation of compression zones beneath them, which may result in boggy conditions on the uphill sides of the tracks, which may or may not be a bad thing, depending on what one is trying to grow there.
</p><p>
(I should note at this point that such tracks, when they run on the contour, are reminiscent of the ‘<a href="https://en.wikipedia.org/wiki/Swale_(landform)" target="_blank">swales</a>’ used in permaculture and regenerative agriculture.)
</p><p>
Tractors with GPS guidance are capable of running their wheels over the same tracks with each pass, but the need for traction, so they can apply towing force to implements running through the soil, means that those tracks will constitute a significant percentage of the overall area. Machines, such as dedicated sprayers, with narrower wheels that can be spread more widely apart, create tracks which occupy far less of the total land area, but they are not built for traction, and using them in place of tractors for all field operations would require a very different approach to farming.
</p><p>
It is possible to get away from machine-caused soil compression altogether, using either aerial machines (drones) or machines which are supported by or suspended from fixed structures, like posts or rails.
</p><p>
Small drones are much like hummingbirds in that they create very little disturbance, but they are also limited in the types of operations they can perform by their inability to carry much weight or exert significant force. They're fine for pollination but you wouldn't be able to use them to uproot weeds with tenacious roots or to harvest watermelons or pumpkins.
</p><p>
On the other hand, fixed structures and the machines that are supported by or suspended from them have a significant up-front cost. In the case of equipment suspended from beams or gantries spanning between rails and supported from wheeled trucks which are themselves supported by rails, there is a tradeoff between the spacing of the rails and the strength/stiffness required in the gantry. Center-pivot arrangements also have such a tradeoff, but they use a central pivot in place of one rail (or wheel track), and it's common for them to have several points of support spaced along the beam, requiring several concentric rails or wheel tracks.
</p><p>
Strictly speaking, there's no particular advantage in having rail-based systems follow the contour of the land, since they leave no tracks at all. Center-pivot systems using wheels that run directly on the soil rather than rail are best used on nearly flat ground, since their round tracks necessarily run downhill over part of their circumference. In any rail-based system, the ‘rail’ might be part of the mobile unit rather than part of the fixed infrastructure, drawing support from posts spaced closely enough that there were always at least two beneath it, however this would preclude using trough-shaped rails to deliver water for irrigation.
</p><p>
Since the time of expensive machines is precious, it's best to avoid burdening them with operations that can be handled by small, inexpensive drones, and the ideal arrangement is probably a combination of small drones, a smaller number of larger drones with some carrying capacity, light on-ground devices that put little pressure on the soil, and more substantial machines supported or suspended from fixed infrastructure, whether rail, center-pivot, or something else. Livestock (chickens, for example), outfitted with light wearable devices, might also be part of the mix. In addition to gathering data, those devices might be used to direct their attention and to defend them from predators.
</p><p>
The small drones, being more numerous, will be the best source of raw data, which can be used to optimize the operation of the larger drones, on-ground devices, and the machines mounted on fixed infrastructure, although too much centralized control would not be efficient. Each device should be capable of continuing to do useful work even when it loses network connection, and peer-to-peer connections will be more appropriate than running everything through a central hub in some circumstances.
</p><p>
This is essentially a problem in complex swarm engineering, complex because of the variety of devices involved. Solving it in a way that creates a multi-device platform capable of following rules, carrying out plans, and recognizing anomalous conditions is the all-important first step in enabling the kind of robotics that can then go on to enable scalable regenerative practices in farming (and land management in general).
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-28393003409768587962017-01-23T10:14:00.001-08:002017-01-23T10:26:37.564-08:00New blog title: Regenerative AgRobotics<p>
The title of this blog until today, Cultibotics, has always been kind of awkward, both invoking unfortunate associations (cults) and failing to communicate its purpose without explanation.
</p><p>
I hope the new title, Regenerative AgRobotics, will serve better.
</p><p>
For compatibility with existing links, the URL remains <a href="https://cultibotics.blogspot.com" target="_blank">https://cultibotics.blogspot.com</a>. (I will endeavor to remember to use the secure https version henceforth.)
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-30844620596283487362017-01-18T10:54:00.001-08:002017-01-18T21:40:35.773-08:00How Regenerative Agriculture and Robotics can benefit each other<p>
I've come around to the view that the best and most inclusive term for high-concept farming which is both sustainably productive and ecologically responsible is <a href="https://en.wikipedia.org/wiki/Regenerative_agriculture" target="_blank"><strong>Regenerative Agriculture</strong></a>. It implies all that is meant by permaculture, agroecology, carbon farming, and organic farming, but goes beyond these to focus on living matter in the soil, and in this is closely aligned with the term biodynamic. That said, I'm not prepared to argue the point; I only say this by way of explaining why I've chosen to use this term here.
</p><p>
These are perilous times, perhaps not to the extent portrayed by tabloid journalism, or suggested by the recent abundance of misinformation and misinformed opinion on social media, but perilous nonetheless, and there are plenty of squeaky wheels around all competing for grease. In this political-economic environment, making a case for adequate funding (whether public or private) has become increasingly difficult. The cost-benefit ratio or colloquially ‘bang for the buck’ is again the primary metric driving investment, with benefit usually measured in terms of potential profit where private investment is concerned.
</p><p>
The synergy of substantive collaboration (or ‘co-leverage’) can be all-important in determining which projects get funded. If you can show that advances in your field are synergistic with advances in another field, such that each furthers the goals of the other, and your proposal crosses those boundaries, you stand a better chance of attracting investment than if you go it alone.
</p><p>
I believe such a synergy exists, or could easily be made to exist, between robotics and regenerative agriculture.
</p><p>
Robotics needs a market into which it can sell a large volume of many kinds of machinery, and from which it can gain abundant experience, without the burden of liability presented, for example, by autonomous vehicles operating on streets and highways. Agriculture is good for this, in terms of scale, tolerance for beta-ware, and the opportunity for gaining experience with new approaches and new technologies, and operating within complex environments. Regenerative agriculture is particularly ideal, because the need is for small-scale, context-sensitive equipment, which, if it malfunctions, will only cause minimal damage, and the complexity of the environments involved is at least an order of magnitude greater than with conventional agriculture.
</p><p>
Regenerative agriculture needs a way of scaling up its best practices, so they can be deployed across millions of hectares, without resorting to compromises involving heavy equipment and soil compression, or herbicides, and without waiting for millions of people to decide they want to go back to the land and work it by hand. Because many of those best practices involve attention to detail, that scalability can only be achieved through robotics. On the other hand, given equipment that automates not only the work of regenerative agriculture but data collection, the stage would be set for pushing the state of the art, to evolve even better practices and to further develop crop genomes based on phenotype (how plants actually perform under diverse conditions).
</p><p>
Together, robotics and regenerative agriculture can do much to drive each other's development, and to improve humankind's prospects for the future. But, of course, the near-term bottom line is that, together, they can make a more compelling case for adequate funding.
</p>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-88448213278641221512017-01-15T23:06:00.001-08:002017-01-16T09:51:08.710-08:00How technology can help keep farmers relevant<p>
I've <a href="http://www.well.com/user/satyr/755/robotics.html" target="_blank">long believed</a> that Augmented Reality (AR) and robotics are closely related. Both model their environments to some degree. Robotics uses that model to guide the behavior of a machine, whereas AR uses it to provide an enhanced sensory experience to a human.
</p><p>
The exact nature of that enhanced experience is bounded only by available sensory, computational, and display (audio, haptic, ...) hardware, and by how the data gathered can be usefully transformed into overlays that augment the natural perception of the human user. What is useful is a function of both the content of those overlays and the latency, how much lag time is introduced by the computations involved in generating the overlays. Faster computational hardware can produce more detailed overlays with the same latency or the same overlays with lower latency than slower hardware.
</p><p>
One important application for AR is making it safer and easier for a human to work in collaboration with robotic hardware. For example, a robot might provide the path it intends to follow and the 3D space through which it intends to pass, and that information might be converted in an AR display into highlighting of anything occupying that space. Or perhaps a machine wants to direct the attention of its human counterpart to some particular element of the environment, say one specific plant. That too could be highlighted in the display.
</p><p>
While these examples only scratch the surface of what is possible, they do serve to illustrate that the content of the AR overlays need not be generated entirely from data gathered by sensors attached to the display itself, but can be provided by other sources, including but not limited to other nearby devices. Those sources might include aerial or satellite imagery and information from databases. In the farming context, they might include 3D soil maps produced from core samples.
</p><p>
Examples of overlays that might be useful for a farmer include thermal imagery, current soil moisture content, soil surface porosity and water absorption capacity, exaggerated vertical relief and what to expect in the way of runoff and resulting erosion for various precipitation scenarios, highlighting all plants of a particular species, all plants exhibiting nutrient deficiencies or other trauma, highlighting bare soil (no mulch or plant cover), the presence, activity, and impact of various types of animals. This list could go on and on.
</p><p>
Machines may be better at doing particular manipulations of data, finding correlations, and even at answering well-specified questions, but they're not so good at asking meaningful questions, much less at thinking outside the box. For this reason, the combination of human and machine is more powerful than either alone.
</p><p>
It's still very early days in AR, and there's a great deal of room for improvement. One development that is likely to occur sooner rather than later is voice operation, enabling hands-free control of the AR experience, including which overlays are active and how they are combined. With voice control, a farmer should be able to walk through a field, say what he wants to see, and make modifications to the plan controlling the robotic machinery that actually operates the farm, or issue commands for execution by the first available machine. For most, this will be a more intimate and far richer connection to their land than what they currently experience.
</p>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com1tag:blogger.com,1999:blog-7130000048353359284.post-60029182865263573432017-01-14T20:39:00.001-08:002017-01-15T13:01:50.779-08:00What's left for farmers to do when machines ‘do it all’?<p>
Let's assume, for a moment, that the vision I've laid out in this blog is ridiculously successful, and, over the next few decades, robotic devices take over all aspects of tending land and crops and handling material inputs and produce, and do it using increasingly sustainable (regenerative) practices that begin the process of retaining and enhancing biological diversity and reviving overworked soils. What's left for farmers to do? Will there even be a need for humans on farms?
</p><p>
Well, in that improbable scenario, once the process has run its course and there's no room left for qualitative improvement, and the machines are self-repairing and the algorithms are self-optimizing for constantly changing conditions, perhaps, strictly speaking, the answer would be "no, not really, not a need in the sense of an indispensable component." A farm so equipped might run itself for months or years at a time without human intervention.
</p><p>
There are two problems with this, however. First, that level of automation is unlikely to happen in the lifetime of anyone reading this, and for the foreseeable future there will be need for human involvement in design and management decisions, making use of their own senses in combination with data to drive improvements, as well as filling in the gaps in the perceptual and physical capabilities of the machines.
</p><p>
The other objection has no expiration date. It's about whether a human presence brings anything valuable to land husbandry, and ultimately whether people are allowed to forget where their food comes from, such that, if all of the machines were to suddenly shut down or break, no one would have a clue as to how to proceed. There will always be a need for humans who understand why the machines make the choices they do, and that understanding will always be best achieved when augmented by being physically present, walking fields, examining details with a magnifying glass, experiencing the sounds and smells directly, and lending a hand with some of the work, even when it could be done faster and more precisely by one of the machines, just to have the experience of participating in the process.
</p><p>
Without such people who remain deeply connected to the land and our use of it to act as interpreters, those who live in urban areas will have only feeds from the machines themselves and will probably lose interest, and perhaps also lose the will to maintain support for environmentally responsible policies in the face of periodic calls for austerity and ever-increasing efficiency. Actually, we're faced with that challenge right now, so maybe there are already too few people on the land, or those who are engaged in farming don't have the time for learning about all of the ‘extraneous’ factors not obviously relevant to their low-margin agribusiness operations, or for acting as interpreters for others.
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-32151546443509475032017-01-01T14:58:00.001-08:002017-01-01T14:58:25.926-08:00The coming age of AI: What is NOT inevitable<p>
In <a href="https://backchannel.com/the-seven-steps-toward-making-humans-obsolete-3a5c4e24a19b" target="_blank">a Backchannel post</a> Steven Levy excerpts “the seven stages of robot replacement” from Kevin Kelly's book <a href="http://www.penguinrandomhouse.com/books/317372/the-inevitable-by-kevin-kelly/9780525428084/" target="_blank">The Inevitable: Understanding the 12 technological forces that will shape our future</a>, and briefly lays out the main thesis of the book, which is that AI-driven transformation is coming, whether we're ready for it or not. (Caveat, I have not read the book itself and cannot speak to what all it may or may not include.)
</p><p>
Artificial Intelligence is in the process of arriving, a process which began a few years ago and which is likely to take another few years or decades to play out, but that it will play out is inevitable, and that this will mean a degree of social and economic disruption is equally inevitable. What remains in question is how that arrival will effect everything else, which will be in no small part a function of the forces and specific decisions shaping the translation between machine perception and behavior.
</p><p>
If that translation is optimized for maximum profit for those funding the development, production, and marketing of these technologies, will it reflect concerns which don't rate as priorities for those who are their direct customers, those who buy and operate the machines, presumably hoping to optimize the profitability of their own businesses? These customers must operate in their respective markets, dependent on the demands of their own customers and the cooperation of other suppliers, each driven by their own interests. If their margins are thin, they may have no patience for machine behavior driven by what, for them, are secondary or tertiary concerns, which, in the context of agriculture, could very easily include soil health and erosion control, if catering to those concerns makes the difference between profit and loss in the current year.
</p><p>
AI and robotics <strong>could</strong> enable the scalability of ecologically sound practices in agriculture, but <strong>will</strong> they? There's more at play here than the inevitable march of technology. While the agricultural context is really only an example, it is one where concerns other than short-term profitability are all too likely to fail to make the cut as priorities. This would be less worrisome if those other concerns didn't also represent our best hope for halting the loss of biodiversity and soil fertility, for stemming the accumulation of greenhouse gases in the atmosphere, and for improving human nutrition.
</p><p>
AI is inevitable, but the most desirable benefits from it are not, and it will take more than market forces to ensure they don't remain forever beyond reach.
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com1tag:blogger.com,1999:blog-7130000048353359284.post-56931165581127905262016-09-11T16:35:00.001-07:002016-09-11T16:35:38.003-07:00Daniel Schmoldt of USDA/NIFA presenting at NREC 20th anniversary seminar<p>
<iframe width="400" height="225" src="https://www.youtube.com/embed/kzVgUL5iXX4?rel=0" frameborder="0" allowfullscreen></iframe>
</p><p>
Streamed live on Sep 8, 2016 - “Daniel Schmoldt completed his academic training in 1987 from the University of Wisconsin-Madison with degrees in mathematics, computer science, and forest science. The latter included completion of both Masters and Ph.D. programs. From 1987 until 2001, he held several research scientist positions with the U.S. Forest Service while conducting research in a variety of forestry areas: wildfire management, atmospheric deposition, artificial intelligence, decision support systems, ecosystem management, machine vision systems, and automation in forest products utilization. From 1997-2004, he served as Joint Editor-in-Chief for the Elsevier journal, Computers and Electronics in Agriculture, and remains on their editorial board. Since 2001, he has filled a newly created position as National Program Leader for Instrumentation and Sensors with the National Institute of Food and Agriculture, and helps to prioritize, develop, focus, and coordinate USDA research, education, and extension programs covering the development of sensors, instrumentation, and automation technologies related to precision agriculture/forestry, robotics, processing of agricultural and forest products, detection of contaminants in agricultural products, and monitoring and management of air, soil, and water quality. His current $100M+ portfolio of grant programs include specialty crops, agroclimatology, robotics, engineering, nanotechnology, and cyber-physical systems. Finally, he currently serves as the USDA representative to several Office of Science and Technology Policy working groups on
engineering and technology.”
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-37813702909188047832016-09-03T14:48:00.001-07:002016-09-03T14:48:21.215-07:00Sensing and Sensory Response in Plants<p>
<iframe width="400" height="225" src="https://www.youtube.com/embed/zm6zfHzvqX4?rel=0" frameborder="0" allowfullscreen></iframe>
</p><p>
Presented for a general audience, this video is a gentle introduction to the ability of plants to detect and respond to aspects of their environments.
</p>John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-6548550362904549212016-09-03T08:01:00.001-07:002016-09-03T08:01:25.185-07:00"Pesticides include both insecticides and herbicides"<p>
In an article titled <a href="http://www.npr.org/sections/thesalt/2016/09/01/492091546/how-gmos-cut-the-use-of-pesticides-and-perhaps-boosted-them-again" target="_blank">“How GMOs Cut The Use Of Pesticides — And Perhaps Boosted It Again”</a> on NPR.org, Dan Charles writes “Pesticides include both insecticides and herbicides”.
</p><p>
To this point, I have used ‘pesticide’ and ‘herbicide’ as disjunct terms, rather than treating pesticides as being inclusive of herbicides, thinking of ‘pesticide’ as referring to any chemical agent applied for the purpose of controlling <strong>animal</strong> pests, but this may not be strictly correct.
</p><p>
In any case, it is at variance with one authoritative interpretation of these terms.
</p>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-55058577234353410202016-08-03T15:47:00.001-07:002016-08-03T15:47:40.047-07:00Assessing the Present Moment<p>
I've long contended that, with the partial exception of <a href="https://www.facebook.com/lacyiceplusheat" target="_blank">Facebook</a>, my online presences aren't about me. They're about something of interest to me, and inevitably filtered through my perspective and constrained by the amount of time I have to give to each, but they're not actually about me. I'm personally not that interesting, I'm just fiendishly drawn to topics that are.
</p><p>
Nevertheless, life sometimes impinges.
</p><p>
In <a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html" target="_blank">Robotics for Gardeners and Farmers, Part 6</a>, I said "I think it is time to bring this series to a close and begin a new one which attempts to bring these two audiences together...", implying, without saying so directly, that this new series would follow almost immediately.
</p><p>
What did occur to me almost immediately after posting the above is that the effort to bring roboticists together with gardeners and farmers — particularly those engaged in organic/biological/ecological/regenerative approaches — has been the primary mission of this blog from its outset, ten years ago, so a series for this purpose would seem somewhat redundant. Also, the effort to produce the twelve posts outlined in <a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardening-and-farming.html" target="_blank">Robotics for Gardening and Farming: A Guide to Two Recent Series</a> exhausted me more than I appreciated at the time. I need a break.
</p><p>
Happily, the dramatic success of the pre-order campaign for <a href="https://farmbot.io" target="_blank">FarmBot Genesis</a> came along just in time to take up my slack. So far as I'm concerned, the ball is in their court for the moment.
</p><p>
I expect to return to posting here at a more sedate pace, and to give more of my time to <a href="http://harmonicratio.blogspot.com" target="_blank">other interests</a>.
</p><p>
In the meantime, I will continue to be on the lookout for anything I can simply link to that contributes to building a bridge between robotics and its application to making the best practices of __*__ scalable. *(Filling in that blank is a bit tricky. There are quite a few overlapping communities of practice, and I don't wish to exclude any of them.)
</p><p>
If what you see here leaves you wanting more, I post more frequently to my <a href="http://www.scoop.it/t/cultibotics" target="_blank">Scoop.it topic</a>, and more frequently yet to my
<a href="https://twitter.com/lacyiceplusheat" target="_blank">Twitter account</a>, both of which have a similar central focus.
</p>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-6212301713367224002016-07-17T17:46:00.001-07:002016-07-17T17:58:33.360-07:00Robotics for Gardening and Farming: A Guide to Two Recent Series<p>
Over the past weeks, I've written two series of posts, the first titled "Biological Agriculture for Roboticists" and the second "Robotics for Gardeners and Farmers", with the intention of helping to bridge the gap between these occupations and those engaged in them. What appears below is a table of contents for those series.
</p>
<h3 style="margin-top:2em">Biological Agriculture for Roboticists</h3>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html">Part 1</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#cultivation" target="_blank">Cultivation</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#soil" target="_blank">Soil</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#fertilizer" target="_blank">Fertilizer</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#herbicide" target="_blank">Herbicide</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#pesticide" target="_blank">Pesticide</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#fungicide" target="_blank">Fungicide</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#biocontrol" target="_blank">Biological Control</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#polyculture" target="_blank">Polyculture</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#crotation" target="_blank">Crop Rotation</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists.html#permaculture" target="_blank">Permaculture</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_10.html">Part 2</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_10.html#vegrepro" target="_blank">Vegetative Reproduction</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_10.html#plantprop" target="_blank">Plant Propagation</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_10.html#aquaculture" target="_blank">Aquaculture</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_10.html#hydroaero" target="_blank">Hydroponics & Aeroponics</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_10.html#aquaponics" target="_blank">Aquaponics</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html">Part 3</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#fertility" target="_blank">Loss of Soil & Fertility and Population Growth</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#malnutrition" target="_blank">Malnutrition</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#countertrends" target="_blank">Countertrends</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#indoorfarm" target="_blank">Indoor Farming</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#scalability" target="_blank">Scalability of Agricultural Methods</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#temptation" target="_blank">Temptation to use Gross Methods</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#neededequip" target="_blank">Need for Appropriate Equipment</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#oneway" target="_blank">One-way Scalability</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#economics" target="_blank">Impacts on Bottom Line for Farmers</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#inevitability" target="_blank">Eventual Inevitability</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#smallholders" target="_blank">Benefits to Small Farmers</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_13.html#plantbreeding" target="_blank">Benefits to Plant Breeders</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_22.html">Part 4</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_22.html#erosion" target="_blank">Erosion Control</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_22.html#tilledweeding" target="_blank">Weeding Recently Tilled Fields</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_22.html#rampingprecison" target="_blank">Increasing Precision</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_22.html#pastures" target="_blank">Weeding Pastures</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_22.html#plantedweeding" target="_blank">Weeding Planted Fields</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_22.html#weedseedlings" target="_blank">Suppressing Weed Seedlings</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_22.html#tenaciousroots" target="_blank">Weeds with Tenacious Roots</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html">Part 5</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#discrimination" target="_blank">Distinguishing Plant Types</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#endangered" target="_blank">Rare & Endangered Species</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#welcomenatives" target="_blank">Benign Native Species</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#challenges" target="_blank">Challenges in Distinguishing Plant Types</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#default" target="_blank">When in Doubt Do Nothing</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#location" target="_blank">The Centrality of Location</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#imagery" target="_blank">Using Imagery</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#othermodes" target="_blank">Other Sensory Modes</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#fusion" target="_blank">Sensor Fusion</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html">Part 6</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#mixedherds" target="_blank">Mixing Grazers and Browsers</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#leftovers" target="_blank">Unpalatable Leftovers</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#lowgrowing" target="_blank">Dealing with Low Growing Weeds</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#rotaryrasp" target="_blank">Using a Rotary Rasp for Uprooting</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#sound" target="_blank">Using Sound</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#sonar" target="_blank">Sonar</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#passivesound" target="_blank">Sound Produced by Animals</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#activesound" target="_blank">Sound as an Effector Modality</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#plantsounds" target="_blank">Listening to Plants</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_29.html#wideopen" target="_blank">Research Opportunities</a></li>
</ul>
<h3 style="margin-top:2em">Robotics for Gardeners and Farmers</h3>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html" target="_blank">Part 1</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html#wishlist" target="_blank">What's Your Wish List?</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html#achievable" target="_blank">What's Achievable Now?</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html#drone" target="_blank">What is a Drone?</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html#tinydrones" target="_blank">Tiny Drones</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html#sensor" target="_blank">Simple Sensors</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html#program" target="_blank">Program (noun and verb)</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html#automation" target="_blank">What is Automation?</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html#robot" target="_blank">What is a Robot?</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html#robotics" target="_blank">What is Robotics?</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html" target="_blank">Part 2</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html#whybother" target="_blank">Why Bother with Tinkering?</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html#bit" target="_blank">What is a "Bit"?</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html#signal" target="_blank">What is a Signal?</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html#clock" target="_blank">What is a Clock Signal?</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html#serialparallel" target="_blank">Serial vs. Parallel</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html#social" target="_blank">Driving Progress through Social Networking</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html" target="_blank">Part 3</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html#serialpp" target="_blank">Serial Ports & Protocols</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html#binarylogic" target="_blank">Binary Logic</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html#bitshift" target="_blank">Bit Shift Operations</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html#integer" target="_blank">Integers & Integer Arithmetic</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html#floats" target="_blank">Floating Point Numbers & Arithmetic</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html#machinecode" target="_blank">Machine Code</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html#cores" target="_blank">Processing Cores</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html#gpgpu" target="_blank">GPUs & General Purpose Programming Using Them</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_26.html" target="_blank">Part 4</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_26.html#storage" target="_blank">Registers, Memory, Address Spaces, & Cache</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_26.html#adconversion" target="_blank">Analog/Digital Conversion & GPIO</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_26.html#assembler" target="_blank">Assembler Language</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_26.html#higherlevel" target="_blank">Higher Level Languages</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_26.html#oses" target="_blank">Operating Systems</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part.html" target="_blank">Part 5</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part.html#vendors" target="_blank">Vendors & Helpful Websites</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part.html#videos" target="_blank">YouTube Channels</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part.html#arduino" target="_blank">The Arduino Platform</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part.html#rpi" target="_blank">The Raspberry Pi Platform</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part.html#ecosystems" target="_blank">Technological Ecosystems</a></li>
</ul>
<h4 style="margin-bottom:0"><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html" target="_blank">Part 6</a></h4>
<ul style="margin-top:0">
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#analogy" target="_blank">What It's Like To Be A Computer</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#sensors" target="_blank">The Role of Sensory Hardware</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#threewheels" target="_blank">A Simple Robotic Project</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#sprinkler" target="_blank">Even Simpler Mechanical Device</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#location" target="_blank">Determining Location</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#gps" target="_blank">Using GPS</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#precision" target="_blank">Higher Precision Localization</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#railgantry" target="_blank">Rail & Gantry Systems</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#moisture" target="_blank">Soil Moisture & Networked Sensors</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#proximity" target="_blank">Proximity Sensing</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#other" target="_blank">Other Sensor Modalities & What All Have in Common</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part_17.html#afterword" target="_blank">Afterword</a></li>
</ul>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-47156505222130565782016-07-17T00:41:00.001-07:002016-07-17T17:39:36.699-07:00Robotics for Gardeners and Farmers, Part 6<p>
Imagine, for a moment, that you are a baby chipmunk, emerging from the burrow for the first time and having your first look around. The world is amazing, full of light and sound, most of which doesn't make much sense at first, although your highly evolved mammalian brain quickly learns to turn that barrage of data into a plausible model of what is happening around you. But, in that first instant, it's cacophony.
</p><p id="analogy">
Now let's take this one step further. Imagine you're a <a href="https://flic.kr/p/7UaNYk" target="_blank">newborn tree squirrel</a>, nearly devoid of usable senses, that somehow fell from the nest but survived the fall. Without sensory hardware or some other source of information about its environment, this is essentially the situation faced by any computing device, except that it doesn't experience distress; it just runs code.
</p><p id="sensors">
Machines only have the senses provided through the inclusion of sensory hardware in their construction, and even that by itself is insufficient. Sensory hardware must be attached to computing hardware in a manner that allows it to pass along signals representing what it has sensed, and that computing hardware must be able to interpret those signals meaningfully, either automatically, as a result of its design, or under the control of software. Those meaningful interpretations must then be passed along to software which chooses among available actions and plans the execution of whatever action it has chosen, with the resulting action feeding back into the cycle as altered sensory input.
</p><p id="threewheels">
This all sounds very complicated, but it needn't always be so. Say you have a triangular platform supported by three steerable, powered wheels near the corners, all three of which always point the same direction, meaning that they are steerable in unison, perhaps under the control of a single motor and a chain drive. This platform is sitting on a table top, and its purpose is to randomly roll around on the table without falling over the edge. All that is required to accomplish this is three edge detectors, basically simple feelers, extending beyond the wheels, each producing a simple signal (no <a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html#clock" target="_blank">clock</a> needed) that lets the processor know when an edge has been detected, informing it that it should not go any further in that direction and to pick another direction, one that will move the device away from the detected edge. If the device detects edges at two corners at more or less the same time, it will know to move in the direction of the corner from which it is not receiving such a signal. If this is the only challenge with which this device is presented, it will happily roll around, without falling off the table, until its batteries can no longer power the circuitry or make the motors turn.
</p><p id="sprinkler">
While this example isn't particularly useful, except perhaps for keeping small children or pets entertained, there are even simpler devices which are, such as a hose-following lawn sprinkler, and even when you're setting out to design a full-blown robotic system it's good practice to make a first pass using the simplest approach that will do a passable job of whatever it is you're out to accomplish.
</p><p>
That said, let's dive into the discussion of enabling machines to garner some information about their environments.
</p><p id="location">
One of the most important categories of information for a machine that moves about is <a href="http://cultibotics.blogspot.com/2016/05/biological-agriculture-for-roboticists_24.html#location" target="_blank">location</a>, with respect to any boundaries it should not venture beyond and to any significant features within those boundaries.
</p><p id="gps">
For some purposes, knowing where it is to within a few yards might be enough. Say you wanted a lawn sprinkler that moved itself about more intelligently than one that just follows a hose, and you're only going to use it in the back yard, so you don't need to worry about it sprinkling visitors or your mail carrier. It's going to need a time source, so you can tell it when to start sprinkling, a map of the back yard, and some means of determining where it is within that map. One obvious way to determine location would be GPS. There are GPS receivers available for single-board computers and microcontrollers, typically as plug-in boards called <a href="https://en.wikipedia.org/wiki/Arduino#Shields" target="_blank">shields</a>, and, if your yard is fenced in and you don't mind some imprecision, GPS might be good enough.
</p><p id="precision">
For other purposes, like edging the lawn along walks and around garden spaces, GPS alone doesn't come close to being precise enough, and you might wish to rely upon some other <a href="https://en.wikipedia.org/wiki/Positioning_technology" target="_blank">positioning technology</a>, or upon a <a href="https://en.wikipedia.org/wiki/Hybrid_positioning_system" target="_blank">hybrid system</a>, perhaps utilizing technology <a href="https://en.wikipedia.org/wiki/Indoor_positioning_system" target="_blank">more usually applied indoors</a>. One approach would be to use an array of <a href="https://en.wikipedia.org/wiki/ZigBee" target="_blank">ZigBee protocol</a> nodes spread around the perimeter of your yard, triangulating position based on <a href="https://en.wikipedia.org/wiki/Received_signal_strength_indication" target="_blank">signal strengths</a> from those nodes, although this too might not be precise enough for edging.
</p><p id="railgantry">
For rectangular garden spaces and raised beds, the rail and gantry approach employed by <a href="http://cultibotics.blogspot.com/2016/07/farmbot-open-source-cnc.html" target="_blank">FarmBot</a> provides enough precision for most operations, and provides a good foundation for greater precision based on <a href="https://en.wikipedia.org/wiki/Computer_vision" target="_blank">imagery</a> and <a href="http://blog.robotiq.com/bid/53553/Robot-Force-Control-An-Introduction" target="_blank">force control</a>, topics beyond the scope of this installment.
</p><p id="moisture">
Returning to our lawn sprinkler example, you might want to take soil moisture levels into account, but incorporating a <a href="https://www.sparkfun.com/products/13322" target="_blank">soil moisture sensor</a> into your sprinkler would make it considerably more complicated, and, in any case, healthy turf can be very difficult to penetrate, so maybe you'd prefer to distribute several of these sensors around your yard and network them together using <a href="https://en.wikipedia.org/wiki/Wi-Fi" target="_blank">WiFi</a>, <a href="https://en.wikipedia.org/wiki/Bluetooth" target="_blank">Bluetooth</a>, or <a href="https://en.wikipedia.org/wiki/ZigBee" target="_blank">ZigBee</a>. These soil moisture sensing <a href="https://en.wikipedia.org/wiki/Node_(networking)" target="_blank">nodes</a> could also be used to provide a <a href="https://en.wikipedia.org/wiki/Local_positioning_system" target="_blank">local positioning system</a>, as described above.
</p><p id="proximity">
But what if you have children who leave their toys strewn about. Those toys are going to get wet; there's no helping that at this level of sophistication, but we'd like to be able to detect their presence to avoid running into them, and, if possible, to avoid wrapping the water hose around them. Several fixed <a href="https://www.sparkfun.com/search/results?term=ultrasonic" target="_blank">ultrasonic range finders</a>, or a single one on a motorized mount that sweeps from side to side, can provide good information about such obstacles, if they can be made to operate while sealed to protect them from water. Whiskers connected to <a href="https://en.wikipedia.org/wiki/Miniature_snap-action_switch" target="_blank">microswitches</a> may be a more practical solution.
</p><p id="other">
There are many more <a href="https://en.wikipedia.org/wiki/List_of_sensors" target="_blank">types of sensors</a> available, but all have one thing in common, they convert some bit of information about the physical world into an electrical signal that then becomes digital grist for the mill of some processor and the code running on it, providing a basis for choosing what, if anything, to do next.
</p><p id="afterword">
Taken in order, the next installment would be about that processing, but I've already gone into some detail about processing hardware and software, and have mentioned <a href="http://www.ros.org" target="_blank">ROS</a> in passing, so it would make more sense for me to skip on to the the subject of <a href="https://en.wikipedia.org/wiki/Actuator" target="_blank">actuators</a>. However, because the topic of actuators and <a href="https://en.wikipedia.org/wiki/Robot_end_effector" target="_blank">end effectors</a> to perform detailed manipulations of living plants and their environments is nearly as unexplored for roboticists as it is for gardeners and farmers, I think it is time to bring this series to a close and begin a new one which attempts to bring these two audiences together, probably including explanations for new terms in brief glossaries at the bottom of the installments in which they are introduced, linking to these and to supplementary material from the text.
</p>
<h4>Previous installments</h4><ul>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html" target="_blank">Robotics for Gardeners and Farmers, Part 1</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html" target="_blank">Robotics for Gardeners and Farmers, Part 2</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html" target="_blank">Robotics for Gardeners and Farmers, Part 3</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_26.html" target="_blank">Robotics for Gardeners and Farmers, Part 4</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/07/robotics-for-gardeners-and-farmers-part.html" target="_blank">Robotics for Gardeners and Farmers, Part 5</a></li>
</ul>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-35043505859434550642016-07-14T09:08:00.001-07:002016-07-14T09:12:22.705-07:00TED talk by Emma Marris<p>
<iframe src="https://embed-ssl.ted.com/talks/emma_marris_nature_is_everywhere_we_just_need_to_look_for_it.html" width="400" height="225" frameborder="0" scrolling="no" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
</p><p>
I first learned about <a href="https://www.ted.com/speakers/emma_marris" target="_blank">Emma Marris</a> from another video, posted in conjunction with the publication of her book Rambunctious Garden...
</p><p>
<iframe width="400" height="225" src="https://www.youtube.com/embed/9nwQoxzVKlY?rel=0" frameborder="0" allowfullscreen></iframe>
</p><p>
...which I have <a href="http://cultibotics.blogspot.com/2011/11/emma-marris-rambunctious-garden.html" target="_blank">previously linked to here</a>.
</p><p>
The reason I believe her vision and my own are complementary is that devices using cultivation techniques sufficiently meticulous and noninvasive to enable mechanization of intensive polycultures could also allow some selective wildness (something other than aggressive and/or noxious weeds) back onto land used for production, intermixed with crops grown for harvest.
</p>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-36793485106210766362016-07-12T08:23:00.001-07:002016-07-15T22:05:13.119-07:00FarmBot open-source CNC 'cultibot'<p>
<iframe width="400" height="225" src="https://www.youtube.com/embed/8r0CiLBM1o8?rel=0" frameborder="0" allowfullscreen></iframe>
</p><p>
They call it a ‘farming machine’ and I see no reason it couldn't be scaled up to be that, but at its current scale it's more of a gardening machine, which is fine. The point is that they're using the open source paradigm, with the stated intention of pushing the technology forward. The basic design is, apparently, quite easy to use, but it's also easy to extend in various ways. This is a great project, and I do hope they get the support they need to carry it forward!
</p>
<ul>
<li><a href="https://farmbot.io" target="_blank">FarmBot project website</a></li>
<li><a href="https://www.facebook.com/FarmBot.io" target="_blank">FarmBot on Facebook</a></li>
<li><a href="https://github.com/farmbot" target="_blank">FarmBot on GitHub</a></li>
<li><a href="https://farmbot-genesis.readme.io" target="_blank">FarmBot documentation</a></li>
<li><a href="https://youtu.be/9CJt4MFn22M" target="_blank">Rory Aronson at TEDx UCLA</a></li>
</ul>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-86138367179118574702016-07-09T10:54:00.001-07:002016-07-09T10:54:47.794-07:00Why Is There A Seed Vault In The Arctic Circle? | DNews Plus<p><iframe width="400" height="225" src="https://www.youtube.com/embed/Qh_mPvyHp_s?rel=0" frameborder="0" allowfullscreen></iframe></p><p>Maintaining genetic diversity would be an easier matter if agricultural practice weren't (effectively) working so hard to diminish it. Robotics can bring back the attention to detail needed for diversity-supportive practices to flourish.</p>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-36078496450079116182016-07-03T16:41:00.001-07:002016-07-17T17:17:58.364-07:00Robotics for Gardeners and Farmers, Part 5<p>
This is not meant to be a comprehensive list of resources, far from it, just enough to get you over the hump of having no idea where to start.
</p><p id="vendors">
First, let me quickly mention three sources from which you can get parts and kits, in alphabetical order: <a href="https://www.adafruit.com" target="_blank">Adafruit</a>, <a href="http://www.robotshop.com" target="_blank">RobotShop</a>, and <a href="https://www.sparkfun.com" target="_blank">SparkFun</a>. You should also know about <a href="http://makezine.com" target="_blank">Make:</a> and <a href="http://diydrones.com" target="_blank">DIY Drones</a>.
</p><p id="videos">
With the exception of DIY Drones, in addition to their own websites, these also have active YouTube channels: <a href="https://www.youtube.com/user/adafruit" target="_blank">Adafruit</a>, <a href="https://www.youtube.com/user/RobotShopTV" target="_blank">RobotShop TV</a>, <a href="https://www.youtube.com/user/sparkfun" target="_blank">SparkFun</a>, and <a href="https://www.youtube.com/user/makemagazine" target="_blank">Make:</a>.
</p><p>
Next I'll briefly describe two computing platform families that are very popular and widely available, including from the vendors mentioned above, <a href="https://en.wikipedia.org/wiki/Arduino" target="_blank">Arduino</a> and <a href="https://en.wikipedia.org/wiki/Raspberry_Pi" target="_blank">Raspberry Pi</a>.
</p>
<dl>
<dt id="arduino"><a href="https://en.wikipedia.org/wiki/Arduino" target="_blank">Arduino</a></dt><dd>Arduino had its beginnings in the Master's thesis of a Colombian student in the <a href="https://en.wikipedia.org/wiki/Interaction_Design_Institute_Ivrea" target="_blank">Interaction Design Institute Ivrea</a>. That project consisted of a development platform designed around <a href="http://www.atmel.com/devices/ATMEGA128.aspx" target="_blank">Atmel's ATmega128</a>, which itself is designed around <a href="https://en.wikipedia.org/wiki/Atmel_AVR" target="_blank">Atmel's AVR architecture</a>. That Master's project went on to become the <a href="https://en.wikipedia.org/wiki/Wiring_(development_platform)" target="_blank">Wiring</a> project, which, after being adapted to the less expensive <a href="http://www.atmel.com/devices/ATMEGA8.aspx" target="_blank">ATmega8</a> processor, was <a href="https://en.wikipedia.org/wiki/Fork_(system_call)" target="_blank">forked</a> as <a href="https://www.arduino.cc" target="_blank">the Arduino project</a>. Arduino is probably best classed as a <a href="https://en.wikipedia.org/wiki/Single-board_microcontroller" target="_blank">single-board microcontroller</a>. <a href="http://www.imdb.com/title/tt1869268/" target="_blank">Arduino the Documentary</a> is a short film that tells the story of how Arduino came to be.</dd><br />
<dt id="rpi"><a href="https://en.wikipedia.org/wiki/Raspberry_Pi" target="_blank">Raspberry Pi</a></dt><dd>Similar in concept, the Raspberry Pi, developed by the <a href="https://www.raspberrypi.org/about/" target="_blank">Raspberry Pi Foundation</a>, is designed around processors using the <a href="https://en.wikipedia.org/wiki/ARM_architecture" target="_blank">ARM architecture</a>, also found in most smart phones. Because even the least powerful version of this platform can accommodate a keyboard and monitor, and because their processors are powerful enough to run application software on full-blown operating systems, the Raspberry Pi should be thought of as a <a href="https://en.wikipedia.org/wiki/Single-board_computer" target="_blank">single-board computer</a>.</dd>
</dl>
<p id="ecosystems">
This really only scratches the surface of <a href="https://en.wikipedia.org/wiki/Comparison_of_single-board_computers" target="_blank">what's available</a>, but these two platforms both have vibrant <a href="https://en.wikipedia.org/wiki/Digital_ecosystem" target="_blank">ecosystems</a>, which means an abundance of related resources. For any particular project, there might be another platform which is better fit for purpose, but the smaller the ecosystem surrounding any such alternative the more expertise that is likely to be required to use it.
</p><p>
This has been a very short installment, but we'll come back to the topic of the processing component of the <a href="https://en.wikipedia.org/wiki/Robotic_paradigms" target="_blank">sense-think-act</a> cycle.
</p><p>
Next we enter the beginning of that cycle with a more detailed discussion of sensors, exploring the collection of information about environments composed of soil, plants, and critters.
</p>
<h4>Previous installments</h4><ul>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html" target="_blank">Robotics for Gardeners and Farmers, Part 1</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html" target="_blank">Robotics for Gardeners and Farmers, Part 2</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html" target="_blank">Robotics for Gardeners and Farmers, Part 3</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_26.html" target="_blank">Robotics for Gardeners and Farmers, Part 4</a></li>
</ul>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com0tag:blogger.com,1999:blog-7130000048353359284.post-12435324466543012732016-06-26T11:41:00.001-07:002016-07-17T17:06:59.388-07:00Robotics for Gardeners and Farmers, Part 4<p>
What follows will begin with a whirlwind tour of topics at or near the bottom of the computing stack (the realm of bits and bytes), in the hope of tying up some loose ends at that level, followed by a few steps upwards, towards the sorts of things that technicians and hobbyists deal with directly.
</p>
<dl>
<dt id="storage">Registers, Memory, Address Spaces, & Cache</dt><dd>I previously mentioned <a href="https://en.wikipedia.org/wiki/Hardware_register" target="_blank">registers</a> in the context of processor operation. A register is simply a temporary storage location that is very closely tied to the circuitry that performs logical and numerical <a href="https://en.wikipedia.org/wiki/Instruction_set" target="_blank">operations</a>, so closely that most processors can perform at least some of their operations, fetching one or two values, performing an operation, and storing the result, in one clock cycle (essentially one beat of its tiny, very fast processor heart). <a href="https://en.wikipedia.org/wiki/Computer_memory" target="_blank">Memory</a>, also called <a href="https://en.wikipedia.org/wiki/Random-access_memory" target="_blank">Random Access Memory (RAM)</a>, may be on the order of a billion times more abundant but takes more time to access, typically several clock cycles, although several shorter values (a fraction of the bits that will fit through the channel to memory at once) may be read or written together, and a series of subsequent sequential addresses may only add one cycle each. A processor's <a href="https://en.wikipedia.org/wiki/Address_space" target="_blank">address space</a> may lead to more than just RAM; it is the entire range of values the processor is capable of of placing on that <a href="https://en.wikipedia.org/wiki/Bus_(computing)" target="_blank">channel to memory</a> as an address. Using part of that range for <a href="https://en.wikipedia.org/wiki/Memory-mapped_I/O" target="_blank">communication with other hardware</a> is common practice. <a href="https://en.wikipedia.org/wiki/CPU_cache" target="_blank">Cache</a> is intermediate between registers and RAM, and it's purpose is to speed access to the <a href="https://en.wikipedia.org/wiki/Instruction_set" target="_blank">instructions</a> and <a href="https://en.wikipedia.org/wiki/Data_(computing)" target="_blank">data</a> located in RAM. Access to cache is slower than access to a register, but faster than access to RAM. Sometimes there are <a href="https://en.wikipedia.org/wiki/Memory_hierarchy" target="_blank">two or more levels of cache</a>, with the fastest level being the least abundant and the slowest level the most abundant.</dd><br />
<dt id="adconversion">A/D, D/A, & GPIO</dt><dd>
While it's possible to do abstract mathematics without being concerned with any data not included in or generated by the running program, computers are most useful when they are able to import information from outside themselves and export the results of the computational work they perform, referred to as <a href="https://en.wikipedia.org/wiki/Input/output" target="_blank">input/ouput (I/O, or simply IO)</a>. This subject is particularly relevant to robotics, in which the ability of a machine to interact with its physical environment is fundamental. That environment typically includes elements which vary continuously rather than <a href="https://en.wikipedia.org/wiki/Digital_data" target="_blank">having discrete values</a>. Before they can be used in digital processing, these <a href="https://en.wikipedia.org/wiki/Measurement" target="_blank">measurements</a>, resulting in <a href="https://en.wikipedia.org/wiki/Analog_signal" target="_blank">analog signals</a>, must be converted to <a href="https://en.wikipedia.org/wiki/Digital_signal" target="_blank">digital signals</a> by devices called <a href="https://en.wikipedia.org/wiki/Analog-to-digital_converter" target="_blank">analog-to-digital converters (ADC, A/D)</a>. Similarly, to properly drive hardware requiring analog signals, digital output must be converted to analog form using <a href="https://en.wikipedia.org/wiki/Digital-to-analog_converter" target="_blank">digital-to-analog converters (DAC, D/A)</a>. As with floating-point processors and memory management units, both of these were initially separate devices, but these functions have moved closer and closer to the main processing cores, sometimes now being located on the same <a href="https://en.wikipedia.org/wiki/Integrated_circuit" target="_blank">integrated circuits</a> (chips), although it is still common to have separate chips which handle A/D and D/A conversion for multiple channels. Such chips have made flexible <a href="https://en.wikipedia.org/wiki/General-purpose_input/output" target="_blank">general-purpose input/output (GPIO)</a> commonplace on the <a href="https://en.wikipedia.org/wiki/Single-board_microcontroller" target="_blank">single-board microcontrollers</a> and <a href="https://en.wikipedia.org/wiki/Single-board_computer" target="_blank">single-board computers</a> that have become the bread-and-butter of <a href="https://en.wikipedia.org/wiki/Robotics" target="_blank">robotics</a> hobbyists. GPIO doesn't necessarily include A/D and D/A functionality, but it often does, so pay attention to the details when considering a purchase. As is always the case with electronic devices, voltage and power compatibility is vital, so additional circuitry may be required in connecting I/O pins to your hardware. Best to start with kits or detailed plans crafted by experienced designers.</dd>
</dl>
<p>Now let's delve into software.</p>
<dl>
<dt id="assembler">Assembler</dt><dd>I've also already mentioned <a href="https://en.wikipedia.org/wiki/Machine_code" target="_blank">machine code</a> in the context of the various uses of strings of bits. The <a href="https://en.wikipedia.org/wiki/History_of_computing_hardware" target="_blank">earliest digital computers</a> (there actually is <a href="https://en.wikipedia.org/wiki/Analog_computer" target="_blank">another kind</a>) had to be programmed directly in machine code, a tedious and error-prone process. The first major advancement in making programming easier for humans to comprehend and perform was <a href="https://en.wikipedia.org/wiki/Assembly_language" target="_blank">assembly language</a>, which came in a different dialect for each <a href="https://en.wikipedia.org/wiki/Computer_architecture" target="_blank">type of computer</a> and <a href="https://en.wikipedia.org/wiki/Instruction_set" target="_blank">instruction set</a>. The beauty of assembly language was that, with practice, it was readable, and programs written in it were automatically translated into machine code by programs called assemblers. Abstractions which were later codified into the syntax of higher level <a href="https://en.wikipedia.org/wiki/Programming_language" target="_blank">computer languages</a>, such as <a href="https://en.wikipedia.org/wiki/Subroutine" target="_blank">subroutines</a> and <a href="https://en.wikipedia.org/wiki/Data_structure" target="_blank">data structures</a>, existed in assembly only as <a href="https://en.wikipedia.org/wiki/Programming_idiom" target="_blank">idioms</a> (programming practices), which constrained what it could reasonably be used to create. Nevertheless, many of the ideas of computer science first took form in assembly code.</dd><br />
<dt id="higherlevel">Higher Level Languages</dt><dd><a href="https://en.wikipedia.org/wiki/History_of_programming_languages" target="_blank">Once assembly code became available</a>, one of the uses to which it was put was the creation of programs, called <a href="https://en.wikipedia.org/wiki/Compiler" target="_blank">compilers</a>, capable of translating code less closely tied to the details of computer processor operation into assembly code, from which it could be converted to machine code. That higher-level code was written in new languages that were easier for programmers to use, were more independent of particular computer hardware, and which systematized some of the low-level <a href="https://en.wikibooks.org/wiki/Introduction_to_Programming" target="_blank">programming patterns</a> already in use by assembly programmers, by incorporating those patterns into their syntax. Once these early languages became available, <a href="https://en.wikipedia.org/wiki/High-level_programming_language" target="_blank">further progress</a> became even easier, and <a href="https://en.wikipedia.org/wiki/List_of_programming_languages" target="_blank">many new languages</a> followed, implementing <a href="https://en.wikipedia.org/wiki/Software_engineering" target="_blank">many new ideas</a>. Then, in the 1970s, came <a href="https://en.wikipedia.org/wiki/C_(programming_language)" target="_blank">the C language</a>, which was initially joined at the hip to the <a href="https://en.wikipedia.org/wiki/Unix" target="_blank">Unix operating system</a>, a version of which, called <a href="https://en.wikipedia.org/wiki/Berkeley_Software_Distribution" target="_blank">BSD</a>, quickly became popular, particularly in academia, driven in no small part by its use on <a href="https://en.wikipedia.org/wiki/Minicomputer" target="_blank">minicomputers</a> sold by <a href="https://en.wikipedia.org/wiki/Digital_Equipment_Corporation" target="_blank">DEC</a> and <a href="https://en.wikipedia.org/wiki/Sun_Microsystems" target="_blank">Sun Microsystems</a>. In a sense, C was a step backwards, back towards the hardware, but it was still much easier to use than assembler, and well written C code translated to very efficient machine code, making good use of the limited hardware of the time. Moreover, the combination of C and Unix proved formidable, with each leveraging the other. It would be hard to overestimate the impact C has had on computing, between having been <a href="https://en.wikipedia.org/wiki/Porting" target="_blank">ported to</a> just about every computing platform in existence, various versions aimed at <a href="http://www.robotc.net" target="_blank">specific applications</a>, superset and derivative languages (<a href="https://en.wikipedia.org/wiki/Objective-C" target="_blank">Objective-C</a> and <a href="https://en.wikipedia.org/wiki/C%2B%2B" target="_blank">C++</a>), and languages with <a href="https://en.wikipedia.org/wiki/List_of_C-family_programming_languages" target="_blank">C-inspired syntax</a>. Even now, compilers and <a href="https://en.wikipedia.org/wiki/Interpreter_(computing)" target="_blank">interpreters</a> for newer languages are very likely to be written in C or C++ themselves. C's biggest downside is that it makes writing buggy code all too easy, and finding those bugs can be like looking for a needle in a haystack, so following <a href="https://en.wikipedia.org/wiki/Software_quality" target="_blank">good programming practice</a> is all the more important when using it.</dd><br />
<dt id="oses">Operating Systems</dt><dd>
A <a href="https://en.wikipedia.org/wiki/Operating_system" target="_blank">computer operating system</a> is <a href="https://en.wikipedia.org/wiki/Code_(disambiguation)" target="_blank">code</a> that runs directly on the hardware, handling the most tedious and ubiquitous aspects of computing and providing a less complicated environment and <a href="https://en.wikipedia.org/wiki/Daemon_(computing)" target="_blank">basic services</a> to <a href="https://en.wikipedia.org/wiki/Application_software" target="_blank">application software</a>. The environment created by an operating system is potentially <a href="https://en.wikipedia.org/wiki/Cross-platform" target="_blank">independent of particular hardware</a>. In the most minimal example, the operating system may exist as one or more <a href="https://en.wikipedia.org/wiki/Source_code" target="_blank">source code</a> files, which are <a href="https://en.wikipedia.org/wiki/Include_directive" target="_blank">included</a> with application source code at <a href="https://en.wikipedia.org/wiki/Compile_time" target="_blank">compile time</a> or precompiled code which is <a href="https://en.wikipedia.org/wiki/Linkage_(software)" target="_blank">linked</a> with the application code after it has been compiled, then <a href="https://en.wikipedia.org/wiki/Loader_(computing)" target="_blank">loaded</a> onto the device by <a href="https://en.wikipedia.org/wiki/Firmware" target="_blank">firmware</a>. <a href="https://en.wikipedia.org/wiki/Controller_(computing)" target="_blank">Not every device</a> has or needs an operating system, but those that run application software typically do, and typically their operating systems are always running, from some early stage of <a href="https://en.wikipedia.org/wiki/Booting" target="_blank">boot-up</a> until the machine is shut down or disconnected from power. There are also systems that run multiple <a href="https://en.wikipedia.org/wiki/Instance_(computer_science)" target="_blank">instances</a> of one or more operating systems on multiple <a href="https://en.wikipedia.org/wiki/Virtualization" target="_blank">virtual</a> hardware environments, but these are really beyond the scope of what I'll be addressing here.</dd>
</dl>
<p>Next up, actual hardware you can buy and tinker with.</p>
<h4>Previous installments</h4><ul>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html" target="_blank">Robotics for Gardeners and Farmers, Part 1</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html" target="_blank">Robotics for Gardeners and Farmers, Part 2</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part_12.html" target="_blank">Robotics for Gardeners and Farmers, Part 3</a></li>
</ul>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com1tag:blogger.com,1999:blog-7130000048353359284.post-36898230769348510212016-06-12T14:10:00.001-07:002016-07-17T16:56:37.111-07:00Robotics for Gardeners and Farmers, Part 3<p>
From this point on I'm going to assume that anyone who's still with me isn't intimidated by technical terms and discussions, and I'll stop apologizing for including them. If I fail to explain any new term so you can understand how I'm using it, please say so in a comment.
</p><p>
Before diving back down to the level of fundamentals, there's a bit more to say about serial communications.
</p>
<dl><dt id="serialpp">Serial Ports & Communication Protocols</dt><dd><a href="https://en.wikipedia.org/wiki/Serial_port" target="_blank">Serial ports</a>, on a <a href="https://en.wikipedia.org/wiki/Microcontroller" target="_blank">microcontroller</a> or <a href="https://en.wikipedia.org/wiki/Single-board_computer" target="_blank">single board computer</a>, are made up of a set of pins or solder pads that work together to handle a single, typically bidirectional <a href="https://en.wikipedia.org/wiki/Serial_communication" target="_blank">serial connection</a> with some other device (see also <a href="https://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter" target="_blank">UART</a>). Serial ports on enclosed devices like laptop or desktop computers are standardized connectors with standardized signals on particular pins or contacts. Examples include <a href="https://en.wikipedia.org/wiki/RS-232" target="_blank">RS-232</a> and <a href="https://en.wikipedia.org/wiki/USB" target="_blank">USB</a> ports. While such ports have their own protocols, <a href="https://en.wikipedia.org/wiki/Communications_protocol" target="_blank">communication protocols</a> also include layers that ride on top of those of physical connections. One example of such a protocol that I expect to become increasingly important in the future is <a href="https://en.wikipedia.org/wiki/RapidIO" target="_blank">RapidIO</a>. An even higher level protocol used by <a href="http://wiki.ros.org" target="_blank">ROS, the Robot Operating System</a> is <a href="http://wiki.ros.org/rosbridge_suite" target="_blank">rosbridge</a>.</dd></dl>
<p>
Okay, now back down to the bottom of the stack for a look at how computers do what they do. This will be more than you need to know to just use a computer, but when you're wiring up sensors or other hardware to or programming a microcontroller or single board computer it could come in handy.
</p>
<dl>
<dt id="binarylogic">Binary Logic</dt><dd>Once again, think simple. At the binary level, logic operations are about taking one or two bits as input and producing a single bit as output. Binary NOT simply changes a 1 to a 0 or a 0 to a 1. Binary AND produces a 1 as output if and only if ("iff") both of two inputs are 1. Binary OR produces 1 as an output if either of its two inputs is 1, or if both are 1. Binary NAND is like running the output of an AND operation through a NOT operation. Likewise, NOR is like running the output of an OR through a NOT. XOR, also called Exclusive OR, produces a 1 as output if either of two inputs is 1, but not if both are 1 or if both are 0. Implementations of these binary logic operations in circuitry are referred to as "gates" — AND gate, OR gate, and so forth. When processing cores perform binary logic operations, they typically do so on entire strings of bits at the same time.</dd><br />
<dt id="bitshift">Bit Shift</dt><dd><a href="https://en.wikipedia.org/wiki/Bitwise_operation" target="_blank">Moving all of the bits</a> in a string of bits one position to the left, inserting a 0 at the right end, is equivalent to multiplying by 2, unless there was already a 1 in the left-most (most significant) position, with no place to go, which is called overflow. Moving all of the bits in a string of bits one position to the right, inserting a 0 at the left end, is equivalent to dividing by 2, unless there was already a 1 in the right-most (least significant) position, with no place to go, which is called underflow. Sometimes overflow or underflow are errors, and sometimes they are not, depending on the context in which they occur.</dd><br />
<dt id="integer">Integer</dt><dd>Integer has the same meaning in computing as it does in arithmetic, except that there are <a href="https://en.wikipedia.org/wiki/Integer_(computer_science)" target="_blank">additional constraints</a>. In computers, integers are represented by strings of bits, generally no longer than the number of bits that the processing core(s) can handle in a single operation, usually either 32 or 64 these days. These binary representations of integers come in two basic types, signed or unsigned. A 32-bit unsigned integer can represent any whole value between 0 and 4,294,967,295 (inclusive), whereas a 32-bit <a href="https://en.wikipedia.org/wiki/Two%27s_complement" target="_blank">signed integer</a> can represent any whole value between −2,147,483,648 and 2,147,483,647 (inclusive). As with left-shift, integer addition and multiplication can result in overflow, and, as with right-shift, integer subtraction can result in underflow. Integer division is a special case; any remainder is typically discarded, but can be accessed by something called the <a href="https://en.wikipedia.org/wiki/Modulo_operation" target="_blank">modulo operation</a>.</dd><br />
<dt id="floats">Floating Point</dt><dd>As with integers, <a href="https://en.wikipedia.org/wiki/Floating_point" target="_blank">floating point</a> numbers generally come in 32 and 64-bit sizes, with the 64-bit version both having a greater range and being more precise. They have gradually come into more common use as computing hardware capable of performing floating point operations at a reasonable rate became more affordable, eventually being integrated into the <a href="https://en.wikipedia.org/wiki/Central_processing_unit" target="_blank">central processing units (CPUs)</a> found in most computers.</dd><br />
<dt id="machinecode">Machine Code</dt><dd>Another use for strings of bits is as the code that controls the operation of a processing core. In the simplest case, each bit or short subset of a string of bits forming an instruction is actually a control signal, although it's significance may depend on the state of one or more other bits in the string. For example part of the instruction might specify 32-bit unsigned integer addition, while two other parts specify the registers from which to draw the operands and yet another part specifies the register into which to place the result, with the operation finishing by incrementing the program counter (a pointer to the memory location of the next instruction). This approach can be carried to an extreme in what's called a <a href="https://en.wikipedia.org/wiki/Very_long_instruction_word" target="_blank">VLIW</a> (Very Long Instruction Word) architecture. An alternative approach, called <a href="https://en.wikipedia.org/wiki/Microcode" target="_blank">microcode</a> establishes a layer of abstraction between the level of control signals and the code that constitutes a program, and can also allow the same code to run on a range of closely related processor designs with nonidentical control signals. These days most processors found in consumer devices use microcode.</dd><br />
<dt id="cores">Processing Cores</dt><dd>Up until now I've referred to processing cores without having actually defined them. A core is like a knot of circuitry that performs a set of closely related operations. The most basic type of core is an <a href="https://en.wikipedia.org/wiki/Arithmetic_logic_unit" target="_blank">Arithmetic Logic Unit (ALU)</a>. These cores handle binary logic, bit shifting, integer arithmetic, and sometimes also floating point operations, although floating point circuitry was initially found on separate chips and only later included on the same chips as ALUs. Another common type of core is concerned with memory in the processor's primary address space (yet another use of strings of bits). Addresses usually take the form of unsigned integers, but ordinary integer operations don't apply to them.</dd><br />
<dt id="gpgpu">GPU & GPGPU</dt><dd><a href="https://en.wikipedia.org/wiki/Graphics_processing_unit" target="_blank">Graphics Processing Units (GPUs)</a> belong to the more general class called <a href="https://en.wikipedia.org/wiki/Vector_processor" target="_blank">Vector Processors</a>. "Vector" here means the same thing as it does in <a href="https://en.wikipedia.org/wiki/Linear_algebra" target="_blank">linear algebra</a>, although GPUs can be very useful in computing <a href="https://en.wikipedia.org/wiki/Euclidean_vector" target="_blank">geometric vectors</a>. They are at their best when performing the same operation or sequence of operations on a large set of data, and in these sorts of applications they have a huge performance advantage over more conventional processing cores. Robotic applications where you might find a GPU include processing data from a camera or microphone. <a href="https://en.wikipedia.org/wiki/General-purpose_computing_on_graphics_processing_units" target="_blank">General purpose computing on GPUs (GPGPU)</a> is a growing trend.</dd>
</dl>
<p>
There's a bit (informal use) more to be said about processors and such before working our way back up the stack, but it can wait for the next installment.
</p>
<h4>Previous installments</h4><ul>
<li><a href="http://cultibotics.blogspot.com/2016/05/robotics-for-gardeners-and-farmers-part.html" target="_blank">Robotics for Gardeners and Farmers, Part 1</a></li>
<li><a href="http://cultibotics.blogspot.com/2016/06/robotics-for-gardeners-and-farmers-part.html" target="_blank">Robotics for Gardeners and Farmers, Part 2</a></li>
</ul>
John Paynehttp://www.blogger.com/profile/15673225286918013251noreply@blogger.com1