by bouk on 2/10/24, 10:30 AM with 100 comments
by AnarchismIsCool on 2/11/24, 3:55 PM
Real time operating systems. Less fancy than they sound but the devil is in the details. Robots need things to happen at a certain speed and at the right time so we have a type of scheduler (that can be patched into the linux kernel) that sacrifices absolute throughput to try and guarantee tasks start inside a particular window. Funny enough, if you've done game development and recognize that everything needs to happen inside 1/60th of a second or better, you know some of the hard parts here.
Memory mapped addresses. C is scary but ultimately fairly simple. Once you get the hang of doing silly things with pointers and arrays, the next step is dealing with microcontrollers. You probably wonder how they do anything without an operating system though, and the answer is memory mapped IO. They have a fully flat memory space, starting with 0x0 and going up from there. That space usually contains basically everything from your stack, heap, flash storage, and all the peripherals like GPIO, I2C, SPI, serial, and so on. You can literally do things like int* x = 0x12345678; *x = 0x1; to turn on an LED because the device is listening for changes to that address to set the output state.
There's a ton of other stuff, but these are the gateways to understanding the space you're dealing with at a basic level.
by msadowski on 2/11/24, 1:29 PM
* Agile for software-hardware is hard if not impossible. For software it can be reasonable, but it’s really hard to iterate on both hardware and software at the same time. It’s easier if the hardware designed is locked or the process involves waterfall on the hardware side. * I often found that people that come from pure software to robotics don’t have control experience and something that can be easily solved with a PID controller end up being a custom code that ends up being way more complicated than needed.
by bemusedthrow75 on 2/11/24, 1:44 PM
But quite a lot of CS people -- well at least I hope it is not just me -- end up on the web development trajectory despite or because of having less than good enough understanding of e.g. trigonometry, geometry and calculus... all of which start to matter a lot when you are starting to make things; especially things that move and consume electricity.
I am a good programmer but a weak mathematician. I have a 3D printer now, and I'm starting to learn FreeCAD and microcontroller stuff actively rather than just reading about it, and run up against my maths weakness all the time.
I have recently discovered the three books Joan Horvath and Rich Cameron wrote:
https://www.makershed.com/products/make-trigonometry-print
by eschneider on 2/10/24, 11:00 AM
by AYBABTME on 2/11/24, 1:50 PM
So I do physical things in my personal projects and then come to realize that the potential return on investment (time spent vs. expected money) would be peanuts in comparison to pure software. I would love to know of hardware related work that has decent margins. Or at least enough margins to justify paying a good salary to enough engineers to sustain them.
by NordSteve on 2/11/24, 4:43 PM
by kaycebasques on 2/11/24, 8:09 PM
My own shitty first foray into robotics is an RPi that I can talk to [2].
If you didn't see "the coolest robot I've ever built" you gotta watch that... so inspiring [3]
Latent Space has a robotics demo day coming up, pretty curious to see what comes out of that [4]
Some stream-of-conscious thoughts about why I'm drawn to robotics:
* The maker / hacker / homebrew communities that are basically just using robots to express art. Maker Faire, Burning Man, etc.
* The satisfaction of writing code and seeing something physical happen. Last week I was trying to figure out how to get a shitty third party Amazon robot hat [5] to actually do something useful so I was iterating through the GPIOs and I somehow made it actually smoke. I'm weirdly proud of messing up so badly that my hardware actually smoked!
* The joy of demystifying hardware and learning all the layers of abstraction just within hardware
[2] https://www.biodigitaljazz.net/blog/STTTGTS.html
[3] https://news.ycombinator.com/item?id=38162881
[4] https://lu.ma/latent-space-final-frontiers
[5] A Xmas present from my sweet wife, really touching that she's encouraging me to actually pursue my interest in robotics
by mdorazio on 2/11/24, 1:53 PM
by chris_st on 2/11/24, 12:47 PM
That may be the most number of times I've typed "etc." in a paragraph.
by ih on 2/11/24, 9:18 PM
by manuel_w on 2/11/24, 1:01 PM
https://www.allesblinkt.com/projects/round-about-four-dimens...
Hope this is not considered too off-topic here.
by andrew_eu on 2/11/24, 2:37 PM
The article suggests playing around with a Raspberry Pi Pico, but this is a bit bare bones. Are there any kits, or entry level programmable drones on the market with a reasonable toolchain to program sequences?
by tonmoy on 2/11/24, 1:53 PM
by choonway on 2/11/24, 3:27 PM
https://www.coppeliarobotics.com/
But take your pick there are many to choose from.
https://www.sciencedirect.com/science/article/abs/pii/S15691...
by blah-yeah on 2/12/24, 5:13 PM
I think it was an issue from 2022 or 2023 (not enough energy currently to track down the issue in their catalog)
Here's an article on their site about the topic:
by tamimio on 2/11/24, 8:34 PM
by tester756 on 2/11/24, 2:58 PM
A lot of SEs leave industries like semiconductors for web dev jobs that pay waay better
by Animats on 2/11/24, 9:57 PM
The components are much better. Batteries are better. Motors are better. Radio communications work. Cameras are cheap. Short-range LIDAR is affordable. Navigation systems work. Robotics work used to require using a lot of time building custom solutions for those problems. Now you can just order components.
Here's an idea I'd like to see revisited. Back in the 1980s, someone built a pair of small forklifts that operated as a team. These were little things, about half a meter cubed, with maybe 50cm of lift. Individually, they couldn't do much. But a pair working together could pick up and move a couch, with one robot lifting each end. In the 1980s, the researchers had trouble coordinating two mobile robots. Communications alone were a big problem. Not today.
There are many material handling tasks where one small robot isn't enough, and a big machine the size of a forklift is too bulky. But teams of small robots might work.
I still have a small robot arm on my desk, but it's not connected to anything.
by moffkalast on 2/11/24, 2:03 PM
Meh, maybe in a decade. ROS has no official support for it either. Robotics is still very much a C++ town and will probably remain as such for a long while as long as people remain stubbornly set in their ways. If you apply as a Rust only dev to a robotics company nobody will take you seriously.
by hcks on 2/11/24, 2:54 PM
by richrichie on 2/11/24, 1:58 PM
Yes it can and we can.
Software has been a critical component of much progress we have made over the last few decades.
I understand the difficulty with the abstract many people have. Some may think Hilbert spaces are not real. For many they are as real as any space around them. Some live in them !