Skip to content

bopopescu/ros

 
 

Repository files navigation

A Python-based Robot Operating System (ROS)

This provides a Robot Operating System (ROS) for a Raspberry Pi based robot written in Python 3, whose prototype hardware implementation is the KR01 robot.
Main communication between sensors and motor controller is performed over I²C, using lever switch bumpers, Sharp/Pololu infrared distance sensors as well as a variety of Pimoroni sensors from the Breakout Garden series.

The KRO1 Robot

The KR01 robot uses the PiBorg ThunderBorg motor controller and UltraBorg ultrasonic sensor and servo controller board.

More information can be found on the New Zealand Personal Robotic Group (NZPRG) Blog at:

and the NZPRG wiki at:

Features

  • Behaviour-Based System (BBS)
  • Subsumption Architecture (uses finite state machines, message queue, arbitrator and controller for task prioritisation)
  • Auto-configures by scanning I²C bus for available devices on startup
  • Configuration via YAML file
  • Motor control via PID controller with odometry support using encoders
  • complex composite sensors include mini-LIDAR, scanning ultrasonic distance sensor and PIR-based cat scanner
  • supports analog and digital IR bumper sensors
  • output via 11x7 white matrix LED and 5x5 RGB matrix LED displays
  • supports Pimoroni Breakout Garden, Adafruit and other I²C sensors, and can be extended for others
  • supports PiBorg ThunderBorg motor controller, UltraBorg servo and ultrasonic controller board
  • written in Python 3

Status

This project should currently be considered a "Technology Preview".

The files that have been copied into the repository are from the initial local project. These function largely as advertised but the overall state of the ROS is not yet complete — there are still some pieces missing that are not quite "ready for prime time." Demonstrations and included tests either pass entirely or are close to passing.

The project is being exposed publicly so that those interested can follow its progress. At such a time when the ROS is generally useable this status section will be updated accordingly.

Installation

The ROS requires installation of a number of support libraries. In order to begin you'll need Python3 and pip3, as well as the pigpio library.

Support & Liability

This project comes with no promise of support or liability. Use at your own risk.

Further Information

This project is part of the New Zealand Personal Robotics (NZPRG) "Robot Operating System", not to be confused with other "ROS" projects. For more information check out the NZPRG Blog and NZPRG Wiki.

Please note that the documentation in the code will likely be more current than this README file, so please consult it for the "canonical" information.

Copyright & License

All contents (including software, documentation and images) Copyright 2020 by Murray Altheim, All Rights Reserved.

Software and documentation are distributed under the MIT License, see LICENSE file included with project.

About

A Python-based Robot Operating System (ROS)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 96.5%
  • HTML 1.2%
  • Other 2.3%