COLONYWIRELESS September 26, 2008. Outline 1.Motivation and Goals 2.Introduction to the XBee 3.The Wireless Library 4.Example Packet Group 5.The Token.

Slides:



Advertisements
Similar presentations
MPI Message Passing Interface
Advertisements

C Structures and Memory Allocation There is no class in C, but we may still want non- homogenous structures –So, we use the struct construct struct for.
R4 Dynamically loading processes. Overview R4 is closely related to R3, much of what you have written for R3 applies to R4 In R3, we executed procedures.
Module R2 CS450. Next Week R1 is due next Friday ▫Bring manuals in a binder - make sure to have a cover page with group number, module, and date. You.
1 Semester 2 Module 4 Learning about Other Devices Yuda college of business James Chen
DATA COLLECTION USING ZIGBEE NETWORK Timothy Melton Moscow, ID.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 W. Schulte Chapter 5: Inter-VLAN Routing Routing And Switching.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 5: Inter-VLAN Routing Routing & Switching.
ספטמבר 04Copyright Meir Kalech1 C programming Language Chapter 3: Functions.
OUTLINE WHAT ? HOW ? WHY ? BLUEPOST Poster and Message Content Specified by the User Displaying the Poster Content on a Monitor Sending Messages to.
A Framework for Patient Monitoring A. L. Praveen Aroul, William Walker, Dinesh Bhatia Department of Electrical Engineering University of Texas at Dallas.
Jirasak Raksachum Prince of Songkla University.  XBee ?  Specifications of the XBee®/XBee ‐ PRO®  Pin Signals  Serial Communications  ZigBee & Network.
Gursharan Singh Tatla Transport Layer 16-May
Wireless User Interface for Variable Frequency Drives Team 168 Alex Shuster (EE) Michael Kloter (EE) Christopher Perugini (EE) Kevin Wei (EngPhys - EE)
ZigBee. Introduction Architecture Node Types Network Topologies Traffic Modes Frame Format Applications Conclusion Topics.
1 Computer Networks Course: CIS 3003 Fundamental of Information Technology.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 5: Inter-VLAN Routing Routing And Switching.
Graduate Operating Systems Mini-Project: Hacking Bluetooth In Linux Alan Joseph J Caceres.
NetSim ZigBee Simulation Code Walkthrough in 10 steps
Architectures and Applications for Wireless Sensor Networks ( ) Sensor Node Programming II (UART and Radio) Chaiporn Jaikaeo
CWNA Guide to Wireless LANs, Second Edition
Implementing Wireless and WLAN Chapter 19 powered by DJ 1.
RoboTeam 9/1/2011 Preformed by:Costia Parfeniev, Boris Pinzur Supervised by: Kobi Kohai.
COLONYIntroduction September 11, Outline 1. Motivation 2. Brief Introduction to the Robots 3. Recent Colony Work 4. Current Research 5. Administrative.
LWIP TCP/IP Stack 김백규.
Server Sockets: A server socket listens on a given port Many different clients may be connecting to that port Ideally, you would like a separate file descriptor.
1-1 NET+OS Software Group Flash API Multiple flash memory bank support New Flash API introduction Detailed Flash API Function presentation Supporting.
VHDL FLI. FLI Definition FLI routines are C programming language functions that provide procedural access to information within the HDL simulator.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 03_b Protocol Layering Instructor: Dr. Li-Chuan Chen Date: 09/15/2003 Based in part upon slides of Prof.
7/26/ Design and Implementation of a Simple Totally-Ordered Reliable Multicast Protocol in Java.
Introduction to Biometrics Dr. Bhavani Thuraisingham The University of Texas at Dallas Lecture #23 Biometrics Standards - II November 14, 2005.
Class ID: Renesas Electronics America Inc. © 2012 Renesas Electronics America Inc. All rights reserved. Class ID: Using Virtual EEPROM and Flash API for.
Renesas Technology America, Inc. Flash!. CPU Rewrite CPU-rewrite is a term that refers to an Renesas MCU’s ability to erase/program its own internal Flash.
 “Zigbee is a suite of high level communication protocols using small, low power digital radios based on an IEEE 802 standard.”  Basically- short-range.
