this post was submitted on 15 Aug 2023
4 points (100.0% liked)
Robotics
266 readers
11 users here now
Welcome to our Robotics community!
This is a place where you can post links and news about general robotics and share with the rest of the Fediverse.
For content specific to Robot Operating System software, checkout: !ros
Community References:
Q&A Exchanges:
Icon base by Lorc under CC BY 3.0 with modifications to add a gradient
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'm beginning to migrate a self driving car SW stack that is based on ROS1 to ROS2. Not a lot of people in my company are familiar with ROS2 so I'm on my own for the time being. It's going to be a lot of work but I think it will be a fun journey. I worked on the original ROS1 based project from the beginning so I think I am prepared, but many things have changed in ROS since I started the project so I have a lot to catch up. I will also have to understand the workings of many packages contributed by my previous collaborators too. Wish me luck!
For the self driving car, are we talking about hobbyist size (ie Donkey car), add on tech (ie Comma OpenPilot) or full on autonomous vehicle? Sounds really cool.
Upgrading from an old tech stack to a newer one is always a pain, especially in Python - one of the reasons I hate that it's so widely adapted for deep learning, CV, and robotics.
Hopefully you'll regale us with details, this sounds fascinating.
Thanks for your interest :) This is a full scale vehicle project which I participated in its development during my PhD. All my lab colleagues put their own package based on their specializations (perception/decision/control). It actually began as my hobby project when I was frustrated with the lab's legacy MATLAB+LabView based SW and HW. I am now working in a startup company that bought the technology from the lab.
The code works, but the code quality suffers since it's been developed by newbies(most of the lab members are from ME background so their computer skills aren't stellar, and this was everyone's first rodeo with ROS) so the company's goal is to clean up and refactor the codebase while we are updating the system to a modern ROS version. Sadly the company is still small and I hope we get more people on board to speed up the process. On the bright side, I have a lot of opportunities to contribute.
BTW I totally agree with what you mentioned about Python. The old codebase is using ROS melodic which still supported Python 2.7, which makes things even harder. I also have to check if the dependencies are met in new Python versions while updating the code to 3.x versions. One more problem is that when we are deploying our code in our clients' systems we wish to hide our source code as much as possible but Python packages are posing to be a problem in that aspect. I would be happy to hear some tips regarding that issue. Most of our C++ code is fine, but many of our homemade packages are mainly Python scripts.
Oh yeah, MATLAB is painful. I get why you use it at first - it's great for handling derivations for you when looking at control code, and handles matricies well enough when learning kinematics. But once my homeworks started to demand animations and complex processing I yearned for a language with classes or any advance features at all. Still, managed to make some cool stuff - like this RRT path planned transmission removal 😄
What startup (assuming you're out of stealth mode?) Good luck with the jump over to a startup. It's rough but hopefully you knock it out of the park.
As for code deploy - I've worked on the problem at two startups now. I can probably advise you on some stuff to look into, but would need to know more about the problem space you're specifically looking at. Though I'm hesitant to mention full obfuscation if you're not delivering a finished product but rather a module to the end customer.