My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
Communication  
One-sentence summary of this page.
Updated Dec 10, 2012 by an...@norture.com

Communication between Applications(Windows) and Hardware(Linux)

This page outlines the exchanging message(commands) between Applications and Hardware via Server Client architecture.

Sending commands as client HTTP request

If Gesture & Speech Windows application wants to send a velocity command, the TCP client part of the application sends the command as an ordinary HTTP request on port 8080 containing linear and angular velocity values. The command is received over TCP/IP connection by the server in Linux, which is parsed to get the corresponding velocities. The values are then passed as a ROS message to the node turtlebot_node and the Turtlebot executes the command. The below figure explains this scenario.

Interactions among Server(Linux), ROS and Robot

The robot is connected to a Linux Virtual Machine running ROS (Robot Operating System)via serial port using USB to serial converter. ROS provides the framework for communication with the Turtlebot Roomba. It exposes the node turtlebot_node on which we can publish velocity commands to. Our server program which runs independently creates another ROS node turtlebot_cmdserver and uses it to publish the received commands from the Gesture & Speech application on Windows. The following diagram illustrates the connection between them.

Powered by Google Project Hosting