Off the bat, setting up ROS 2 on our own computers (which some of us did) was an interesting process. We ran into many errors when running installation commands. We were using WSL (Windows Subsytem for Linux) to run a Linux environment (Ubuntu version 20.04.6) and following online tutorials to setup ROS 2. The core of our issues had to do with using the right type of commands for our Ubuntu distribution (ex. galactic) rather than online tutorials' distributions (ex. noetic) or the ROS 2 docs' distribution (ex. humble). Once we realized this, we started running installation + setup commands successfully.
Our team found the overall structure of ROS 2 to be intuitive: the way individual systems are self-contained nodes (for scalability and modularity reasons). Nodes can pass data or communicate with each other through topics, services and actions. We realized this design structure could allow for data flow visualization, allow different nodes to receive information at different rates, and easier debugging of the data/info communication flow.
We ran into problems getting turtlesim to initially work and display a visualization. After a little googling and asking ChatGPT for ideas, it turns out we were not exporting DISPLAY to the value of 0, and incorrectly setting up XLaunch. Once we figured this out and the turtles showed up, the rest of the instructions for updating the simulation (ex. adding a turtle node, changing pen color, etc.) went smoothly.
We initially ran into challenges with using colcon to build packages. Specifically, the colcon build command was throwing an error. However, learning from our past installation mistake, we just had to clone a different git branch (for Galactic Ubuntu distribution) since the ROS guide used the Ubuntu Humble distribution. Using this new repository allowed "colcon build" to run with 0 errors.
From this point, we didn't run into major errors for the rest of the beginner tutorials. We stuck to the guide closely when inserting code or running terminal commands. We were able to edit the code on Visual Studio Code, and configure the primary bashrc file to export certain variables and source setup.bash to the right distribution folder (galactic). Thus we could avoid rerunning these commands everytime we opened a new terminal session. That saved us time.
When we did run into minor errors, it was often due to a typo or not being in the right directory when running a terminal command. However, these tiny mistakes were immediately spotted and fixed.
We initially found it challenging to grasp underlays and their purpose. However, after a bit of rereading the guide and group discussion, their purpose became more clear. An overlay can take precedence over the underlay, but its modifications don't affect the underlay nor prevent the user from running the underlay again (if desired).
Here's some screenshots of us completing the ROS beginner tutorials:
(using colcon workspace)