{"id":28858207,"url":"https://github.com/mohababsa/jderobot-ros2","last_synced_at":"2026-01-31T22:37:22.610Z","repository":{"id":286499412,"uuid":"961583401","full_name":"mohababsa/JdeRobot-ROS2","owner":"mohababsa","description":"A ROS2 Humble project exploring publisher-subscriber communication, TurtleBot3 simulation, and Navigation2 waypoint navigation for GSoC 2025 with JdeRobot.","archived":false,"fork":false,"pushed_at":"2025-04-07T18:10:17.000Z","size":25066,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-20T02:05:41.666Z","etag":null,"topics":["gazebo","gsoc-2025","navigation2","python","robotics","ros2-humble","rviz2","turtlebot3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mohababsa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-06T20:05:34.000Z","updated_at":"2025-04-07T18:17:54.000Z","dependencies_parsed_at":"2025-04-06T21:26:22.832Z","dependency_job_id":"a5c1524b-a9ae-46c6-b6d5-c37b0657e7e6","html_url":"https://github.com/mohababsa/JdeRobot-ROS2","commit_stats":null,"previous_names":["mohababsa/jderobot-ros2"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mohababsa/JdeRobot-ROS2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohababsa%2FJdeRobot-ROS2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohababsa%2FJdeRobot-ROS2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohababsa%2FJdeRobot-ROS2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohababsa%2FJdeRobot-ROS2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohababsa","download_url":"https://codeload.github.com/mohababsa/JdeRobot-ROS2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohababsa%2FJdeRobot-ROS2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28958348,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T22:20:19.638Z","status":"ssl_error","status_checked_at":"2026-01-31T22:18:07.061Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gazebo","gsoc-2025","navigation2","python","robotics","ros2-humble","rviz2","turtlebot3"],"created_at":"2025-06-20T02:05:42.619Z","updated_at":"2026-01-31T22:37:22.604Z","avatar_url":"https://github.com/mohababsa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GSoC 2025 ROS2 Challenge Progress\n\n## Overview\nThis README documents my progress on the GSoC 2025 ROS challenge as of April 6, 2025. The challenge consists of three parts:\n- Part 1a: ROS2 Publisher-Subscriber Demo.\n- Part 1b: TurtleBot3 Simulation with Laser Scan Visualization.\n- Part 2: ROS2 Navigation2 with Waypoint Navigation.\nBelow, 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.\n\n## Environment Setup\n- Platform: Ubuntu 22.04 (Jammy) in VMware Workstation.\n- ROS2 Version: Humble Hawksbill.\n- VM Configuration: 4 GB RAM, 2 CPUs, 512 MB graphics memory, 3D acceleration enabled.\n\n## Part 1a: ROS2 Publisher-Subscriber Demo\n1. **Objective**:\nCreate a ROS2 package with a publisher and subscriber to demonstrate basic ROS2 communication.\n\n2. **Development**:\nPackage creation [hello_ros2](ros2_ws/src/hello_ros2)\n\n3. **Build and Run**:\n   ```bash\n   cd ~/ros2_ws\n   colcon build\n   source install/setup.bash\n   ```\n- Terminal 1:\n  ```bash\n  ros2 run hello_ros2 publisher_node\n  ```\n  Output: `Publishing: \"Hello! ROS2 is fun.\"` every second.\n- Terminal 2:\n  ```bash\n  ros2 run hello_ros2 subscriber_node\n  ```\n  Output: `I heard: \"Hello! ROS2 is fun.\"` in sync.\n\n4. **Watch the Demo**:\n   Video shows publisher sending messages and subscriber receiving them\n   [ROS2 Humble in Action: Publisher-Subscriber Magic Unveiled](https://www.youtube.com/watch?v=abc123)\n\n## Part 1b: TurtleBot3 Simulation with Laser Scan Visualization\n1. **Objective**:\nSimulate TurtleBot3 in Gazebo and visualize its laser scan in RViz2\n\n2. **Install Dependencies**:\n   ```bash\n   sudo apt install ros-humble-turtlebot3-simulations ros-humble-gazebo-ros-pkgs -y\n   ```\n\n3. **Launch Attempt**:\n   ```bash\n   source /opt/ros/humble/setup.bash\n   export TURTLEBOT3_MODEL=burger\n   ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py\n   ```\n\n4. **RViz2 Setup**:\n   ```bash\n   ros2 run rviz2 rviz2\n   ```\n\n5. **Challenges**:\n- Gazebo Issue: `gzserver` starts but `/spawn_entity` service fails:\n- Error: `Service /spawn_entity unavailable. Was Gazebo started with GazeboRosFactory?`\n- Standalone `ros2 run gazebo_ros gzserver` exits with code 255.\n\n6. **Status**:\n- In Progress: Gazebo integration unresolved; TurtleBot3 not spawning.\n\n## Part 2: ROS2 Navigation2 with Waypoint Navigation\n1. **Objective**:\nNavigate TurtleBot3 in Gazebo using Navigation2, hitting at least three waypoints.\n\n2. **Install Dependencies**:\n   ```bash\n   sudo apt install ros-humble-navigation2 ros-humble-nav2-bringup -y\n   ```\n   \n3. **Development**:\nPackage creation [waypoint_nav](ros2_ws/src/waypoint_nav)\n\n4. **Build and Run**:\n   ```bash\n   cd ~/ros2_ws\n   colcon build\n   source install/setup.bash\n   ```\n- Terminal 1: Gazebo\n  ```bash\n  source /opt/ros/humble/setup.bash\n  export TURTLEBOT3_MODEL=burger\n  ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py\n  ```\n  Issue: `/spawn_entity` unavailable.\n- Terminal 2: Navigation2\n  ```bash\n  ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True\n  ```\n  Issue: `KeyError: 'TURTLEBOT3_MODEL'`.\n- Terminal 3: Waypoint Navigator\n  ```bash\n  ros2 run waypoint_nav waypoint_navigator\n  ```\n  Output: `Sending waypoint 1: (1.0, 0.0, 0.0)` (hangs without Navigation2).\n\n5. **Challenges**:\n- Gazebo: Same `/spawn_entity` issue as Part 1b.\n- Navigation2: Missing environment variable fixed by adding `export TURTLEBOT3_MODEL=burger`.\n\n6. **Status**:\n- Success: `waypoint_nav` package built and runs.\n- In Progress: Gazebo and Navigation2 integration pending.\n\n\n## Author\n**Mohamed ABABSA** - GSoC 2025 Applicant\n\n## License\nJdeRobot-ROS2 is licensed under the [MIT License](LICENSE)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohababsa%2Fjderobot-ros2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohababsa%2Fjderobot-ros2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohababsa%2Fjderobot-ros2/lists"}