{"id":21181590,"url":"https://github.com/ifurusato/ros","last_synced_at":"2025-07-10T00:31:17.384Z","repository":{"id":44637365,"uuid":"262510369","full_name":"ifurusato/ros","owner":"ifurusato","description":"A Python-based Robot Operating System (ROS)","archived":false,"fork":false,"pushed_at":"2022-02-03T03:17:05.000Z","size":4021,"stargazers_count":11,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-03-19T17:48:43.461Z","etag":null,"topics":["o","python3","raspberry-pi","robot","robot-operating-system","robotics","sensors"],"latest_commit_sha":null,"homepage":"http://robots.org.nz/","language":"Python","has_issues":false,"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/ifurusato.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-09T07:02:46.000Z","updated_at":"2022-08-16T17:35:39.000Z","dependencies_parsed_at":"2022-09-25T00:10:15.953Z","dependency_job_id":null,"html_url":"https://github.com/ifurusato/ros","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifurusato%2Fros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifurusato%2Fros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifurusato%2Fros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ifurusato%2Fros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ifurusato","download_url":"https://codeload.github.com/ifurusato/ros/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225606685,"owners_count":17495551,"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","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":["o","python3","raspberry-pi","robot","robot-operating-system","robotics","sensors"],"created_at":"2024-11-20T17:51:26.330Z","updated_at":"2024-11-20T17:51:27.047Z","avatar_url":"https://github.com/ifurusato.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"*******************************************\nA Python-based Robot Operating System (ROS)\n*******************************************\n\nThis provides a *Robot Operating System* (ROS) for a Raspberry Pi based robot\nwritten in Python 3, whose prototype hardware implementations are the **KR01**\nand **KD01** robots.\n\nMain communication between sensors and motor controller is performed over I²C,\nusing lever switch bumpers, Sharp/Pololu analog infrared distance sensors, as\nwell as a variety of Pimoroni sensors from the Breakout Garden series.\n\n.. image:: https://service.robots.org.nz/wiki/attach/KR01/KR01-0533-1280x584.jpg\n   :width: 1280px\n   :align: center\n   :height: 584px\n   :alt: The KR01 Robot\n\nThe KR01 robot uses the PiBorg ThunderBorg motor controller and an UltraBorg\nultrasonic sensor and servo controller board. The KD01 is a more recent differential\ndrive robot built using many of the same components as the KR01.\n\nMore information can be found on the New Zealand Personal Robotic Group (NZPRG) Blog at:\n\n* `The KR01 Robot Project \u003chttps://robots.org.nz/2019/12/08/kr01/\u003e`\n* `Differential Drive \u003chttps://robots.org.nz/category/kd01/\u003e` (the KD01 robot)\n* `Facilius Est Multa Facere Quam Diu \u003chttps://robots.org.nz/2020/04/24/facilius-est/\u003e`\n\nand the NZPRG wiki at:\n\n* `KR01 Robot \u003chttps://service.robots.org.nz/wiki/Wiki.jsp?page=KR01\u003e`\n\nThis project is part of the *New Zealand Personal Robotics (NZPRG)* \"Robot\nOperating System\" — not to be confused with other \"ROS\" projects. It is intended\nthat in the future this project will be migrated to a modular, Python distribution\nvia PyPy so that its components can be easily installed from the command line. \nThe code is currently not stable enough to warrant that level of convenience.\n\n\nFeatures\n********\n\n* `Behaviour-Based System (BBS) \u003chttps://en.wikipedia.org/wiki/Behavior-based_robotics\u003e`\n* `Subsumption Architecture \u003chttps://en.wikipedia.org/wiki/Subsumption_architecture\u003e` [#f1]_\n* Auto-configures by scanning I²C bus for available devices on startup\n* Configuration via YAML file\n* Motor control via a `PID controller \u003chttps://en.wikipedia.org/wiki/PID_controller\u003e` with odometry support using encoders\n* complex composite sensors include mini-LIDAR, scanning ultrasonic distance sensor\n* supports analog and digital IR bumper sensors\n* output via 11x7 white matrix LED and 5x5 RGB matrix LED displays\n* supports Pimoroni Breakout Garden, Adafruit and other I²C sensors, and can be extended for others\n* supports PiBorg ThunderBorg motor controller, UltraBorg servo and ultrasonic controller board\n* written in Python 3\n\n.. [#f1] Uses finite state machines, an asynchronous message queue, an arbitrator and controller for task prioritisation.\n\n\nStatus\n******\n\nThis project should currently be considered a \"**Technology Preview**\".\n\nThe files in the repository function largely as advertised but the overall state\nof the ROS is not yet complete — it's still very much a work-in-progress and\nthere are still some pieces missing that are not quite \"ready for prime time.\"\nDemonstrations and included tests (including the pytest suite) either pass\nentirely or are close to passing.\n\nThe project is being exposed publicly so that those interested can follow its\nprogress. At such a time when the ROS is generally useable this status section\nwill be updated accordingly.\n\n\nInstallation\n************\n\nThe ROS requires installation of a number of support libraries. In order to\nbegin you'll need Python3 (at least 3.8) and pip3, as well as the pigpio library.\n\nNote that the current setup.py script is not yet functional (this is a work in\nprogress), and you may instead use the bespoke ros_setup.py to install the\ndependency libraries. It may or not function properly on your system, in which\ncase you may need to manually install the libraries (you'll generally see an\nerror message indicating a missing library).\n\n\nSupport \u0026 Liability\n*******************\n\nThis project comes with no promise of support or liability. Use at your own risk.\n\n\nFurther Information\n*******************\n\nFor more information check out the `NZPRG Blog \u003chttps://robots.org.nz/\u003e` and\n`NZPRG Wiki \u003chttps://service.robots.org.nz/wiki/\u003e`.\n\nPlease note that the documentation in the code will likely be more current\nthan this README file, so please consult it for the \"canonical\" information.\n\n\nExecution\n*********\n\nTo force the Raspberry Pi to prioritise execution of the python operating\nsystem, use the 'chrt' command, e.g.::\n\n    % chrt -f 5 python3 ./fusion_test.py\n\n\n\nCopyright \u0026 License\n*******************\n\nAll contents (including software, documentation and images) Copyright 2020-2021\nby Murray Altheim. All rights reserved.\n\nThis file is part of the Robot Operating System project, released under the MIT License.\n\nSoftware and documentation are distributed under the MIT License, see LICENSE\nfile included with project.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifurusato%2Fros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fifurusato%2Fros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fifurusato%2Fros/lists"}