{"id":16882318,"url":"https://github.com/borisdayma/home_service_robot","last_synced_at":"2026-05-17T00:04:14.167Z","repository":{"id":140748313,"uuid":"141852830","full_name":"borisdayma/home_service_robot","owner":"borisdayma","description":"Autonomously map and navigate a home environment to pick-up and drop-off objects","archived":false,"fork":false,"pushed_at":"2018-07-30T18:54:17.000Z","size":143,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-09T22:38:32.244Z","etag":null,"topics":["localization","slam"],"latest_commit_sha":null,"homepage":"","language":"CMake","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/borisdayma.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":"2018-07-21T23:41:28.000Z","updated_at":"2022-05-15T10:56:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"e84d07aa-bfa8-436d-a31f-d5e4fbc84669","html_url":"https://github.com/borisdayma/home_service_robot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/borisdayma/home_service_robot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borisdayma%2Fhome_service_robot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borisdayma%2Fhome_service_robot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borisdayma%2Fhome_service_robot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borisdayma%2Fhome_service_robot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/borisdayma","download_url":"https://codeload.github.com/borisdayma/home_service_robot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borisdayma%2Fhome_service_robot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008424,"owners_count":26084460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["localization","slam"],"created_at":"2024-10-13T16:06:51.796Z","updated_at":"2025-10-11T19:33:05.118Z","avatar_url":"https://github.com/borisdayma.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Home Service Robot\n\n*This repository presents my solution to the Udacity Home Service Robot Project. A SLAM algorithm is used to create a map of an environment. Then the map is used to localize a robot and plan its trajectory towards an object to pick-up and drop it off at another location. The entire project is created through ROS packages.*\n\n![alt text](imgs/intro.jpg)\n\n## Objective\n\nThe project is built entirely with ROS packages (some existing and some newly created). The objective is to create a map of an environment through SLAM, and then localize and navigate through it in order to reach target locations.\n\nThe project is split in several parts:\n\n* design a custom environment,\n* make a *wall follower* node to navigate autonomously following walls,\n* use a SLAM algorithm to map the environment,\n* create a *pick objects* node to go to target object location followed by drop off location,\n* create a *add markers* node to display objects on rviz,\n* establish a communication between nodes to notify of reached locations.\n\nThe robot used for navigation is *turtlebot* present as a standard ROS package.\n\n## Architecture\n\nThe project is made of several ROS packages:\n\n* *turtlebot_gazebo* loads our custom world environment in gazebo and creates a turtlebot robot,\n* *turtlebot_teleop* for manually operating the turtlebot,\n* *gmapping* uses the camera, laser \u0026 odometry in order to simultaneously localize the robot and map the environment (SLAM algorithm),\n* *wall_follower* controls the robot and make it continuously follow the left wall,\n* *amcl* is a probabilistic localization system that uses a particle filter to track a robot through a given map,\n* *pick_objects* sends target pick-up and drop-off locations, and notify when those have been reached,\n* *rviz* is used for visualization of the environment, the robot, and any other parameter (laser scan, localization particles, navigation cost maps and path, etc),\n* *add_markers* is used to visualize simulated objects at pick-up and drop-off locations on rviz.\n\n## Future work\n\nThe following required improvements have been identified:\n\n* a package needs to be developed to send \u0026 receive object pick-up and drop-off targets in real time ;\n* other SLAM packages need to be evaluated and compared for better performance ;\n* the robot needs to be able to identify its initial location automatically ;\n* custom robots need to be added to launch or script files.\n\n## Installing\n\nA script has been developed for quick installation:\n\n* Copy the `setup.sh` script in your home directory.\n* Ensure you don't have a **catkin_ws** directory as its contents may be deleted.\n* Run `./setup.sh`\n\nThis will clone the full repository, including required ROS packages as sub-modules.\n\n**Note**: Once installed, do not move or rename the packages folder as the Shell scripts rely on preserving relative paths.\n\n## Running the scripts\n\nThe entire project can be run through the scripts present in `src/ShellScripts`.\n\nThe different scripts were developed in the following sequence:\n\n* `test_slam.sh` - generate a map through SLAM while navigating manually\n* `wall_follower.sh` - generate a map through SLAM while navigating autonomously following walls\n* `test_navigation.sh` - load map generated through SLAM and define manually target navigation goals\n* `pick_objects.sh` - run autonously the robot towards pick-up and drop-off locations\n* `add_markers.sh` - add objects as markers to rviz\n* `home_service.sh` - run autonomously the robot to pick up target object and bring it to drop off location, with rviz visualization\n\n## Built With\n\n* [SLAM Gmapping](https://github.com/ros-perception/slam_gmapping) - The SLAM algorithm\n* [Turtlebot](https://github.com/turtlebot) - ROS robot model and its stack\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborisdayma%2Fhome_service_robot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fborisdayma%2Fhome_service_robot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborisdayma%2Fhome_service_robot/lists"}