This README documents my progress on the GSoC 2025 ROS challenge as of April 6, 2025. The challenge consists of three parts:
- Part 1a: ROS2 Publisher-Subscriber Demo.
- Part 1b: TurtleBot3 Simulation with Laser Scan Visualization.
- Part 2: ROS2 Navigation2 with Waypoint Navigation. Below, I detail the setup, development, successes, and challenges for each part, showcasing my work with ROS2 Humble on an Ubuntu 22.04 VM in VMware Workstation.
- Platform: Ubuntu 22.04 (Jammy) in VMware Workstation.
- ROS2 Version: Humble Hawksbill.
- VM Configuration: 4 GB RAM, 2 CPUs, 512 MB graphics memory, 3D acceleration enabled.
-
Objective: Create a ROS2 package with a publisher and subscriber to demonstrate basic ROS2 communication.
-
Development: Package creation hello_ros2
-
Build and Run:
cd ~/ros2_ws colcon build source install/setup.bash
- Terminal 1:
Output:
ros2 run hello_ros2 publisher_node
Publishing: "Hello! ROS2 is fun."
every second. - Terminal 2:
Output:
ros2 run hello_ros2 subscriber_node
I heard: "Hello! ROS2 is fun."
in sync.
- Watch the Demo: Video shows publisher sending messages and subscriber receiving them ROS2 Humble in Action: Publisher-Subscriber Magic Unveiled
-
Objective: Simulate TurtleBot3 in Gazebo and visualize its laser scan in RViz2
-
Install Dependencies:
sudo apt install ros-humble-turtlebot3-simulations ros-humble-gazebo-ros-pkgs -y
-
Launch Attempt:
source /opt/ros/humble/setup.bash export TURTLEBOT3_MODEL=burger ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
-
RViz2 Setup:
ros2 run rviz2 rviz2
-
Challenges:
- Gazebo Issue:
gzserver
starts but/spawn_entity
service fails: - Error:
Service /spawn_entity unavailable. Was Gazebo started with GazeboRosFactory?
- Standalone
ros2 run gazebo_ros gzserver
exits with code 255.
- Status:
- In Progress: Gazebo integration unresolved; TurtleBot3 not spawning.
-
Objective: Navigate TurtleBot3 in Gazebo using Navigation2, hitting at least three waypoints.
-
Install Dependencies:
sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup -y
-
Development: Package creation waypoint_nav
-
Build and Run:
cd ~/ros2_ws colcon build source install/setup.bash
- Terminal 1: Gazebo
Issue:
source /opt/ros/humble/setup.bash export TURTLEBOT3_MODEL=burger ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
/spawn_entity
unavailable. - Terminal 2: Navigation2
Issue:
ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True
KeyError: 'TURTLEBOT3_MODEL'
. - Terminal 3: Waypoint Navigator
Output:
ros2 run waypoint_nav waypoint_navigator
Sending waypoint 1: (1.0, 0.0, 0.0)
(hangs without Navigation2).
- Challenges:
- Gazebo: Same
/spawn_entity
issue as Part 1b. - Navigation2: Missing environment variable fixed by adding
export TURTLEBOT3_MODEL=burger
.
- Status:
- Success:
waypoint_nav
package built and runs. - In Progress: Gazebo and Navigation2 integration pending.
Mohamed ABABSA - GSoC 2025 Applicant
JdeRobot-ROS2 is licensed under the MIT License