{"id":26269456,"url":"https://github.com/simone-contorno/rt-assignment-2","last_synced_at":"2026-04-30T12:34:05.984Z","repository":{"id":86020788,"uuid":"431884944","full_name":"simone-contorno/rt-assignment-2","owner":"simone-contorno","description":"Research Track 1 - Second assignment - Control of a robot in a simulated environment","archived":false,"fork":false,"pushed_at":"2022-04-04T08:42:08.000Z","size":121,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-31T00:47:55.226Z","etag":null,"topics":["cpp","engineering","robot","robotics","ros"],"latest_commit_sha":null,"homepage":"https://github.com/simone-contorno/RT-Assignment-2","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/simone-contorno.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-11-25T15:02:03.000Z","updated_at":"2025-01-19T11:45:14.000Z","dependencies_parsed_at":"2023-03-03T16:45:25.296Z","dependency_job_id":null,"html_url":"https://github.com/simone-contorno/rt-assignment-2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/simone-contorno/rt-assignment-2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simone-contorno%2Frt-assignment-2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simone-contorno%2Frt-assignment-2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simone-contorno%2Frt-assignment-2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simone-contorno%2Frt-assignment-2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simone-contorno","download_url":"https://codeload.github.com/simone-contorno/rt-assignment-2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simone-contorno%2Frt-assignment-2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32465009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"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":["cpp","engineering","robot","robotics","ros"],"created_at":"2025-03-14T05:14:17.097Z","updated_at":"2026-04-30T12:34:05.968Z","avatar_url":"https://github.com/simone-contorno.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Second Assignment of Research Track 1 - Robotics Engineering\n## Author: Simone Contorno\n\n\u003cbr\u003e\n\nControl of a robot in a simulated environment.\n\n### Introduction\nAn overview of this program function.\u003cbr\u003e\n[Go to Introduction](#intro)\n\n### How it works\nA rapid description of how the program works (pseudo-code).\u003cbr\u003e\n[Go to How it works](#how)\n\n### Installation and Execution\nHow install and run this program in Linux.\u003cbr\u003e\n[Go to Installation and Execution](#installation)\n\n### Improvements\nHow this program could be improved.\u003cbr\u003e\n[Go to Improvements](#improve)\n\n\u003ca name=\"intro\"\u003e\u003c/a\u003e\n### Introduction\n\nThis program manage a robot, endowed with laser scanners, which should move autonomously inside a circuit.\u003cbr\u003e\nYou can use the robot controller to:\n\u003cul\u003e\n    \u003cli\u003eIncrease the linear velocity;\u003c/li\u003e\n    \u003cli\u003eDecrease the linear velocity;\u003c/li\u003e\n    \u003cli\u003eStop the robot;\u003c/li\u003e\n    \u003cli\u003eReset the robot to the initial position.\u003c/li\u003e\n\u003c/ul\u003e\n\nThe circuit is this one:\n\n![map](https://github.com/simone-contorno/RT-Assignment-2/blob/main/second_assignment_map.png)\n\n\u003ca name=\"how\"\u003e\u003c/a\u003e\n### How it works\n\nThere are 3 packages:\n\u003cul\u003e\n    \u003cli\u003esecond_assignment: contains the map of the circuit.\u003c/li\u003e\n    \u003cli\u003esecond_assignment_node: contains 2 source files .cpp\n        \u003cul\u003e\n            \u003cli\u003erobot.cpp: controls the robot to follow the ciruit avoiding the borders; for this task it reads data from laser scanners (base_scan topic),\n            compare them (on the left and on the right) when it is too close to an obstacle (in front of its) and choose the direction \n            where there is more space; it also publishes the new linear velocity (managed from the user interface provided by robot_controller node) in the \n            cmd_vel topic.\u003c/li\u003e\n            \u003cli\u003erobot_controller.cpp: provides the user interface to digit commands and sends them to the service (server.cpp).\u003c/li\u003e\n        \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003esecond_assignment_server: contains the source file server.cpp that provides a service that takes in input the requested command from the robot_controller node, and           execute the corrisponding task; Robot.srv is the file used by this service.\u003c/li\u003e\n\u003c/ul\u003e\n\nLook the pseudocode files into the corresponding directories for more details.\u003cbr\u003e\n\n\u003ca name=\"installation\"\u003e\u003c/a\u003e\n### Installation and Execution\n\nFirst of all download into your ROS workspace the current repository opening the terminal and typing:\n\n\u003cpre\u003e\u003ccode\u003egit clone https://github.com/simone-contorno/rt-assignment-2\u003c/code\u003e\u003c/pre\u003e\n\nMove the folders into the src directory of your ROS workspace.\u003cbr\u003e \nAfter, go into the root folder of your ROS workspace and type: \n\n\u003cpre\u003e\u003ccode\u003ecatkin_make\u003c/code\u003e\u003c/pre\u003e\n\nAfterwards type:\n\n\u003cpre\u003e\u003ccode\u003erospack profile\u003c/code\u003e\u003c/pre\u003e\n\nNow, open 5 terminals; in the first one run ROS core:\n\n\u003cpre\u003e\u003ccode\u003eroscore\u003c/code\u003e\u003c/pre\u003e\n\nIn the second one run the node to visualize the map:\n\n\u003cpre\u003e\u003ccode\u003erosrun stage_ros stageros $(rospack find second_assignment)/world/my_world.world\u003c/code\u003e\u003c/pre\u003e\n\nIn the third one run the service node:\n\n\u003cpre\u003e\u003ccode\u003erosrun second_assignment_server server\u003c/code\u003e\u003c/pre\u003e\n\nIn the fourth one run the robot controller node to manage the robot through the user interface:\n\n\u003cpre\u003e\u003ccode\u003erosrun second_assignment_node robot_controller\u003c/code\u003e\u003c/pre\u003e\n\nIn the last one run the robot node:\n\n\u003cpre\u003e\u003ccode\u003erosrun second_assignment_node robot\u003c/code\u003e\u003c/pre\u003e\n\n\u003ca name=\"improve\"\u003e\u003c/a\u003e\n### Improvements\n\nTo improve the robot performance, it could be done an improvement to mantain better the robot in the center of the path.\u003cbr\u003e\u003cbr\u003e\n\nThanks to have read this file, i hope it was clear and interesting.\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimone-contorno%2Frt-assignment-2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimone-contorno%2Frt-assignment-2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimone-contorno%2Frt-assignment-2/lists"}