8 ms·
Getting Started in Robotics
- bkarwoski 6y agoThanks for sharing! I'd agree with your point that getting started in robotics is challenging on your own, and that finding a research group is a great place to start.
- antegamisou 6y agoAlthough the article begins with a photo of a quadruped robot, it focuses mostly on the software - path planning side of robotics. While still a very active research field, BD and any other places doing legs are much more concerned with mechanical - dynamics, actuators, battery, locomotion problems. If you want to do some real work on those, pursuing grad school in Electrical (actuators, battery) / Mechanical Engineering (legs, locomotion) is the best, and for the legged robots industry probably the only way (same goes for biomimetics - robot hands). The related research area encapsulating the above is called passive dynamics and primarily is a control theory-based field.
- networdtwo 6y agoYup, BD is doing amazing things in the hardware space, though obviously still loads of planning & SW involved in their robot. One of their engineers gave a talk at my campus last semester, crazy what they are doing now with pushing the limits on topological optimisation, printing components including metal etc to push weight down and strength up. In the article I focus mostly on the software aspects b/c it's more accessible when getting started if you aren't in grad school (+ what I have most experience with).
- deleted 6y ago[deleted]
- antegamisou 6y agoHi, I didn't know you were the OP of the article. If you're interested in adding a Books section in the future, you may want to include Robotics: Modelling, Planning and Control by Bruno Siciliano, an all-time classic reading in most introductory robotics university courses.
- networdtwo 6y agoThanks for the tip, will check it.
- ssivark 6y agoI’m (only) half joking as I say this... if you’re particularly interested in robotics (be it the mechanical side, or the algorithmic side), try not to get too caught up with “deep RL”. It’s a minefield that generates a LOT of buzz for as yet dubious performance, and IMHO there’s much simpler low-hanging fruit to get started with.
- networdtwo 6y agoDon't get me started on this... graduate student descent [1] is such a big problem in the field... [1] https://twitter.com/hardmaru/status/876303574900264960?s=20 https://twitter.com/hardmaru/status/876303574900264960?s=20
- max_ 6y agoWhat "low-hanging fruit"?
- geomark 6y agoAs the author says "... it’s tough to hack together a demo in a few weeks, get users, and bootstrap / apply to some accelerator like in many software projects". So the financial rewards don't seem to be there in robotics startups. And as a result it seems that engineers in the field aren't paid that well compared to software developers, despite it being highly technical and requiring a rather vast skillset. Will that ever change (the financial part)?
- jcims 6y agoIn 30-40 years when supply chain logistics, manufacturing and distribution are fully automatable it will likely be possible for a small team to quickly convert an idea to a prototype to a product in the hands of the consumer. By then the software/service delivery process is going to be so encumbered by regulatory response to the likely hundreds of thousands if not millions of deaths and hundreds of trillions in economic losses due to bugs and hacks that the playing field will be largely leveled (through convergence more than anything, but still). (That or the first company to ship a reasonable facsimile of Ava from Ex Machina. Go the Tesla route and start off selling them for $5-10M each and work your way down. People will be mortgaging their homes to buy one.)
- timgilbert 6y agoPeople will be mortgaging their homes to buy one As long as they didn't watch the entire movie!
- unishark 6y agoIf you can hack something together easily that can earn a lot of money, others can too. So that value will drop. Once upon a time you could slap together websites with html and make six figures. Now you'd probably be lucky to make 5. Same with phone apps. Also from the perspective of the same person over their career, engineering skills definitely hold their value better than software skills.
- deleted 6y ago[deleted]
- krosaen 6y agoAgree linear algebra is key, but would recommend Gilbert Strang’s books and courses.
- ilaksh 6y agoAnyone know of any resources for advanced computer vision? This seems like a critical starting point. And I don't mean using OpenCV or something to draw boxes around objects. I mean understanding the 3d scene in detail. And ideally even understanding the dynamics of the world. Also, anyone have any experience with HASEL artificial muscles or something similar? Anyone know a reason I shouldn't pursue that over servos?
- jrussino 6y ago> I mean understanding the 3d scene in detail For “classical” (non-ML) computer vision/photogrammetry, you may be interested in this text by Hartley & Zisserman: https://www.cambridge.org/core/books/multiple-view-geometry-in-computer-vision/0B6F289C78B2B23F596CAA76D3D43F7A https://www.cambridge.org/core/books/multiple-view-geometry-...
- WanderPanda 6y agoI never heard of HASEL artificial muscles and just looked them up. Very interesting! But the main downside seems to be the high voltage requirement. Hopefully there are more innovations in the space of robotic actuators. I hate that servos usually are not compliant and rather are controlled by position and not by torque / force. I believe active compliance is not a real replacement for passive compliance in most use cases
- bkarwoski 6y agoI took this graduate course, which I think did a good job covering more advanced / modern CV approaches: https://web.eecs.umich.edu/~ahowens/eecs504/w20/ https://web.eecs.umich.edu/~ahowens/eecs504/w20/ The python notebooks are locked, but the slides & recommended reading materials are freely available.
- ilikerashers 6y agoThere is a startup called slamcore doing this in London. They've some interesting talks with the founder on their site.
- shorts_theory 6y agoThanks for sharing this. As a Masters' student currently studying robotics, I felt pretty overwhelmed with all the sub-fields when coming from a computer science degree in undergrad. I only got a clear understanding of what I was interested in after a year of courses. I think joining a lab and learning as you go is sound advice, but if you really want to do some novel research, you would need a semester or two of courses just to be able to contribute (by which time you would have almost finished your masters). It also seems like a lot of research directions gravitate towards deep RL when classical approaches could work just as well, if not better. Also, unfortunately due to COVID, most of the work I've done with robotics has only been in simulation and I've found myself frustrated by the limitations of the simulator or the work required to simulate a real world scenario. Working with real world data might be slower, but it's a lot more satisfying when it works.
- brewdad 6y agoI'm starting to see some undergraduate programs offering Robotics Engineering degrees. What are your thoughts on pursuing one of those rather than a more traditional engineering discipline (Mechanical, Electrical, CS, etc.)?
- aramachandran7 6y agoI’m currently an undergrad student considering studying robotics eng. at my university. (Olin College of Engineering) It depends on how the university structures their program, but for us it’s extremely open-ended, besides a few basic fundamental courses. They essentially want you to choose a concentration and pursue that concentration in your robotics projects throughout the 4 years. It’s a risky choice for us, as unless you have some cool projects to show at the end you could end up ‘not concentrating in anything’ in particular, as robo is such a general field. But if you know what you want to do the flexibility can be nice.
- brewdad 6y agoThanks for your perspective. My son is looking at Miami(OH)'s new RE program. Theirs is a blend of required ME, EE, and CS classes with students adding an additional 2-3 courses in one of the 3 areas. My biggest concern, as a parent, would be having him be a jack of all trades, master of none at the end of his BsE and having a hard time getting hired or into a Masters program.
- person_of_color 6y agoWhat techniques do SpaceX use to control their reusable rocket, and if they are classical (as opposed to ML), why wasn't it done before?
- mdorazio 6y agoI don't have direct knowledge of how the SpaceX flight control software works, but it's almost certainly classical. A descending rocket is essentially an inverted pendulum [1] with two-axis control via gimbals in the engines, which is a pretty well-studied and solved problem in robotics (just search for "inverted pendulum robot"). Hover-slam timing is probably empirically derived and then computed based on velocity, position, and mass (again classically). High-accuracy rocket positioning systems date back to the cold war (or maybe earlier) and are definitely not ML, either. As for why it wasn't done before, the answer is mostly lack of incentive/competition. There really wasn't any reason for the launch companies to make reusable rockets when the government and commercial customers were willing to pay for non-reusable and no one else in the market showed any interest at all in developing their own. [1] https://en.wikipedia.org/wiki/Inverted_pendulum https://en.wikipedia.org/wiki/Inverted_pendulum
- fuoqi 6y ago>lack of incentive/competition I wouldn't say that. There were many projects with reusable stages, e.g. Space Shuttle boosters were partially reusable and the Energia rocket had a variant in development with first stage boosters landing like airplanes. And there were number of practical problems at the time as well: - Computers were relatively big and heavy. - Rocket development was mostly focused on improving efficiency via higher chamber pressure, meaning that engines worked on the edge of their capabilities, which is not a great fit for reusability. It's one of a good reasons why Falcon 9's Merlin engines have the simplest open-cycle design with a relatively low chamber pressure. - Number of launches was too small to make reusable designs economically viable (i.e. your production line would be idle for too long). Even today this number is not high enough, this is why Musk focuses on projects like Starlink to create an additional "artificial" demand for launches.
- ragebol 6y ago
- deleted 6y ago[deleted]
- dimatura 6y agoSimulation is definitely an important and useful tool. That said, to me the real beauty of robotics is seeing a physical machine that you put together and wrote the code for move around on its own accord. It's definitely harder to get started this way than with simulators, but it's now easier than ever. And you'll learn all sorts of things that never come up in simulated environments. Something like the nvidia jetbot (https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetbot-ai-robot-kit/ https://www.nvidia.com/en-us/autonomous-machines/embedded-sy...) is easy enough to get started without much fuss and thanks to the onboard camera and GPU, can get you pretty far in implementing advanced deep learning-based algorithms. (That said, the default camera isn't that great, which you can consider either part of the fun, or just making your life unnecessarily harder. I would consider adding something like a realsense D435i to get IMU+depth for state estimation).
- deleted 6y ago[deleted]
- koonsolo 6y agoI once worked at a robotics company doing Automated Guided Vehicles. I was stunned that they handled everything with a tiny team. Mechanical design, welding, electricity, electronic design, programming, etc. Crazy. That company started with 2 brothers, and they did everything from top to bottom with only the both of them. It was really inspiring to see how some people can have knowledge and skills (eg welding) in so many fields, and are able to pull it off commercially.
- keyle 6y agoWhat stunned me in 2020 is that it takes 20 people to program a simple web app. Too much money in this industry now, people became hyper-specialized plumbers, with no siloes and yet everyone has their own little island. Very depressing. In the world of the web in the late 90s, 5 guys designed, built and shipped an entire product without any frameworks.
- ChuckNorris89 6y agoThat's because every new hip protein drink and organic chocolate brand that comes on the market wants its own webshop and app for branding, marketing, sales and payment which creates huge demand for web and app devs and the barrier to entry is relatively low, just buy a Macbook and sink a few months into following tutorials and building projects. Not that many people need robotics experts and the industries that do, already buy from established players like Fanuc, Kuka, ABB, Siemens and the barrier of entry is very high, often a MSc being the lowest bar to clear with many workers in that industry having PhDs or postdocs so it's a lot of money and years of your life you have to dedicate before you can even enter and once you do the work may not be as exciting as one would expect, often times just updating simulink or labview models or days of just shoveling through ISO and regulatory specs. I'm not saying there are no self taught robotics devs who earn well and play with cool stuff for a living but that's the exception in this industry, not the norm.
- auxym 6y agoYeah that's mostly on point. I have an MScA in mechanical engineering and my thesis was in robotics. I worked in industry (not robotics) for a few years but my current job is as an RA in academia. I play with the the cool stuff all day, but pay is below industry average (for ME, don't even think about software engineer type pay).
- hvasilev 6y agoI've been trying to understand why robotics doesn't work for quite a while. It seems to me like the next logical field of radical innovation. I understand there are funding issues for startups, the expertise issues, the utility issues of the current robots themselves and the vast number of theoretical issues of the sub-fields themselves. What I don't understand is why not every single hobbyist is not focusing on robotics. It seems to me to be the pinnacle of generalism and technical entertainment. What I'm trying to ask semi-jokingly is: It is winter, where is your miniature, autonomous snow plow that you built yourself from scratch and why aren't you working on one?
- throwaway316943 6y agoIt’s hard and cross disciplinary. A snow plow needs real horse power, a snow blower might be better but still has a whole kettle of problems. Those problems exist in the real world where you can break things that you need to pay for. There’s lots of cool projects that would be fun to do but without a source of free money or parts they aren’t going to get done. Software is easy because all you need to do to get started it type mkdir and open a text editor. The solution for robotics is physical simulation with accurate modeling of real parts and chips. Make it as easy as opening an integrated game engine like Unity, drag and drop parts that you can either download or model yourself. Write some code and run. Print a part list when you’re done.
- TeMPOraL 6y agoAlso, laws and rules you have to follow, and generally other people. I'm pretty sure if I started clearing snow in my neighbourhood with a DIY snowplow, I'd get in trouble with the housing cooperative, as they're already paying someone else to do that (however shitty job they do). Police may eventually get involved too, as I'm pretty sure that operating a car-sized robot on a road is illegal in more than one way. Now if I really cared about doing this, I could probably follow some legal procedures to get my snowplow registered, and I could probably convince the neighbours/co-op to let me play with it. But it would all fare better if I formed a company around it and enter the discussion as a legal entity. At which point I may as well start a real snowplow business - which is way beyond my hobby interests. And this applies to a lot of meatspace innovation - unless you own (and not rent) a home with a large backyard, and confine the scope of your experiments to just your backyard, pretty much all interesting ideas I can come up with require enough red tape that it's not even worth it, unless you're doing it for money.
- pvitz 6y agoI would be very interested in learning resources for the mechanical side of robotics. Would anyone have suggestions?
- contingencies 6y agoRead up on metal fabrication, general manufacturing and assembly processes, and then build a bunch of stuff using a minimum of custom components and a maximum of third party modules with an eye on the true costs including BOM, design iterations, and assembly. MIT2.008 (Fundamentals of Manufacturing) is not bad. Search Library Genesis for manufacturing / mechanical and go for the textbooks/references. If starting from scratch you can get a long way for personal experience with a home-built wood/polymer router, a drill, low end MCUs and scavenged parts. Even if you want to focus on design, you can gain from either outsourcing all your parts fabrication (this will also force you to learn how to communicate designs effectively) or getting a membership of a shared workshop/makerspace and learning the machines and processes yourself, which will help you to do better designs.
- pvitz 6y agoThanks for your great reply! Would you also have suggestions for textbooks on mechanical engineering specifically with a connection to robotics?
- contingencies 6y agoIMHO it's sort of a schizophrenic field. You could start by dissecting the parts lists from factory automation supplier catalogs, but then you'd likely miss custom mechanical component design, be stuck with fat form factors and have no idea about custom control systems. You could go oldschool machinist like timepiece design and repair stuff, but then you'd miss modern mechatronics entirely. You could go kit/hobby projects but then you'd likely miss industrial standard pneumatics, while you'd gain enough electronics insights for custom mechatronic control. Each area's boundaries have their commercial and historical reasons but there's no clear map of the whole landscape that I've seen, and I'm not an authority.
- thekhatribharat 6y ago[Shameless Plug]: On Cloud Robotics: https://medium.com/open-factory/cloud-robotics-a-10-000-foot-view-a51ecbf010ff https://medium.com/open-factory/cloud-robotics-a-10-000-foot...
- manuel_w 6y agoCan anyone give some examples how a "proper" robot control application looks like? I once was working on an DIY delta robot and the software layout is something I never understood how to do right, I fear. I had no idea how to go about it, and if I remember correctly, I wrote the firmware to do the following every 10ms: (I was bare-metal C/C++ on a Cortex-m3.) * Calculate new desired position of effector. * Calculate new desired angle of every stepper motor. * For every stepper motor, calculate deviation between current and desired angle. * Program the timers to generate a PWM signal to make deviation zero. (Note: This whole thing was open loop, so I fed the PWM signal back into a counter to track the motor angles.) Each of these bullet points was implemented as individual function, taking input parameters as function parameters and returning the result as return value. For reference, this is how it looked like: https://youtu.be/9NzlfX5X_W8?t=23 https://youtu.be/9NzlfX5X_W8?t=23 At one point, I was wondering if I shouldn't just call the last function for the final value, and have it call the previous functions (and thereby calculate the input values) on demand. This would look a bit more functional-like, but I didn't see any benefits besides stylistic ones. Is functional programming a thing in embedded robot control software? While building that demonstrator I realized that my attempt at doing so was a very shabby one. It's not enough to have in mind the acceleration/deceleration of the effector for smooth looks. If you would do things right, you would have to watch the torque and motion parameters of each individual joint. You would probably have to calculate the whole motion profile in advance. But I have no idea how I would go about doing that. Do you simply run a loop and iterate over time? What if you realize you violate some constraints at some point? Adjust some initial values by some fixed offset and run anew? I suppose there are smarter attempts. edit: Not a HN heavy user, wow do I make lists right?
- PoachedSausage 6y agoI think the usual way of handling stuff like that in the embedded world is with an RTOS. Something like FreeRTOS or RTEMS (both have ARM Cortex ports). Also, depending on complexity of the system (more actuators) you might have the individual steppers/servo motors etc run by their own microcontroller and being fed commands centrally.
- sothby 6y agoBefore rushing out to buy a CNC and building your own fabrication workshop, there are a number of inexpensive robotic arm kits that can be used to develop/build skills. Also given popular interest in drones, there are a lot of cheap parts that can be used to build your own and add vision systems etc. Interested to hear from others about their best recommendations for inexpensive development of mechanical skills.