Live data from Hacker News

Getting into robotics as a software engineer

bou.ke

51–60 of 105 posts

Re: Getting into robotics as a software engineer

#51
post #12

Earlier quoted context omitted.

Some trig and geometry is definitely useful—but it's quite limited to be honest. For most things you can use existing algebra libraries and for most things someone else has figured it out before!

It’s just used to gatekeep still. It justifies why they should hire the new grad masters student with a similar background over someone who has actually written the code before.

I guess this may be true. But my lack of knowledge of these things is on a different plane to the "knows well-enough" vs "expert in" distinction that might be useful for gatekeeping.

My grasp of trig has relapsed to 13-year-old level. It's an embarrassment!

Re: Getting into robotics as a software engineer

#52
The best way to get into it without investing money in all that hardware is to play with a simulator. My preference is CoppeliaSim - due to it's user friendliness.

https://www.coppeliarobotics.com/

But take your pick there are many to choose from.

https://www.sciencedirect.com/science/article/abs/pii/S15691...

Re: Getting into robotics as a software engineer

#53

Earlier quoted context omitted.

What kind of robotics? It's a pretty wide field.

Mobile robotics, slam/localization and robotics backend.

Ah neat, then I do have an actual question for you. If you're using ROS 2, which version and middleware? And does it work reliably in your application?

I feel like lots of companies have ditched ROS 1 only because of support being cut and cargo culting about how ROS 2 is better for unclear reasons, but in practice it feels anything but production ready to me. Everyone talks big how Zenoh will solve everything, but the thing is a damn prototype and really goes against the whole idea that having a DDS will be somehow better instead of just adding absurd overhead in both CPU and networking.

Re: Getting into robotics as a software engineer

#54

What would be a good starting platform for a programmable drone? 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?

A Raspberry Pi Pico has a large multiple of the kind of compute that cruise missiles have so should be more than plenty for a programmable drone.

While true, it also doesn't include any of the hardware needed to move around. I'm sure it would be possible to build a drone that includes it as the microcontroller, but that creates a substantial barrier to actually getting something off the ground.

I have looked at the Ryze Tello [0] before, and it seems like a decent entry-level device, but I'm not sure whether it's actually a huge pain to develop for. I'd like something to be extendable _like_ a Pico, for instance if I want to install additional sensors, but all of these platforms are quite foreign to me.

[0] https://www.ryzerobotics.com/tello

Re: Getting into robotics as a software engineer

#55

“ An app is not going to house people, feed them or put them on Mars. We can’t solve climate change with smarter software” 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…

Ad-tech isn't feeding the poor or curing cancer, it's just giving everyone depression.

Re: Getting into robotics as a software engineer

#56
Some concepts that you'll need to get familiar with:

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.

Re: Getting into robotics as a software engineer

#57

Earlier quoted context omitted.

A Raspberry Pi Pico has a large multiple of the kind of compute that cruise missiles have so should be more than plenty for a programmable drone.

While true, it also doesn't include any of the hardware needed to move around. I'm sure it would be possible to build a drone that includes it as the microcontroller, but that creates a substantial barrier to actually getting something off the ground. I have looked at the Ryze Tello [0] before, and it seems like a decent entry-level device, but I'm not sure whether it's actually a huge pain to develop for. I'd like s…

With the price of these you could stick a few in there (there would be a weight penalty, they are not exactly zero grams though for their weight the amount of compute is impressive but you then would also need more power).

Depending on what kind of drone you want to build (powered fixed wing, glider, quad, hex or octocopter) that might be more or less of an issue. Given the power draw and weight of an octocopter I don't think it would be much of an issue there but on a quadcopter, especially a very small one that might be prohibitive. But I'd focus on getting it to work before optimizing for size and weight.

Re: Getting into robotics as a software engineer

#59

If you have a team nearby, go work with a FIRST Robotics Competition team as a mentor/volunteer. Great community, you'll learn a lot, and make great connections if you want to get into this area as a career.

Really wish this existed in the Netherlands when I was growing up!

Re: Getting into robotics as a software engineer

#60

Earlier quoted context omitted.

Robotics is very niche and the market is dominated by early stage startups (since most of them go out of business a few years in), so salaries are average unless you are working specific jobs for FAANG. Job hoping usually means moving elsewhere, since working close to the hardware makes it much easier, which in turn means having a good picture of what is a competitive salary sometimes is not obvious. source: I work i…

how would you recommend a software dev break into the industry over the next 3-5 years? Preferably without going back to university. What sorts of projects are best to focus on initially?

Not the person you asked, but the main qualifications are having a pulse and knowing any of C, C++, and Python. The main obstacle you're going to run into from an educational perspective is that people won't want to hire you for controls-specific roles, but those are a niche within a niche. Interview questions will often involve talking about things like RTOSes, writing a queue in C, handling ISRs, and sending messages on a bus (e.g. CAN/i2c/spi).
Post reply on HN