Developing a Low-Cost Robot Colony Felix Duvallet, James Kong, Eugene Marinelli, Kevin Woo, Austin Buchan, Brian Coltin, Christopher Mar, Bradford Neuman.
Recharging Process 1.Robot detects low battery 2.Robot requests a bay from the charging station over wireless 3.Charging station accepts or denies the.
Chapter 9 Hardware Addressing and Frame Type Identification 1.Delivering and sending packets 2.Hardware addressing: specifying a destination 3. Broadcasting.
RTX - 51 Objectives  Resources needed  Architecture  Components of RTX-51 - Task - Memory pools - Mail box - Signals.
Slides created by: Professor Ian G. Harris Hello World #include main() { printf(“Hello, world.\n”); }  #include is a compiler directive to include (concatenate)
Jamis Martin Trenton Andres Jay Zifer Brad Nowak.
Virtual Local Area Networks (VLANs) Part II
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Processes and Threads.
Developing a Low-Cost Robot Colony
Developing a Low-Cost Robot Colony Association for the Advancement of Artificial Intelligence November 10, 2007 James Kong Felix Duvallet Austin Buchan.
1 Quick Review on Data Link Layer – Part 2 Jonathan C.L. Liu, Ph.D. Department of Computer, Information Science and Engineering (CISE), University of Florida.
Methods Awesomeness!!!. Methods Methods give a name to a section of code Methods give a name to a section of code Methods have a number of important uses.
DMA Driver APIs DMA State Diagram Loading Driver and Opening Channel DMA Channel Attributes Loading Data to a Channel Unloading Data from a Channel.
1 Device Controller I/O units typically consist of A mechanical component: the device itself An electronic component: the device controller or adapter.
CCL MGCP Protocol Stack Shang-Chih Tsai
LonWorks Introduction Hwayoung Chae.
LAN Switching Virtual LANs. Virtual LAN Concepts A LAN includes all devices in the same broadcast domain. A broadcast domain includes the set of all LAN-connected.
COMPUTER NETWORKS Lecture-8 Husnain Sherazi. Review Lecture 7  Shared Communication Channel  Locality of Reference Principle  LAN Topologies – Star.
Common Channel Tag Mobile System RTlab Kang Moo jin.
SNMP.
Aim Of The Project To implement the obstacle avoidance and Zigbee control functions for Omni directional mobile robot.
Instructor Materials Chapter 6: VLANs
A bit of C programming Lecture 3 Uli Raich.
Direct Attached Storage and Introduction to SCSI
DT80 range Modbus capability
Chapter 5: Inter-VLAN Routing
Zigbee Networks Using Xbee Modules
VLAN Trunking Protocol
Routing and Switching Essentials v6.0
Enhancements to Mesh Discovery
Govt. Polytechnic,Dhangar
Chapter 2: Scaling VLANs
Training Module Introduction to the TB9100/P25 CG/P25 TAG Customer Service Software (CSS) Describes Release 3.95 for Trunked TB9100 and P25 TAG Release.
Short-Range Radio Frequency Networking
Short-Range Radio Frequency Networking
CCL MGCP Protocol Stack
Presentation transcript:

COLONYWIRELESS September 26, 2008

Outline 1.Motivation and Goals 2.Introduction to the XBee 3.The Wireless Library 4.Example Packet Group 5.The Token Ring 6.Questions

Why Wireless? Enables Cooperation Allows Sharing of Sensor Information – BOM readings for cooperative searching Synchronizes BOM flashes – Prevents interference from multiple robots Controls access to resources, such as charging stations External monitoring through ColoNet

XBee module ZigBee wireless protocol – Open industry standard – IEEE – Low-cost, low-power – 2.4GHZ – Widely used in sensor networks XBee wireless module – – 30m indoor range / 100m outdoor range – Simple interface

5 Selected XBee Features 16-bit Addressing Personal Area Networks (PANs)‏ – May send packets only to your PAN – Able to change PAN at any time 16 Channels – XBees in different channels cannot communicate API Mode – Provides more features Interference prevention

6 XBee Packets Send up to 100 bytes as a packet Send to a single robot, a PAN, or everyone Optionally set a frame number – Confirms reception of packets to single robots

7 Packet Types Robot to Robot – Send to a single XBee – Specified by 16-bit address – ACK confirms reception, matched with frame PAN – Send to all XBees in our current PAN Global – Send to all XBees in our channel

8 Wireless Library Simple Modular Functional #include int main()‏ { dragonfly_init(ALL_ON); wl_init(); while (1)‏ { wl_do(); do_stuff(); } return 0; }

9 Packet Groups Organize packets into groups with similar functions for modularity Examples: – Error Messages – Token Ring Each packet in a group shares a group code Individual packets have packet types Group and type uniquely identify a packet Packets can be of any length (< 100 bytes)‏

10 Packet Group Handlers Registered with the wireless library to receive packets from a specific group Contains – Group Code – Function to handle received packets – Function to handle ACKs or failures – Function to call on timer tick – Function to call when the packet group is removed

