@@undeadpresident I feel like that would be really painful. There are a lot of libraries that are leveraged that are already optimized in C++, object oriented code allows for much more complex and organized architectures, and large code bases get complex. I would not want to attempt it. Best of luck!
Pretty complete indeed. What I'm missing is maybe 'behavior Engineer ', someone who makes sure the robot does the things it's supposed to, handles fallback behaviors in case something fails. This person builds big state machines or behavior trees etc.
@@LoyvanBeek interesting, thanks for the note! I'm curious what behaviors you're meaning that wouldn't be handled by path planning, manipulation, or human computer interaction? Or are you meaning behaviors at a higher level that handle all of them?
@@karissastisser exactly that. Stuff like: get an order from the ordering system, navigate to the pickup point, see where the item to get is exactly, try to make a manipulation plan, grab the item, nav to the drop point, plan for the arm again etc (ech of those steps can fail in various ways). Has been a significant part of my last job, where o made some libraries if bits of behavior that could be composed together to make high level stuff. This stuff gets even harder when human interaction is involved.
@@LoyvanBeek that makes sense. Robots I've worked on have had each "purpose" like path planning or localization or tracking be completely separate nodes, triggered by a message potentially from another node, so the behavior is handled internally, but I could see it making sense to make the architectural choice to have a separate behavior node that handles the high level behaviors, leveraging functionality within each of the other nodes. Thanks for the feedback! I'll add a note in the description.
Would you recommend studying ce over cs for robotics software engineering? This way you understand the hardware, physics, and maths. Also, I saw a video where they use a exoskeleton to manual create "data" doing a certain task. And use that to train the robot, like how chatgpt is trained on data. How could an individual get into a job like that?
It's a good question, I'm biased towards CS as that's what I did and found it really useful. If you do CE, you'll likely be stronger in the areas you mentioned but weaker at some of the CS concepts, and vice versa. For instance, for CS you'll want to be strong at threading, design patterns, debugging, object oriented class architecture, etc. You don't want spaghetti code if you don't spend enough time on CS. I would recommend focusing on which areas either you need to be stronger or the areas you feel like you'll need more help learning. You can always learn the other on the side. Also, certain jobs need you to be stronger like controls or pathplanning needs to be strong in physics, executor and any architecture/algorithm writing needs to be strong in CS. So, pick what suits you best
Really helpful. Thanks for putting this together. Video topic suggestion: Books, Courses or a study plan for building skills in robotics software engineering
My favorite is CAN bus errors from faulty connections, because they usually happen on the field, and cause weird problems that are impossible to replicate in the lab.
Thanks a lot for sharing your expertise. Software robotics' learning curve is steep and job opportunities are quite few. As much as this topic is important, it's always overlooked. As you mentioned, teams are not strictly divided and separated, a team is usually responsible on various related tasks and teams always work together. For example, one company I've worked for has the following teams: - mathematics (solves any problem related to math, mostly sensor fusion) - AI (anything related to a AI - mostly Computer Vision) - Embedded Systems ( programming smaller computation unites mostly sensors) - Embedded Systems ( testing new components, mostly drivers) - HMI (Software Application) You always see people from different teams collaborate on a certain task.
You are such a life saver , i have seen your 19 types of Robotics Software Engineering video , i was curious if as a undergrad in computer science and engineering it will be a good decision to go for masters in robotics ?
It is possible to get into robotics with a Bachelors, though you'd be a stronger candidate with a Masters. I went back for my Masters after ~6 years of professional experience, so I knew exactly what I was hoping to get out of a second degree, and I focused my projects on relevant topics. I would recommend that route to anyone. It's also common companies have a continuing education benefit, so you can work full time, and take one class at a time towards a Masters, and have it paid for, especially at an economical university like Georgia Tech.
You are Awesome! What an admirable, earnest, positive go-getter. I really admire you and your trajectory in life. In robotics, I’m thinking about multi scale abstract object representation, memory, and detection/re-orientation/parameterization within scene. Do you have things to share about best practices in those areas? Also I’m studying George Mou’s obscure but empowering work related to SLAM and spatial search and parallel processing. Maybe all these things will start to come together.
Implementing projects were my best form of learning. Search what you don't know. I have a few products at Slamivait I'm working on to help this, but it'll take some time to complete. Feel free to subscribe to my newsletter on slamivait.com to be notified of new products. This also sounds like a video request for a roadmap. Which type of job interests you most?
Im an IT major going into SWEN im gknna be honest im bad at math but good software development and engineering and design. Can i still maybe work as a software engineer on robotics firm or in ROS software
Yes, to be honest it's common that you'll have a combination of a team of people who are good at computer science and implementation on one side and people who are good at math and algorithms on the other. They complement each other. You should at least understand the concepts of transforms, but often don't have to understand everything. Just keep trying to improve yourself for the job you find you like.
Absolutely loved this video! It's incredibly informative and valuable for those trying to specialize in the robotics software department. Thank you so much for sharing your expertise
Make milestones for your videos, so people can skip ahead; i.e. 3:30: Mapping. People might stick around longer if they can easily skip to which portion they want.
The other day my nephew was looking at a printer and he realized that it's a type of robot (especially ink jet printers). I was like, yes.. that's right. I think I might get more robotics questions from him in the future.
Awesome video. I'm not even in Robotics but watched it end to end instead of working. Great presentation! I hope you continue making these videos - I'm not sure that I have any advice re: how to increase viewership, if that's a goal :) But the content's there.
Could be interesting. But nearly impossible to understand, especially with the background music and other noises. Please use an external mic next time, and do not use background music.
Hey, I am a master student and a fresher seeking jobs. Can you suggest me some projects which would boost my resume? Btw you are one of the few robotics content creators I came accross so thank you 😁😁
Thank you for your comment! Visual odometry is definitely a hot topic right now, as many autonomous vehicles systems may have started with just using lidar points, but want to add robustness with cameras. Perception tasks in inclement weather is another area that I feel autonomous vehicles will be focusing more on in the near future. SLAM that is efficient enough to work on drones or Android devices is another interesting area both useful for agricultural applications, emergency response, and augmented reality placement of objects in a 3D space. Another area of interest could be generative AI used in test scenario generation. Another perception task I find very interesting is photogrammetry... Constructing a 3D model of something based on time series collection of sensor data. Robotics arm movement is an interesting problem for path planning. Cuda is very desirable if you have the opportunity to optimize code by using Cuda and GPUs. There really are so many possibilities for projects. Pick something that really interests you because it'll likely take you grinding through something to make it work! NuScenes is a great dataset if you don't have hardware to work on. Good luck!