This is an old revision of the document!


The goal of the software system is to create an autonomous mobile robotic system that can perform robustly in the unconstrained outdoor environments, particularly in the urban environment where there are many people walking about. It consists of high level vision algorithms that try to solve problems in vision localization, navigation, object recognition, and Human-Robot Interaction (HRI).

All of Beobot 2.0 code is freely available in our Vision Toolkit, in particular in the : src/Robots/Beobot2.0/ folder. In the toolkit we also provide other software such as such as microcontroller code to run the robot.

Note that the first 2 sections (Deadlines and To Do) are ongoing internal message boards. The public section starts at the Current Research section.

Deadlines

Past software accomplished deadlines can be found here.

Tasks Date
1. ICRA2014: BeoRoadFinder: vision & tilted LRF Sept 15, 2013
2. IEEE AR 2013 road recognition comparison paper Oct 31, 2013
3. Implement Object search system Dec 1, 2013
4. RSS2014: Crowd navigation & understanding Feb1, 2014
5. Implement Human-Robot Interaction system August 1, 2014

Current Research

The specific tasks that we are focusing on are:

Other projects:

Hierarchical Representation of the Robot's Environment

At the center of our software architecture is the use of hierarchical representation of the robot's environment. We have a two level map: a global map for localization (how to recognize one's own location) and a local map for localization (how to to move about one's current environment, regardless if we know our exact location).

The global map (illustrated by the left image) is a graph-based augmented topological map, which is very compact and scalable to localize large sized environments. On the other hand, for navigation, we utilize an ego-centric traditional grid occupancy map as local map (on the right), which details the dangers in the robot's immediate surrounding. Here the robot is denoted below by a circle with an arrow indicating the robot's heading.

We find that it would be inefficient to use a grid map for global localization, as it is too large to maintain, but with little added information that a topological map cannot do. We do not need to memorize every square foot of every hallway in the environment, we just need to know the one we are on. By using a local map that will not be committed to the long term storage (it is robot-centric and is updated as the robot moves), we have our desired overall mobile robot representation that is both compact (for scalability) and detailed (for accuracy).

Software Tools

The following are the firmware level software that would be useful in optimizing robot systems:

Distributed Computer Communication

The Beobot2.0 software system uses ICE to communicate between computers in the cluster.

However, we would like to improve it and add tools that can evaluate how the individual modules are performing, or whether the network is congested by which data packets.

Distributed system features that are important:

  • Performance optimization tools:
   timers on modules (evolve, updateMessage)
   latency information of when the packets arrive 
   The amount of data in the **network** to if it is **congested** 
  • Packet synchronization
   * only evoke updateMessage if a set of packets with the **same index number** is received.
   * Be able to set the policy for packet dropping for individual message queues

All comes down to serialization.

Operating System

Real Time Robotics OS research at the kernel level down the line.

  • Does not put too much priority in answering user inputs.
  • Knows and Prioritize jobs that are the most critical to the survival of the robot.
  • Can allocate resources properly to satisfy all the modules.

MOSIX and Scyld Beowulf operating systems that encapsulates all the individual nodes that does all the job distribution internally.

General notes to work your way around Mandriva 2009 and Ubuntu 9.10..

Back to Beobot 2.0


Navigation
QR Code
QR Code beobot_2.0_system (generated for current page)