11 C Programming: Function Pointers Variables which point to the address of a function When called, call the function they point to void foo(void) { printf(“Hello World!”); } void bar(void) { printf(“Goodbye World!”); void (*func)(void) = &foo; func(); >> Hello World! func = &bar; func(); >> Goodbye World!

12 Packet Group Handlers (contd.)‏ typedef struct { unsigned int groupCode; void (*timeout_handler) (void); void (*handle_response) (int frame, int received); void (*handle_receive) (char type, int source, unsigned char* packet, int length); void (*unregister) (void); } PacketGroupHandler; Register packet groups with wl_packet_group_register

13 Packet Group Handler Example Creating a packet group to control robots through ColoNet Only need to respond to commands, so will only implement handle_receive

14 ColoNet Example (contd.)‏ void colonet_receive (char type, int source, unsigned char* packet, int length)‏ { switch (type)‏ { case BEEP: buzzer_chirp(1000, 200); break; case HUNT_RON: find_ron(); ram_ron(); break; case SELF_DESTRUCT: self_destruct(); break; }

15 ColoNet Example (contd.)‏ PacketGroupHandler colonetHandler = {COLONET_GROUP, NULL, NULL, &colonet_receive, NULL} int main()‏ { dragonfly_init(ALL_ON); wl_init(); wl_register_packet_group(&colonetHandler); while (1)‏ wl_do(); } This program will obey all of ColoNet’s commands.

16 Sending Packets Now we are able to receive packets But how do we send packets? Simply call these functions in wireless.h void wl_send_robot_to_robot_global_packet (char group, char type, char *data, int len, int dest, char frame)‏ Send a packet to a specific robot in any PAN. void wl_send_robot_to_robot_packet (char group, char type, char *data, int len, int dest, char frame)‏ Send a packet to a specific robot in our PAN. void wl_send_global_packet (char group, char type, char *data, int len, char frame)‏ Send a packet to all robots. void wl_send_pan_packet (char group, char type, char *data, int len, char frame)‏ Send a packet to all robots in our PAN.

17 Colonet Example We can receive wireless packets, but we still need to send them void send_beep(int robot)‏ { wl_send_robot_to_robot_global_packet(COLONET_GROUP, BEEP, NULL, 0, robot, 0)‏ } void hunt_ron()‏ { wl_send_global_packet(COLONET_GROUP, HUNT_RON, NULL, 0, 0); }

18 Colonet Example void bomb_squad()‏ { wl_send_global_packet(COLONET_GROUP, SELF_DESTRUCT, NULL, 0, 0); }

19 Colonet Example Now, ColoNet is able to control robots using the ColoNet packet group.

Bearing and Orientation Module (BOM)‏ IR emitter/detector ring Emitter mode – All emitters are powered simultaneously (beacon)‏ Detector mode – Detectors can be polled for analog intensity readings Used for localization – Determining relative directions of robots – Seeking charging station

21 Why do we need a token ring? If more than one BOM flashes at once, other robots won’t know which is which Only one BOM can flash at a time Token ring controls which BOM can flash

22 Token Ring Only robot with “token” may flash BOM Once BOM is flashed, the robot with the token passes it to the next robot (determined by XBee ID)‏ Sends BOM readings for the other robots with token, so that each robot has a sensor matrix of all BOM readings

23 Sensor Matrix Each robot passes its own sensor readings with the token All robots form a sensor matrix, storing relative location of all robots Various applications, including – Seeking a charging station – Cooperative Maze Solving – Following another robot

24 Ad-hoc Network If a robot does not pass the token quickly enough, or dies, the previous robot removes it from the network and it must rejoin Robots can freely join and leave the network, and the token continues to be passed To join the token ring, a robot sends a join request Preceding robot in ring adds the robot, and sends the token to him next time

25 Ad-hoc Network Advantages Leaderless Network Stable when robots die New robots can join easily

26 Token Ring Example Ron Bot 1 Bot 2 Bot 3 - Token

27 Token Ring Example Ron Bot 1 Bot 2 Bot 3 - Token

28 Token Ring Example Ron Bot 1 Bot 2 Bot 3 - Token

29 Token Ring Example Ron Bot 1 Bot 2 Bot 3 - Token

30 Token Ring Example Ron Bot 1 Bot 2 Bot 3 - Token

31 Token Ring Example Ron Bot 1 Bot 2 Bot 3 - Token Bot1 has been eliminated by ColoNet!

32 Token Ring Example Ron Bot 1 Bot 2 Bot 3 - Token Bot1 has been eliminated by ColoNet! Bot1 does not respond, so Ron realizes it is dead. He sends the token to Bot2 instead.

33 Using the Token Ring #include int main()‏ { dragonfly_init(ALL_ON); wl_init(); wl_token_ring_register(); while (1)‏ wl_do(); } To use the wireless library, set USE_WIRELESS = 1 in the Makefile

34 Summary Packet Groups to add wireless functionality Token Ring to find relative locations of robots

35 Troubleshooting Connect to dongle at 9600 Baud '+++' enters command mode Only XBees with the latest firmware support the wireless library (ATVR)‏ Xbee ID ('ATMY' to read, 'ATMY num' to set)‏ 0 < ID < XBEE_MAX_ID, must be unique Default Channel should be C (ATCH)‏ ATWR to save settings Running the motors may cause interference

36 Wireless Applications Tag / Lemmings Cooperative Maze Solving Marching Band Task Allocation Wireless monitoring and control with Colonet Autonomous Recharging Mapping

Joke Even bytes get lonely for a little bit.