← Back to Home
advertisement
Robot Operating System: Introduction

Robot Operating System: Introduction

My current goal is to build a pickup and delivery robot with automatic navigation. Following the project outline article, I researched the necessary hardware and software (phase 1) and built a moving robot prototype (phase 2). Now the goal is to use robotics middleware software to simulate the robot with its chassis, motion capabilities and sensors. During my research on robotic middleware, I came across the ROS project, an acronym for Robotic Operating System. ROS is my robotics middleware of choice. It's an excellent open source project with several years under its belt: a large number of software packages controlling actuators, sensors and data processing libraries, and a complete set of tools, from command line tools to GUI tools to start, query, simulate and control your robot. It is widely used in DIY robotics projects and is used in industry: recently, NASA announced the use of ROS in its VIPER robot to explore the moon. This article provides an overview of the basics of ROS. In the following articles, I will detail how to configure ROS on a computer and how to start programming with it. This article originally appeared on my blog admantium.com. Main components In essence, ROS provides high-level abstraction for governing a robotic system. In essence, this system consists of interconnected Nodes. A node is any type of computer (a workstation, your laptop, your single-board computer, or a microcontroller) that runs a ROS-compatible program. The nodes form a coherent bus system that provides a standard way to exchange information over TCP/IP. ROS supports two types of how nodes can exchange information. The first type is messages with a strictly defined data type. Messages are published within topics. Topics separate information from ROS programs logically. For example, a sensor could publish its information as a topic, or a topic could provide information about the robot's current position. Nodes can publish information on topics or can subscribe to a topic to obtain the information. Source: official ROS documentation The second type is services. They also define the specific data types that will be used for the request and response. Instead of asynchronous communication involving topics, clients of the service can invoke the server directly (note: it can only be on the server). A special type of service is an action: it works like a service, but it also creates a special topic in which it transmits data to the node that made the request. _Source: official ROS documentation ROS communication patterns The core concepts of ROS can be selected or combined to allow different communication mechanisms. You can use asynchronous and anonymous communication with the publish-subscribe system. In this mode, you must take care that messages are produced and consumed at the same rate, or you must define a maximum threshold value for the topic: once reached, new messages can no longer be added. The other method is directed and synchronous communication with services and/or actions. Here you need to ensure that the server responsible for responding to requests is available and can process the request. To help with debugging communication, you can also use the following tools: - Message replay: ROS stores all messages in files, which can be used for diagnostics or replay once new nodes join the - Distributed data store: a global key value store with which components can store values. ROS system When started, the ROS system creates a global graph, a runtime peer-to-peer abstraction of all processes running on all nodes. This graph instantiates the core ROS concepts of nodes, messages, and services. The master node defines the central search mechanisms with which the data is structured. This data structure contains all nodes and month.
advertisement

Related Articles

advertisement