this post was submitted on 15 Aug 2023
4 points (100.0% liked)

Robotics

269 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 2 years ago
MODERATORS
 

This is the routine thread where we discuss what you'll be working on this week! A cool robot? A computer vision project? Something cool in reinforcement learning? 3d printing a drive train? Let us know!

Maybe instead you're studying something, or reading a paper that just came out? Post about it!

It’s also okay to say “nothing” too - it’s great for your mental health to take a break!

Looking for help? Ask a question! See someone working on something cool? Ask them about it! No project is too small or too "newbish"!

top 5 comments
sorted by: hot top controversial new old
[–] hlfshell 2 points 1 year ago

Last week I started going through ROS2 lessons online in order to familiarize myself on it for some upcoming projects.

First I spent time working on utilizing vagrant, a tool by Hashicorp for building "repeatable" (debatable overuse of that term, but I'll digress) dev environments and VM images to quickly set up versioned ROS environments for me. This was actually pretty easy and after a few hours I had a setup I liked. I will report that I do have some issues running Gazebo in VM on the laptop (to be expected) though it's smooth on the beefier desktop. I am still suffering from occasional complete VM freeze ups - irrecoverable, though the host machine shows no lag or issues there. I think it'll still work for a quick setup of ROS2 for a project team.

Now I'm going through the nav2 stack in ROS and trying to familiarize myself with it. I'm not sure what the scope of the upcoming project is going to be (it's the capstone team project for the entirety of my Masters, so there's a bit of time before decisions have to be finalized). Once that's done I'll probably dive into Webots simulator (especially since my own Gazebo is proving unstable).

[–] 1st2nd 1 points 1 year ago (1 children)

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!

[–] hlfshell 2 points 1 year ago* (last edited 1 year ago) (1 children)

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.

[–] 1st2nd 1 points 1 year ago (1 children)

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.

[–] hlfshell 2 points 1 year ago

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.