Giter VIP home page Giter VIP logo

robocore's Introduction

RoboCore

Provides core functions for field robotics.

RoboCore acts as an interface between real time devices and ROSJavaLite for the purpose of collecting real time data and presenting it on the ROSJavaLite messaging bus.

A node can handle messages under various topics as a publisher, and receive control signals as a subscriber, and deliver messages to the intended subsystem on distributed nodes on the robot.

ROS Services are also employed as tools for diagnostic reporting and ad hoc control of PWM and GPIO low level functions for prototyping and testing of various subsystems.

In addition to presenting the robot as a logical collection of configurations and process setpoints, modules for reading low level hardware devices, PS3 style controllers, Laser based range finders, video, and other external devices are provided. A portion of the code is devoted to communication with the MarlinSpike realtime subsystem, which uses a Single Board Computer GPIO or a microcontroller such as the Mega2560 controller.

A platform independant subsystem of custom M and G codes passes messages to effect functions on those realtime boards.

A series of asynchronous serial readers and writers handle the different types of messages coming from the MarlinSpike, including low level GPIO, ultrasonic sensor,and motor controller propulsion, configuration, and monitoring codes.

Virtually any type of smart motor controller and various types of Half bridge, Split bridge, and H bridge motor controller can be configured with a few lines of M code sent to the MarlinSpike subsystem.

The 'MegaPubs' class provides the primary entry point for most of the MarlinSpike communication and motor control. In the case of a detached microcontroller, communication is handled via the USB port and Java RxTx library.

Using combinations of M and G codes sent to the MarlinSpike, various hardware functions can be controlled, and motor controllers of different types may be configured, as previously mentioned, and subsequently the necessary control commands or PWM levels and enable and disable pins and functions can be described via the M and G code processing that takes place from the higher level messages on the ROSJavaLite bus down to the low level real time processing on the MarlinSpike

Some of the hardware functions may process ultrasonic range finders or read encoder inputs to handle low level motor lockout during proximity, or read hall odometry sensors on the wheels thus preventing runaway of the robot.

Notifications and alarms from attached hardware controllers and low-level sensing devices are presented in real time via the MarlinSpike subsystem and multiplexed on the ROSJavaLite bus.

The robots may communicate with end users by notifications which can be delivered via a speech subsystem using the 'VoxHumana' module in a repository by the same name, and by activating the speech ROSJavaLite subscriber node with the source of the notification publishing to the ROSJavaLite message bus speech topic.

These are just some of the functions provided by way of example, many others are present in the operational code base in the various repositories. This repository contains what might be described as the 'nervous system' and 'autonomic functions' of the various robots that run under its operational code. If you peruse the files you may notice configurations for 2 robots that currently are fully operational and under ongoing further research and development.

The 2 example robots; ROSCOE1 and ROSCOE2 both use the exact same code base save for some minor changes to a few configurations for the propulsion controls, motor types, and peripherals they both have. ROSCOE1 uses a smart controller and brushless DC motor drive housed in a 20mm ammo case, while ROSCOE2 uses gear motors and H bridge drivers using an old mobility wheelchair chassis stripped to its battery carrier and gear motor/suspension elements, then augmented with custom housings for electronics and boom crane style effectors.

Both robots have steroscopic vision systems using conventional webcams, and run on a series of networked single board computers such as Raspberry Pis and Odroids with various wireless access point options for external facing controls and user interface and maintenance.

Although autonomous control is the ultimate goal, there is a wearable device that uses a single board computer and ruggedized power system along with controller and display that is also used to control the robots in real time.

In general, classes ending with 'pubs' are publishers of data to the ROSJavaLite bus and those with 'subs' are subscribers, although some provide dual functionality.

robocore's People

Contributors

neocoretechs avatar

Watchers

 avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.