This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
projects:3dmosaic [2011/12/06 16:31] claes |
projects:3dmosaic [2012/06/13 13:38] claes |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== 3D Mosaic ====== | ====== 3D Mosaic ====== | ||
- | {{http:// | + | {{http:// |
+ | Project webpage: [[http:// | ||
- | Project webpage: | + | [[http:// |
- | ===== The Server Program ===== | + | [[http:// |
- | ==== Specs and consideration ==== | + | |
- | === TCP or UDP === | + | ===== Vision Group ===== |
- | All data that is transmitted should also be received. If the tractor starts to drive before the cameras are done it will cause error in the images. | + | {{http:// |
- | Error handling is already implemented in the TCP Protocol. Communication is therefore more secure when using TCP than when using UDP. | + | From left: |
+ | Jörn, Dejan, Florian, Hans-Werner, | ||
- | There are no Hard Real-Time demands in the communication between the programs, so the time the TCP uses on error handling is not going to be an issue. | + | ===== Work ===== |
+ | [[projects: | ||
- | The protocol is going to be based on a Socket interface using TCP. | + | [[projects: |
- | === Network and IP-range === | ||
- | The Network will be a private network using 16-bit IPv4. IP-range on the network will start at 192.168.0.0. The network will be using static IP addresses, the address list is specified below. | ||
- | The connection between the programs are made with a standard socket on a specified port. | ||
- | The network is made with a switch | ||
- | TrendNet | ||
- | 10/100 Mbps Fast Ethernet Switch | ||
- | Te100-S88Eplus | ||
- | The network will be tested in January, beacause the current network is also for the [[robots: | ||
- | |||
- | ^ Program | ||
- | | Server | ||
- | | Client - Bumblebee | ||
- | | Client - 2D Cam | 192.168.0.3 | Not defined | | ||
- | | Client - LaserScanner | 192.168.0.4 | Not defined | | ||
- | | Ibeo - LaserScanner | ||
- | If anything is missing please let me know so I can update the list. | ||
- | |||
- | |||
- | === Protocol === | ||
- | The protocol will be based on the XML format((http:// | ||
- | |||
- | Most guidelines recommend that data goes in elements, metadata in attributes. This protocol will be compliant with these guidelines((http:// | ||
- | |||
- | == Tags & Attributes == | ||
- | < | ||
- | Is used to indentify each program connected to the server. | ||
- | [Program ID] | ||
- | is the name you chose for your program. The server will use this name for identification. It is stored as a string in the server program. It may contain letters (a-z), numbers (0-9) and spaces ( ). I do not not how Java deals with special charecters (ä, | ||
- | |||
- | It will be encoded in ISO-8859-1 (ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1) see [[http:// | ||
- | |||
- | == Detailed description == | ||
- | Programs that want to communicate with the server must send this after succesful connecting to the Socket of The Server Program | ||
- | <sxh xml;> | ||
- | < | ||
- | </ | ||
- | The server will respond with | ||
- | <sxh xml> | ||
- | < | ||
- | </ | ||
- | When the server is ready it will send this to the client | ||
- | <sxh xml> | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | when the server has transmitted the < | ||
- | This will be sent at 20 Hz to all clients | ||
- | <sxh xml> | ||
- | <!--Sent from the server--> | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | <height unit=" | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | When the tractor has stopped and is waiting for the cameras to take their pictures, the server will wait for this command from the clients | ||
- | <sxh xml> | ||
- | < | ||
- | </ | ||
- | There will be a 2 min timeout on this command. So if there is a problem with one of the clients the rest will continue with the mission. If anyone need more than 2 min let me know. | ||
- | |||
- | If one of the clientprograms need a break from the data send this to the server | ||
- | <sxh xml> | ||
- | <break id=" | ||
- | </ | ||
- | This will stop the data transmission to the client, but the client will still be connected to the server. The sever will respond with | ||
- | <sxh xml> | ||
- | <break id=" | ||
- | </ | ||
- | |||
- | When the client wants to receive data again send | ||
- | <sxh xml> | ||
- | < | ||
- | </ | ||
- | The sever will respond with | ||
- | <sxh xml> | ||
- | <break id=" | ||
- | </ | ||
- | and transmit data in the next 20 Hz program cycle. | ||
- | |||
- | If the client wants to disconnect from the server send this | ||
- | <sxh xml> | ||
- | < | ||
- | </ | ||
- | The sever will respond with | ||
- | <sxh xml> | ||
- | < | ||
- | </ | ||
- | and disconnect the client from th socket. | ||
- | |||
- | == Download examplefile == | ||
- | <file xml protocol.xml> | ||
- | <!--Sent from the server--> | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | <height unit=" | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | |||
- | <!--Sent from the clients--> | ||
- | < | ||
- | |||
- | <!--when connected to the server sent your program ID to the server--> | ||
- | < | ||
- | |||
- | <!--the server will respond with--> | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | |||
- | <!--If the client program needs a break--> | ||
- | <break id=" | ||
- | <!--the server will respond with--> | ||
- | <break id=" | ||
- | |||
- | <!--When the break is over--> | ||
- | < | ||
- | <!--the server will respond with--> | ||
- | <break id=" | ||
- | |||
- | < | ||
- | < | ||
- | |||
- | </ | ||
- | |||
- | ==== The Server Program ==== | ||
- | The program will be developed in Java. It will accept multiple clients. | ||
- | |||
- | Each new tag will be sent in a new string. This means that the < | ||
- | <sxh xml> | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | </ | ||
- | </ | ||
- | |||
- | The < | ||
- | <sxh xml> | ||
- | < | ||
- | </ | ||
- | |||
- | The < | ||
- | <sxh xml> | ||
- | < | ||
- | < | ||
- | < | ||
- | < | ||
- | </ | ||
- | ==== References ==== | ||
- | [[http:// | ||
- | |||
- | [[http:// | ||
- | |||
- | [[http:// | ||
- | |||
- | ====== Vision Group ====== | ||
- | {{http:// | ||
- | |||
- | From left: | ||
- | Jörn, Dejan, Florian, Hans-Werner, |