The thing that most people don't appreciate is that ROS was co-designed with the PR2, which had a very idiosyncratic architecture: two separate computers in the base, ethercat for comms, not at all modular, and very high end parts (for 2010ish). Most of the weirdness of ROS looks less weird in light of the design of the PR2, and most of the evolution of ROS was to get away from the PR2 model for more general platforms.
If you were in robotics prior to 2010, you probably would have used something called Player/Stage (by some of the same people who developed ROS). Believe it or not, another big motivation for ROS was solving the (many) problems that popped up as people tried to get Player/Stage running with robots like the Pioneer 3-DX.
ROS is dozens of projects crammed into a single workspace. Avoiding this ecosystem will not work in your favor in the long term.
* robotic software projects are often abandoned, and only ROS keeps the driver packages working
* Yes it is terrible, but the alternatives are even worse
Almost all modern reasonably good platforms will already offer a tested ROS configuration. Even the UR5 had simulation and control options out of the box.
People can't avoid standards.. even the awful ones.. =3
Yeah, for professional robotics you just accept that this is the world we live in. But for learning and hobbyist stuff, it's better to play with simple hardware and build the things that ROS is ultimately abstracting over before you try to pick up ROS.
I've seen people get sucked into ROS + simulation who end up never touching real robots. Which is fine if that's what you want to play with, but it's debatable if "ROS + sim" alone is even "robotics."
I usually recommend building the Arduino turtle-bot first, try the maze solver with the classic wavefront algorithm, and then a ROS Arduino setup tutorial.
Also not a fan of simulators for simple platforms, as a lot of stuff breaks when the environment is chaotic. =3
I was at a ROS conference a few years ago. A presenter went up and gave a talk about lidar and point clouds, speaking about how obsolete optical cameras were now that lidar was readily available.
The next person gets up and gives a talk about all the advancements in generating point clouds from optical cameras.
By far the best part is how tied to specific versions of Ubuntu each ROS release is, just getting all the packages installed and running requires sacrificing a cat while chanting Hail Mary backwards in Latin.
> By far the best part is how tied to specific versions of Ubuntu each ROS release is, just getting all the packages installed and running requires sacrificing a cat while chanting Hail Mary backwards in Latin.
100% this. I had a very, very miserable time setting up two systems and trying to get them running a version that was supported. The worst part is SBCs that stop getting OS updates and become permanently locked in to a specific version. Which also forces the rest of your hardware to use the same version. Using a Jetson Nano with Ubuntu 18.04 in 2022 was lots of fun...
Last year I met a couple of university students working on a robot and out of curiosity I asked what they were using as a microcontroller and the software stack. They were running ROS. When they said they still hadn't upgraded to ROS 2 yet, I could feel their pain...
In general, lidar is used to remove the ambiguity in a local ground scan, and cameras extrapolate overlapping texture gradients to guess distant surface structure ( documented in the old book https://www.amazon.com/Learning-OpenCV-Computer-Vision-Libra... .)
There are some fairly good FOSS tools around like COLMAP, if you want to learn why automatic monocular pose recovery and SfM is hard.
Real autonomous robotics is hard, and people make the same predictable mistakes every 4 years. Retrofitting a consumer Yarbo would be cool though. =3
I observe many groups solving platform design issues also eventually move on to other projects or careers. The dozens of documented fools-errands from Academic literature and Commercial sectors are eventually lost again each time. There are various institutional structural reasons this occurs, but the outcome is usually the same.
One must accept many problems are not purely technical in nature, and unfortunately complex Mechatronics often tend to exhibit sustainability problems.