Beijing Smart Jia talks about robot operating system - ROS

ROS (Robot Operating System) is a computer operating system architecture designed for robot software development. It is an open source, meta-level operating system (post-operating system) that provides services similar to operating systems, including hardware abstraction descriptions, underlying driver management, execution of shared functions, inter-program messaging, and program distribution package management. Provides tools and libraries for acquiring, building, writing, and executing multi-machine fusion programs.

ROS's operational architecture is a processing architecture that uses ROS communication modules to implement loosely coupled network connections between modules. It performs several types of communication, including service-based synchronous RPC (remote procedure call) communication, Topic-based asynchronous Data stream communication, as well as data storage on the parameter server.

development Goals

The primary design goal of ROS is to increase code reuse rates in the field of intelligent robot development. ROS is a distributed processing framework (aka Nodes). This allows executables to be designed separately and loosely coupled at runtime. These processes can be packaged into packages and stacks for easy sharing and distribution. ROS also supports a federated system of code bases. Collaboration can also be distributed. This design from the file system level to the community level makes it possible to independently decide on development and implementation. All of the above functions can be implemented by the basic tools of ROS.

In order to achieve the primary goal of "sharing and collaboration," people have developed other supporting goals in the ROS architecture:

“Lightweight”: ROS is designed to be as convenient and convenient as possible. You don't have to replace the main frame with the system, because the code written by ROS can be used in other robot software frameworks. There is no doubt that ROS is easier to integrate with other robot software frameworks. In fact ROS has completed integration with OpenRAVE, Orocos and Player.

ROS-agnostic library: [agnostic: agnostic] The proposed development model is to write the ROS-agnostic library using the clear function interface.

Language independence: The ROS framework is easy to implement in any programming language. We've been able to run smoothly in Python and C++, with Lisp, Octave, and Java libraries added.

Simple test: ROS has a built-in unit/combination set test framework called "rostest". This makes integration debugging and decomposition debugging easy.

Scalability: ROS is suitable for large real-time systems and large-scale system development projects.

ROS concept

ROS has three levels of concepts: Filesystem level, Computation graph level, and Communication level. The following content summarizes these levels and concepts. In addition to these three levels of concept, ROS also defines two names -- the Package resource name and the Graph resource name. It will also be mentioned in the following.

ROS's Filesystem Level

The file system layer concept is the resource you encounter in the disc, for example:

Packages: The basic organization of ROS, which can contain any format file. A package can contain files that are processed during ROS execution, a ROS dependent library, a data collection, configuration files, or some useful files together.

Manifests: Manifests (manifest.xml) provides information about the package metadata, including its license information and package dependencies, as well as language property information like compiled flags (compilation optimization parameters).

Stacks: Stacks is a collection of Packages that provides a complete feature like the "navigation stack" Stack associated with the version number and the key to how ROS software is released.

Manifest Stack Manifests: Stack manifests (stack.xml) provides information about Stack metadata, including its licensing information and stack dependencies.

Message (msg) types: Information description, location in path: my_package/msg/MyMessageType.msg, defines the data type in ROS's messages ROS.

Service (srv) types: The service description, located in the path: my_package/srv/MyServiceType.srv, defines this request and the corresponding data structure in the ROS services.

ROS Computation Graph Level

The Computation Graph Level is a centralized processing of all data using ROS' P2P (peer-to-peer network transport protocol) network. The basic Computation Graph concepts include Node, Master, Parameter Sever, messages, services, topics, and bags, all of which transfer data to the Graph in different ways.

Nodes: Nodes are a series of running programs. ROS are designed as modular systems at a certain granularity. A robot control system usually contains many Nodes. For example, a Node controls the laser radar, a Node controls the wheel motor, a Node handles the positioning, a Node performs the path planning, and the other provides a graphical interface. A ROS node is written by the Libraries ROS client library, such as roscpp and rospy.

Master: ROS Master provides a registration list and a lookup for other calculations. Without Master, the node will not be able to find other nodes, exchange messages or invoke services.

Server Parameter Server: The parameter server stores data in the form of a key. Currently, the parameter server is part of the hosting.

