Why Is It So Hard to Build Profitable Robot Companies?
spectrum.ieee.org
spectrum.ieee.org
It seems like we'd need something like off-world colonies, a fertility crisis or environmental collapse to really create a need. I think I'm happy with the status quo on this one.
There are a large number of highly profitible robotics companies in this area.
Fanuc with over $1 billion in net income from about $5 billion in revenue stands out[0], but also ABB ($2 billion in net income from $34 billion in revenue)[1], Omron, Kuka, etc.
They not be as interesting to report on as humanoid models, or the consumer market, but it's an enormous, rapidly growing market.
Here's an interesting fact. Most people think of forklifts as being stronger than people, and that we use them to lift stuff that people can't. That's true. But, what most people don't think about is why it can lift stuff like that. Hydraulic multiplication provides the power to actually do the lifting, but, a human shaped robot with the same hydraulics couldn't. Most forklifts weight about 3x the weight of a car and are mostly filled with lead. The same will go for robots. the form factor of improving human strength doesn't really benefit from changing the strength to weight ratio, it benefits from scaling both.
edit: as context, the average forklift is so heavy that when put on a trailer they exceed the tow rating of 1500-class pickup.
It doesn’t matter how strong you are if you don’t have the mass to balance what you’re holding. Mind blown.
I personally think human form factor robots are a dead end but if the Incredible Hulkbot was as readily available as a forklift then then you wouldn't see so many things being palletized in the first place because you'd just have Hulkbot move them. The reason we have so many fork lifts is because we've settled on the pallet as a form factor and forklifts are good at moving pallets.
Yes, to lift 10t, you need the material and support to lift 10t. But a robot the size and weight of a child is much stronger and faster than any human and can easily kill one with the wrong movement. That's why they often are not allowed to work in the same location as humans.
There are currently exoskeletons developed to bring human strength back on par. But the speed race for anything repetitive is lost.
Once we get to a state where a robot can just take a basket of clothes and fold (and sort) them like a human, I think you'll see an explosion of robot applications. However, I think that time is very far off.
As a side note, here's a automatic hamburger restaurant from the 50s. https://m.youtube.com/watch?v=FmXLqImT1wE&t=437s
Two out of three ain't bad, so I think we'll have that need soon enough.
Simpler than that: increase the price of labour such that robots doing menial tasks become profitable. A UBI would achieve this goal without catastrophic change.
That's probably because you're not one of the cheap people.
If so, could they not voluntarily do that now, without robots?
Indeed, that is the only thing here I was questioning. :-)
If they can’t afford to learn a new trade now, how would losing their current jobs to robots help?
Not sure it really makes sense to fix a lack of people with something that's extremely labor intensive (at least up front). Not to mention, getting robots to be cheap requires a really highly advanced society, which requires a lot of people and a lot of time.
That said, it'd be interesting to see at what point or under what conditions a robot's total labor output exceeds it's total labor input (including watching it, debugging, programming, etc)
There are markets where robots have been (profitably) in service for a decade or more, but they are big robots with extremely limited roles: An arm that lifts a door onto a car, a glorified cart that follows a yellow line around a warehouse or hospital or whatever, etc.
The new generation of robots is human scale and has more flexibility built in. They deliver door-to-door/peer-to-peer, instead of along a fixed route. They carry small packages instead of a stack of boxes. They do inspections in places that aren't safe for humans. etc. Plenty of room for smaller, smarter, cheaper, robots.
But, it is definitely a tough/expensive business to build in, and the market probably doesn't have room for at least half of the companies currently running on investor money.
I like the idea of p2p delivery ("robot: take this saw I borrowed back over to my friend Joe"), but I think that's v2.0 of the package delivery bots which are in beta (or maybe alpha) right now, unless I'm missing out on something? Not to mention the legal implications of on-demand bots as drug mules or bomb delivery...
There are many companies doing this kind of thing in various environments. Doing it at the scale of a city, like calling an Uber/Lyft, is probably a few years out, at least. Maybe in major cities taking the place of bike couriers it'll come sooner, I dunno.
"Not to mention the legal implications of on-demand bots as drug mules or bomb delivery..."
UPS and FedEx and the USPS have that problem.
Software is complex. The main tools to create software cheaper are abstraction and reuse.
Can't those be available to new robotics startups ?
Is building a robot from standard components possible ? or using some sort of software based mechanical/robotic design tool, similar to the procedural modelling 3d graphic designers are starting to use ?
Robots have all of the software complexity (more software than most software startups I've been involved in), plus hardware complexity.
Software doesn't have a supply chain to worry about. Software doesn't have to deal with an unknown environmental issue that makes the screen go black, or a vendor that started shipping you a different part while calling it the same part, or a sales pipeline that involves shipping around tens of thousands of dollars worth of hardware and staff to set it up and demo it, etc.
So, a software startup has to solve software problems. A robotics startup has to solve software problems on top of everything else.
"Is building a robot from standard components possible?"
Sure. Most robots in the market are mostly built from standard components with a few custom built bits for personality or to solve specific problems.
"or using some sort of software based mechanical/robotic design tool, similar to the procedural model 3d graphic designers are starting to use?"
Sure, there are tools for designing hardware. Robot companies use those tools.
But, it doesn't make building and shipping out multi-thousand dollar devices as easy/cheap as shipping software.
- Software becomes much harder if you have to interface with hardware. You mess up software, you edit and then recompile/rerun. You mess up hardware, you need to buy a new copy of the hardware. Imagine if every time you wrote a bug or compiled a dependency with a bug, you need to pay $5 to somebody. If somebody else's software caused an error on a piece of critical hardware, your hardware may break too (e.g. car crash). And good hardware costs a ton of money. A Dynamixel servo costs something like $500, for a motor that's maybe 8 inches cubed or less, but if you use a cheap motor from China your precision over time will suck and software-based closed-feedback loops aren't as good as good hardware. So maybe you decide to do simulations, and you write a hardware emulator to load your software on. That costs a lot of money too, and doesn't and never will mimic hardware in all cases.
- Software for robotics is pretty low-level. You may need to write drivers for special hardware you develop, or you may need to rewrite drivers if proprietary drivers don't do the job for some reason. Drivers are if not hard to write, then a long slog to write (I don't write drivers). You need to make sure your software is highly performant, lightweight, and fault-tolerant. Maybe you need a real-time operating system, or you need to fork the Linux kernel and rip out bits and pieces (I heard somewhere SpaceX does this for their avionics, because they didn't want to deal with an RTOS). There is no let-it-crash philosophy. There may be no concurrency abstractions that are performant enough besides threading/locking primitives. There's the added complexity of failover that you plan into your design. You can't live without any of these most likely, because otherwise your customers may not live at all.
- By the time you master all the tools you need to build a successful robotics company, you haven't changed the system, the system has changed you. You accept the truth that good hardware is hard to make, good low-level software is hard to make, and great insurance plans are expensive. You're a Windows guy now because you use SolidWorks to design parts, and you can't be bothered to make a startup to rewrite SolidWorks for Linux because it's hard to get the physics/math background to reproduce even a part of SolidWork's functionality and user experience (which is a lot, CFD/FEA/etc). You deal with manufacturers who are perfectly happy with older tech because it works and because newer stuff always comes with risk. Your customers are enterprise Karens who shatter your roadmaps and don't care about your dreams.
This is a (possibly inaccurate) tasting of why building a hardware company is hard. I have the highest respect for those who do.
"44. mother of three. blonde. owns a volvo. annoying as hell. wears acrylics 24/7. currently at your workplace speaking to your manager."
https://www.urbandictionary.com/define.php?term=karen
I used "enterprise Karen" as a corporate personification of "Karen".
A robot platform can be a complex bit of hardware depending of the use case – it might be mobile, in an open/uncontrolled environment, using complex or expensive sensors, needs to be physically robust etc.
Now, many of those can be built from generic components – off-the-shelf controller boards, sensors etc. – but there's a lot of complexity in getting everything to reliably connect to and talk to everything else. Since there are far fewer robotics projects out there than software projects, there are also fewer of those "abstract components" in the first place – and physical requirements can mean it's harder to use them for particular designs.
Then there's the software layer. Again, depending on the use-case, this can be challenging - it can involve combining lots of sensor data, making decisions, planning motion, and so on. There are established algorithms and some reusable tools that can make this easier, but a lot of the magic is specific to individual projects. User interfaces can also be complex – building a reliable conversational UI is a project in itself, and if you're building a robot which interacts with humans, it needs to do this as well as all the robot stuff.
(FWIW I am working at a robotics startup right now, and every day is quite a challenge!)
Innovation and investment will shift away from companies trying to build a whole robot of their own to innovating on a single component type that fits within one or more of the large vendors supply chains, or plugging into standard units at the hardware and/or software level.
The mainframe market might be a reasonable predictive model to look at (where there were a handful of dominant players, a few software companies around them, and hordes of service contractors who maintained them and helped companies accomplish their goals with the hardware available), at least until general purpose robots get cheap enough to look more like PCs. They're getting pretty close to that already, though, so maybe we'll skip right over the mainframe stage and right into personal robotics. I dunno. Depends how fast prices come down...I don't think the pricing works the same as PCs, as there is no "Moore's law" equivalent for robotics components. The price trends downward, and performance trends upward, but not at a multiplicative rate.
As it stands for now, though, robots doing complicated things are generally working as a team with computation in the cloud, so the PC "buy it and own it" model can't work. Robots, at least the kind that are doing real work, are purchased or leased as a hardware-plus-service bundle (again, kinda like mainframes).
Our goal as engineers should be to found the next dishwasher company, not the next robotics company.
So I have thought about this a lot, and I even started and failed an ambitious robotics company, and I feel like a good niche product that could make a profitable company is self-cleaning litter boxes.
No, it won't be a multi-billion dollar company (at least not just with that product), but there is definitely a market for this and the current products are underwhelming. And technologically, it is about as approachable an unsolved robotics problem as you can find.
Here's the competition.
https://thewirecutter.com/reviews/best-automatic-cat-litter-...
https://www.kickstarter.com/projects/petato/footloose-next-g...
There are a couple of other interesting designs as well that eliminate the cleaning aspect.
https://www.kickstarter.com/projects/freshflip/fresh-flip-th...
I know that one got canceled, but they're going to relaunch. Apparently a backer pointed out a design flaw (my girlfriend backed this project and has already been refunded her pledge but plans to back them again when they relaunch).
https://www.kickstarter.com/projects/boxscoop/boxscoop-20-th...
There are others as well. I have no affiliation with any of the projects/companies.
A truly generic robot is probably several steps away and I think the correct niche for starting to approach that market appliance would be a human-scale (and moving) tele-operated human-shaped robot body. That would be useful for all of the places that humans are expected to navigate and particularly useful for situations involving danger.
You have to look a little higher up the complexity scale, for roles that require low skill but high something else (so humans are hard to find to fill the role). e.g. say you need deliveries in a building, or even at the neighborhood or city-block level. It's repetitive, boring, work that is hard to hire for but can plausibly be done by a robot. It's hard to hire for because it is repetitive, boring, and requires a level of trust and reliability that a low-paying job doesn't really inspire in human workers. Delivery is a huge industry, when you consider all the scales at which delivery takes place (from tube systems and intraoffice mail systems on up to freight on trucks, trains, and boats), which could support dozens of designs of robot, and some of them are probably most usefully shaped like and acting like what we think of when we think "robot".
"Delivery robot" is still pretty special purpose, I guess...you could say it's a dishwasher, but it's a very smart, very expensive, dishwasher. It needs a lot of skills to do the job, and the closer it gets to the human it is delivering to, the more it probably should look like a friendly humanoid(ish) "robot" rather than like a self-driving truck (of varying sizes, based on role). A truck can't navigate elevators and doors, for example.
This makes me think of automobiles - cars were first seen as "a rich man's toy", but Henry Ford worked hard to change that perception. He said cars are for anyone. They can be used to go to work, to visit family, to go sightseeing.
I still don't see basic needs like that being addressed with robotics. For instance, is it going to take out the trash? Clean the toilets? Fix the plumbing?
When Tesla tried to create the world's most automated assembly line for the Model 3, they learned the hard way why Toyota and others have abandoned the idea: complex automated systems are, perhaps necessarily, tightly coupled and complicated. For Tesla, this led to cascading errors and insurmountable "debugging" challenges. Eventually it became evident to Tesla and Musk that, even at first-world prices, human workers were the better buy. [https://www.bloomberg.com/news/articles/2018-04-13/musk-tips...]
When you think about it, the work involved in building software systems may only be economically justifiable right now because computers can perform certain tasks many orders of magnitude more efficiently than humans can. In the physical realm, the differences shrink tremendously (or even reverse), making it far more difficult to compete with human workers.
To your point, in India it is cheaper to have a human being do that work than a machine, much less a robot. It will take a long time for the economics of robots to catch up on really cheap labor in the developing world.
Basic needs are gradually being addressed, but it’s true that you don’t see it. As soon as something robotic works, people forget about it, and this is how it should be.
Quote:
> A machine learning researcher writes me in response to yesterday’s post, saying:
>> I still think GPT-2 is a brute-force statistical pattern matcher which blends up the internet and gives you back a slightly unappetizing slurry of it when asked.
> I resisted the urge to answer “Yeah, well, your mom is a brute-force statistical pattern matcher which blends up the internet and gives you back a slightly unappetizing slurry of it when asked.”
> But I think it would have been true.
The better we get at AI, the more we understand how AI works, and the more we can say, "that's not AI, that's just an algorithm that does <insert explanation of how the algorithm works>". OK, but there has to be some mechanism to how our brains work, right? How do we know we aren't just implementing shitty approximations of that mechanism?
Those are enormously complicated tasks to solve in the general case though, so I don't anticipate anything like that being available for quite some time.
But are these pain points for a sufficient number of people? I can understand robots that could do these tasks would be a godsend for disabled people and the very elderly, but those are small markets. The vast majority of able bodied people just fold their own clothes and do their own laundry. It’s easy and takes minutes. I don’t think I’d even pay $100 for a robot that could fold clothes.
I could probably live with leaving the laundry on the porch and having it returned there. I'll have to look into whether such a service is available in my area.
These startups employ people to do the laundry of their customers. If they get big enough, those startups might invest into automation.
Your dishwasher, washing machine, dryer, etc. is sitting around most of the day being idle, with its utilization being really low. Industrial laundry robots don't need to be mass produced in order to be profitable, they can be hand manufactured. This allows lower capital expenditures and allows for faster iteration. And you could pay some person to watch 5 robots and correct them when they do something wrong, something similar isn't possible outside of the industrial setting. So those services will greatly help with the invention of automatic laundry robots I think.
Newspapers and magazines are ad-funded, too, but few would consider the work of journalists to be wasteful.
Just look at how much money people will pay to avoid the inconvenience of having to physically plug in their phones to charge them, for example: https://www.amazon.com/s?k=QI+Charger
You just ignored that the washing machine itself is a special purpose robot. Same with the dishwasher. Some progress already happened.
Go back a generation or two in the US, or live like the majority of people in the world, and you'd notice that laundry and dishes are very usefully semi-automated today.
It's an automated, feedback controlled, electro-mechanical labour saving home appliance. It doesn't matter if you call it a robot or not: progress has been made.
In comparison, our Roomba is a time saver because it means we don't have to do anything at all to vacuum every day.
The number one blind-spot for robotics projects is ignoring the availability of cheap (and often illegal) immigrant labor in most major locales. Western programmers think of most physical labor as abhorrent but working in a laundry in Western countries is often much better paid and comfortable than the alternatives back home. Plus your children typically have access to much higher education and opportunities.
With respect to labor, I also think robotics needs to consider humans as a variable in the equation, especially if they want to compete on a task that it's easy to substitute. This gets into politics, too, and it's a question worth thinking about. I wonder: as generations change, now that we're going from Baby Boomers to Millennials to Gen Z, how will this impact views and policies?
Given that they're being built with autonomy in mind, wouldn't they qualify as robots owned by regular people?
Note that in RoboCup@Home, the robot have to do a LOT of things well and its easy to be spread too thin over all those capabilities, whereas the Amazon Picking Challenge has a very narrow focus and you can still modify your environment a bit.
[0] https://github.com/RoboCupAtHome/RuleBook [1] https://www.youtube.com/watch?v=vx3QdaPD8bw
Whoever develops a robot (or robots) that can perform those tasks is going to be very rich.
They do their job pretty well. maybe not 100% but close enough.
Same with laundry, roombas, yard work, etc.
So now a robot gets all the simple jobs taken away from him, and is left with relatively little work to do. And this process will continue.
So maybe, in this environment, we'll never see a generic house robot?
So if you want to be a roboticist and make money at it, don't expect to be Dr. Noonien Soong or Dr. Light. You will spend your career building dumb machines to perform mind-numbing tasks for the world's militaries, factories, or fast-food joints. Adding smarts to robots is a moonshot project, as Alphabet learned with Waymo -- you need to be rich or have a rich patron just to get anywhere. That's where things stand now -- maybe in a decade or two, things'll be different.
That said, I worked in robotics on such "dumb machines" for four years, and it was one of the coolest jobs I ever had. So if you can land a job in one of the niche industries where robotics is really useful, don't let my desexifying the industry dissuade you.
The way I see it an automatic blinder that reacts on either a timer or sunlight is in the spectrum of a robots. It's a very simple one, but it does things for me that I would otherwise have to do.
Right now it seems like people are more trying to invest and push Robots in the image of "The Jetsons" which I don't think consumers are even close to being ready for yet, plus the technology and algorithms will always lead to disappointment until we get much much further.
We need to think simpler. The irobot is successful because it doesn't try to be a Jefferson robot despite it's name but rather it solves a specific need.
I give it 15 years my parents will have a robotic vacuum cleaner :)
On top of that, good robot arms are expensive. Startups announce low-cost ones, but many don't hold up in continuous use. Universal Robot from Denmark seems to be doing well, but their arms start around $35,000. Rethink Robotics went bust. Even with more "AI", the smartness is mostly limited to targeting objects that aren't perfectly aligned.
$35,000 is the price of new, reliable car. and cars are much more complex, and suffer more forces trying to wear them out.
So why are robots so expensive ? is it mostly a matter of volume ? or is it something expensive about the tech ?
There are of course even lower cost robot arms, ~$100 toys, $1000 educational platforms etc. They just don't have the precision or power needed for industrial or research applications.
Recently attending multiple industrial automation trade shows in China, I can tell you there has been a renaissance in robot arm production in the last five years. There are now many dozens of manufacturers deploying arms in real world manufacturing scenarios, where uptime matters. I can't speak for the quality, but if it's not there yet, it will be soon! One would assume this should effect some industry-wide price reduction.
This. Autonomous vehicles are the most obvious example of the overselling of robotics with the inevitable extending of the timelines that were promised a few years ago. The more we learn the less likely it seems we'll get AVs anytime soon, although anyone actually working in the area knew this already.
People were selling the idea of AV production systems that can solve hard robotics problems that havn't been solved in research in the most benign conditions. This was all driven by hype and money and it doesn't seem like there was much of a downside to those overpromising. Unless this changes and people are held accountable for their overselling then we'll keep seeing this behavior.
It has a genuine negative impact on anyone trying to do something that is actually possible and useful as their pitch will seem underwhelming compared to all the noise being generated by the people overpromising.
That doesn't mean we shouldn't continue investing in them - they will most certainly become more useful and generate more profit. It just means at the moment, the best we can do commercially are more or less upgraded furbies and security guards who drown themselves.
The industry is up against several Hard Problems, and it may be a long while before any real gains are realized.
There are limitless tasks that humans can perform with ease. There are very few tasks we've discovered that machines do with ease. Those few discoveries have changed the world.
In 2019, we can design and implement solutions for robots to do almost anything. But with very few exceptions these designs fall apart when they perform outside of a controlled environment or even inside of controlled environments when tasks need to be done reliably.
Automobile Factories have gone to a model of humans minding robots doing a specific task. Early Roombas kind of fit into this model. They mostly worked by themselves, but they benefited greatly if you checked in on them to troubleshoot if need be. Broken washing machines and dishwashers are somewhat like this. There was one washing machine I had, where you had to wait until the end of the fill, then hit the top left rear of the machine like you were Fonz on "Happy Days," and it would magically work. Dishwashers work much, much better if people pay attention to how they place dishes, rinse dishes beforehand, and ensure the rotors aren't blocked.
DevOps fits into this model. Even programmers can feel like compiler/build process jockeys. (I often feel this way.)
Part of this issue is that we think we need the robot to do it like a human would; in this example of "taking out the trash", we imagine the robot grabbing the bag of garbage from wherever, going outside, and throwing the garbage away, then returning.
Instead, what if the robot was the garbage bins themselves?
You have an inside robot garbage bin, and an outside one. The inside one would - once full - wheel itself outside and interface with the larger one to dump, then return. The outside one would periodically wheel itself to the curb to be dumped by the (probably someday fully automated - it's already most of the way there) garbage truck.
Essentially, make each robot a slightly smaller "garbage truck" that can be dumped by the larger units.
Of course, that still means the robot needs to be able to navigate a home, open and close doors, etc. If the home had automatic doors, that would make things easier. Then it would become a navigation problem mostly.
It's kind of like something I told a guy at my work who said he wanted to build a robot to bring him a beer. He was wondering about all the complexity, etc.
I told him - why don't you make the robot be the refrigerator, then you'd just summon the fridge to wherever you were, and it would dispense a beer, then return back to the kitchen.
Dish cleaning? What if the cabinets were dishwashers instead? Plumbing would be a nightmare - but in theory it would be possible.
Basically - think of ways to make the problems more tractable for the machine, instead of trying to make the machine act like a human (note the automation in many factories that does jobs humans use to do - they didn't make the machines/robots look like humans to do them, right? In many cases, the tasks and such were even changed for the sake of the machine handling/assembly - such home tasks could be looked at in the same manner, to an extent).
I still think home robots could be amazing, they could interface with you easily by voice and control everything connected to your network, act as GPS when they follow you to your car, go buy groceries for you.
But I'm well aware that, if a robot like that is made, the implications on privacy would be terrible (if privacy still exists by then)
The problem is that we imagine smart home robots as something that can do what humans does.
My brain is aching trying to parse that. Mind restating?
I give it 5 years maximum before Amazon releases an "Alexa" robot that is initially just the same Alexa we all know, just mobile (flying or rolling, or both) with a small arm and able to do a few rudimentary tasks. There is no real loss of privacy to be expected over current Alexa anymore.
"Alexa, get me a beer!" Actually, a device or a couple of combined devices which could enable that gracefully might sell pretty well. (Some kind of fridge which can dispense canned beverages as the 2nd device? This could be adapted from vending machines.)
Like stubborn, sedentary spouses?
Back when I was running the Homebrew Robotics Club the question of "what is a robot" came up several times. Typically the definition is a machine that can perform some task while responding to changes in its environment that might otherwise prevent the task from being completed. The essence being sensing, executing an action to achieve a result, and identifying/signalling completion of the action. By this definition your dishwasher is a robot, it senses water temperature, dish placement, and sometimes even the amount of soiling on the dishes. It may adjust its cycle to insure the dishes are clean.
But most people mean mobile, anthropomorphic devices that interact with people when they think "robot." And making a business in that space is very hard indeed.
In part because we don't really have a way to "value" what the robot is doing. When you replace a union auto worker with a robot, you can directly compare the what you would have paid the worker in salary/benefits/training with what it costs to operate the robot. The math is "easy". But when you have a robot that is more "companionable" than not having a robot? How do you value that? And if you have tasks like "fetch me a beer from the fridge" that the robot can do, how do you evaluate the value of that versus doing it yourself?
Most people say "I'd love a robot that would pick up laundry off the floor and put it into the basket next to the washing machine." But if you say, "Here you go, for only $20,000 (ask about our payment plan), our picker-upper 1000 will collect dirty laundry and put it in the basket." people always blanch and say, "Heck for that much money I'll do it myself."
The real issue is that we expect minimum wage workers to operate independently on minimal instructions, and as every programmer knows, explaining what you want done to a computer is much harder than telling a competent adult.
Machine Learning used for power tool kickback detection: https://www.youtube.com/watch?v=OdW7vhYYSdM
EDIT: This is a bit risque, but I'm seriously asking: Has anyone applied Deep Learning to sex toys? The timing and processing of feedback involved seem like a good target for current tech.
[1] https://www.scribd.com/document/341529556/We-Vibe-Settlement
However, specific people producing online media very much are. Many of these media people are effectively social media influencers, so marketing to them, specifically, might be a viable strategy providing access to a larger market. This is a population for whom making silicone impressions of their intimate body parts is just business as usual for producing merch. Products incorporating deep learning data based on their "performances" wouldn't be so big a step.
Possibly.
o_O
The constant changing of requirements was a challenge but that is normal for any engineering project. I think the ultimate problem was the lack of understanding of the "Iron Triangle[1]" in project management. The company wanted it Fast Fast Fast Cheap and Good (in that order) but my team was trying to make it Good Cheap Fast (in that order). So, I think if we did it all over again we would have reprioritized from the beginning and dropped all the complicated design decisions we made, and work on those in version 2 just like any good MVP[2]!!
I think the key for a successful hardware project is strong technical leadership who understands the pitfalls and timelines of designing the mechanical, electrical, and software as well as can evaluate when and where to build vs buy across the project lifetime. With robotics in particular it is also important to understand how we can limit the environment to make things easier for the robot to operate, with things like magnetic or painted stripes on a floor, ultrawideband beacons, things like that. Making an autonomous system robust is difficult enough in a controlled environment!
[1] https://en.wikipedia.org/wiki/Project_management_triangle
[2] Some examples of things we could have completely dropped to save development time: Bluetooth and phone app, designing low cost custom motor drives, use standard materials instead of injection molded parts
2. Robots arn't good enough yet despite any hype you've heard.
3. In cases where a the product works better than the alternative and people are willing to pay a sustainable price the company does well ... just like every product ever.
I've been working with a robotics startup for the past few months, and I'm often struck by how much extra stuff has to come together to deliver the product (in our case, we have to integrate with phone and elevator systems, have to deal with various regulatory compliance in every country we ship to, etc.). The sales pipeline is also long and expensive, involving shipping out multi-thousand dollar devices for evaluations, sending people out to demo the devices, etc. It's a production involving a half dozen people and thousands of dollars worth of resources to make every single sale.
So, yes, I think they are harder than some kinds of businesses. At least an order of magnitude harder than software. Though, because of it, the competitive landscape is somewhat smaller...robots are cool, so a lot of people want to work on them, so there's more than the market will support, but it's less pronounced than, say, the mobile app market in terms of competition for customers.
In general, I think the hardware business is hard for all the reasons you mention. Or better stated, the hardware business has characteristics that make it difficult to get right the first time (more important in hardware than software, I’d argue) and scale. It’s not inconceivable for a single (or a small team) to build a useful software product that makes money (several successful mobile apps, companies like 37signals, etc.). It’s difficult for me to think of similar hardware analogs (I’d love examples!). This isn’t to say that scaling software—building companies like Google–isn’t incredibly hard. It is. But for a hardware company to even have a chance, it needs a minimum scale threshold from the very get-go (besides all the other things that any business needs – a useful product, luck, etc.).
I used to work for a large aerospace company in the early/mid 2000s, and the products we built were useful, and amazing (hunks of metal weighing tens or even hundreds of thousands of pounds flying in the air transporting people). I was absolutely awestruck by the fact that upcoming companies like Google and Facebook (which were “just websites” in my then-naive worldview) had fewer people, and made way more money than us.
Think about Vacuum robots on the other hand. It's still a small niche, but there's a lot of potential. I'd like to see some improvements in that direction, like if they were smarter, with better robotics & movement capabilities, they could be self-sustainable (charge themselves and empty their garbage bag etc.). Could do more tasks, remove dust, or check on things, turn off lights when you are gone... you can come up with some many things here.
I'm sure more robots will appear and some will be successful and called something else. (I'm a lot adopter of the vacuum, but there are others in developement)
Industrial robots and Roombas may fit this definition, because they are controlled by fairly sophisticated software that synthesizes inputs from arrays of sensors to perform complex physical tasks. But less advanced machines like dishwashers and garage-door openers don't really reach that level.
Garage door openers do take input from an optical "obstruction" sensor, but the response is binary: don't close the door. In contrast, robotic vacuums translate distance sensor readings into a motion plan to cover every square foot of your room while avoiding obstacles.
If you showed a modern dish washer to Karel Kapek I bet he would have called it a robot.
I think robot implies complicated actions that are reprogramable to perform a wider array of functions.
"Move fast and break things" doesn't work when you have to retool your production line or throw away inventory, or call a supplier to request changes.
Conversely, hardware development processes tend to be too rigid and slow when applied to software.
It is very, very hard to get these working together even (and particularly) when they are two distinct groups in a company.
I have had to deal with 'firmware' updates on a VM. You know, the full "build and download a binary" thing from some website, upload to FTP, then login to a website and point to that FTP server, so the binary would be applied and the instance restarted.
No big deal, right? We do that sort of thing for OS upgrades, right? Except it wasn't an OS upgrade or actual firmware, it was updating the application running on that machine. The sort of thing that could be accomplished by an automated CD job, and a docker pull (or heck, apt-get update). All because the thing was an appliance. So it was lifted and shifted as-is and now "it's a cloud app, because it's on AWS!".
I have had to argue against authentication for a HTTP health check. "But if there is no authentication, people can spam the endpoint, and it's slow and returns a lot of data". Ok, first thing: it's not a public accessible endpoint. Second, I'm not interested in testing auth or taking the machine down when credentials expired. And third, if it is slow, then just return a HTTP 200 for me if it is ok, I don't care about anything else. "But if I just return 200, it doesn't mean the app is actually working". Ok, so go do the checks at whatever interval you want, and return the last run. "But this needs authentication, otherwise there could be a DOS, as the checks are slow." No you don't understand, they are supposed to be async... This went on and on for months. I finally got the health check.
... but then, now they want to log all packets to our centralized logging, so that they can count them. Dude, expose a metrics endpoint, Prometheus will call it periodically. "But there are too many messages, we can't hold all of these!" No, you give me a counter. Return the counter. "But counting messages is even slower". No... you increment the counter _as you receive them, not when I request_.
sigh
So anyway. Even when hardware is amazing, software development can lag behind. Or vice-versa.
They have a lot more pieces of complete robot problem.
You know those nice multi-tens-of-thousands-of-dollars Japanese robotic arms? We ditched them because it was just as simple to build our own robotic arms with basic framing and motors.
At a literal tenth of the price ($70K for our Kawasaki armature, $7K for our hand-built array of framing and motors with vacuum lines for picking up and placing solar cells.)
Our in-house robot runs faster as well.
If you're interested in AI+robotics jobs check out https://nomagic.ai/ - we're hiring! Super exciting work with xooglers, academics and oxbridge/ETH grads.