{"id":28284918,"url":"https://github.com/lin775533/ros-turtlebot","last_synced_at":"2026-01-26T23:45:33.895Z","repository":{"id":290121479,"uuid":"973430535","full_name":"Lin775533/ros-turtlebot","owner":"Lin775533","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-30T05:21:19.000Z","size":85,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-17T18:49:49.465Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lin775533.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,"zenodo":null}},"created_at":"2025-04-27T01:11:24.000Z","updated_at":"2025-04-30T05:21:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"d86c5fdb-2f28-427a-977b-f5a0c406b78f","html_url":"https://github.com/Lin775533/ros-turtlebot","commit_stats":null,"previous_names":["lin775533/ros-turtlebot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lin775533/ros-turtlebot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lin775533%2Fros-turtlebot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lin775533%2Fros-turtlebot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lin775533%2Fros-turtlebot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lin775533%2Fros-turtlebot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lin775533","download_url":"https://codeload.github.com/Lin775533/ros-turtlebot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lin775533%2Fros-turtlebot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28791450,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: 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":[],"created_at":"2025-05-21T18:16:06.404Z","updated_at":"2026-01-26T23:45:33.890Z","avatar_url":"https://github.com/Lin775533.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ROS Turtlesim Navigation Lab\n\n**Author: Yu-Chun Lin**\n\n## Overview\n\nThis repository contains the ROS lab assignment demonstrating basic turtle navigation using the turtlesim package. Two main Python nodes were implemented:\n\n1. **swim_node.py**: Controls the turtle to swim in continuous figure-eight patterns by alternating between left and right circular movements.\n\n2. **swim_to_goal.py**: Implements a proportional controller that allows the turtle to navigate to user-specified (x,y) coordinates.\n\n## Repository Structure\n\n```\nLab3_YuChun_Lin_ws/\n├── build/                  # Build directory\n├── devel/                  # Development space\n├── src/                    # Source code\n│   ├── autoturtle/         # ROS package\n│   │   ├── scripts/\n│   │   │   ├── swim_node.py\n│   │   │   └── swim_to_goal.py\n│   │   ├── CMakeLists.txt\n│   │   └── package.xml\n└── catkin_workspace       # Workspace config file\n```\n\n## Implementation Details\n\n### swim_node.py\n\nThis node makes the turtle swim in a continuous pattern of alternating circles. Key features:\n- Randomly selects a linear velocity at startup\n- Calculates appropriate angular velocity based on a fixed radius\n- Alternates between positive and negative angular velocities to create left/right turns\n- Maintains a constant publishing rate for smooth motion\n\n### swim_to_goal.py\n\nThis node implements a proportional controller that guides the turtle to a user-specified goal. Key features:\n- Subscribes to the turtle's pose to get current position and orientation\n- Calculates Euclidean distance and angle to goal\n- Uses proportional control for both linear and angular velocities\n- Accepts user input for goal coordinates\n- Stops when the turtle reaches within tolerance of the goal\n\n## Running the Code\n\n1. Start ROS master:\n   ```\n   roscore\n   ```\n\n2. Launch turtlesim in a new terminal:\n   ```\n   rosrun turtlesim turtlesim_node\n   ```\n\n3. Run either of the navigation nodes:\n   ```\n   # For figure-eight swimming pattern\n   rosrun autoturtle swim_node.py\n   \n   # For goal-directed navigation\n   rosrun autoturtle swim_to_goal.py\n   ```\n\n## Demo Images\n\n![Turtlesim Navigation Demo](screenshots/turtlesim_demo.png)\n\n## Technologies Used\n\n- ROS (Robot Operating System)\n- Python\n- turtlesim package\n- Publisher/Subscriber pattern\n- Proportional control for navigation\n\n## Learning Outcomes\n\n- Understanding of ROS node creation and communication\n- Implementation of basic robot movement algorithms\n- Working with publishers and subscribers\n- Development of a simple proportional controller\n- Integration of user input with robot control\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flin775533%2Fros-turtlebot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flin775533%2Fros-turtlebot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flin775533%2Fros-turtlebot/lists"}