Messages: Messages are passed between nodes through messages. A message is a simple data structure that contains some areas defined by the class. Supports standard raw data types (integer, float, boolean, etc.) and raw array types. Message can contain any nested structure and array (very similar to C language structure structs)

Topics: Messages are delivered as a publish/subscribe. A node can post messages in a given topic. Topic is a name used to describe the message content. A node focuses on and subscribes to a specific type of data for a topic. There may be multiple nodes publishing or subscribing to the same topic at the same time; there may be a topic that publishes or subscribes to multiple topics at the same time. In general, publishers and subscribers do not understand each other's existence. The main concept is to decouple and separate the publisher and the demander of the information. Logically, topic can be seen as a strictly normalized message bus. Each bus has a name, and each node can be connected to the bus to send and receive messages of a standard type.

Services: The publish/subscribe model is a very flexible communication model, but many-to-many, one-way transport is not appropriate for "request/response" interactions that are often required in distributed systems. Therefore, "request/response" is implemented through services. This communication is defined as a pair of messages: one for the request and one for the response. Suppose a node provides a service to provide the next name and the client sends a request message using the service and waits for a reply. ROS's client library typically provides such interactions in a remote call.

Bags: Bags is a format for storing and playing ROS messages. Bags is an important mechanism for storing data. For example, sensor data is difficult to collect but is necessary for development and testing.

In the ROS calculation diagram, the ROS Master works as a name service. It stores the registration information for topics and services for the nodes of the ROS. Nodes communicate with the Master to report their registration information. When these nodes communicate with the master, they can receive information about other registered nodes and establish connections with other registered nodes. The Master also returns these nodes when these registration information changes, while allowing the node to dynamically create a connection with the new node.

The connection between the nodes is straightforward; the Master only provides the query information, just like a DNS server. Subscribing a node to a topic will require a connection to the node that published the topic, and will establish the connection based on the agreement to the connection. The most widely used connection protocol in ROS is TCPROS, which uses the standard TCP/IP interface.

Such an architecture allows for decoupled operations, in which large or more complex systems are established, with the names method being an effective means. The names method plays an extremely important role in the ROS system: topics, services, and parameters have their own names. Each ROS client library supports renaming, which is equivalent to that each successfully compiled program can run in another form like [name].

For example, to control a Hokuyo laser range-finder, we can start the hokuyo_node driver, which can talk to the laser and publish sensor_msgs/LaserScan information under the "scan" topic. To process the data, we might write a node that uses laser_filters to subscribe to the "scan" topic. After the subscription, our filter will automatically start receiving information from the laser. Notice how the two sides work off the hook. All nodes of hokuyo_node will complete the "scan" release without knowing if a node is subscribed. All filters will complete a "scan" subscription, whether or not they know if a node is publishing a "scan". The two nodes can be started, terminated, or restarted in any order without causing any errors.

In the future we may add another laser to our robot, which will cause us to reset our system. All we need to do is remap the names we have used. When we started our first hokuyo_node, we can say that it replaced the map scan with base_scan and did the same thing with our filter node. These nodes will now be communicated with the topic of base_scan instead, and will no longer listen for "scan" topic information. Then we can start another hokuyo_node for our new laser rangefinder.

Shisha Hookah Aluminum Foil

Aluminum foil is prepared in aluminium ingots and used in a multitude of applications from everyday household foil to heavy-duty, heat-resistant industrial foil rolls. Aluminum foil is extremely pliable and can be bent or wrapped around objects with ease. Millions of tons of aluminum foil are used throughout the world to protect and package foods, cosmetics and chemical products.

Household foil is used in cooking, freezing, baking and other food packaging,lt is convenient and safe to use,has no smell and no penetration, lt will keep food fresh after packing storage in the refrigerator and can be used in oven,steam etc.

Shisha Hookah Aluminum Foil,Hookah Aluminum Foil Shiny Side,Hookah Bowl Without Foil,Hookah Screen Vs Foil

Zhengzhou Eming Aluminium Industry Co., Ltd. , https://www.emingalufoil.com

Posted on