当前位置:网站首页>Ros2 - function package (VI)

Ros2 - function package (VI)

2022-07-05 06:51:00 Me and nano

ROS2 Robot operating system


Preface

Every robot may have many functions , For example, mobile control 、 Visual perception 、 Autonomous navigation, etc , If we put the source code of these functions together, of course, it is also possible , But when we want to share some of these functions with others , You will find that the code is mixed together , It's hard to separate .

One 、 What is the feature pack

 Insert picture description here

for instance , We have a lot of red beans 、 Mung bean 、 soybean , Suppose they are all in a bag , If you just want to take out the soybeans , Do you have to find out one by one among the colorful beans , The more the number of , The more headache you get ; If we put beans of different colors in three different bags , When you need to take out some beans , You can find it immediately .

This is the principle of function package , We divide the code of different functions into different function packages , Try to reduce the coupling relationship between them , When need is in ROS When sharing with others in the community , Just explain how to use this function pack , Others can use it soon .

So the mechanism of the function package , Is to improve ROS One of the important methods of software reuse rate in .

Two 、 Specific use of function package

1. Create Feature Pack

We can use this instruction :

ros2 pkg create --build-type <build-type> <package_name>

ros2 In command :

**pkg:** Indicates the functions related to the function package ;
**create:** Means to create a function package ;
build-type: Indicates that the newly created function pack is C++ still Python Of , If you use C++ perhaps C, Then this is the same as ament_cmake, If you use Python, Just follow ament_python;
**package_name:** Name of the new function package .
For example, create in the terminal respectively C++ and Python Version of the Feature Pack :

cd ~/dev_ws/src
ros2 pkg create --build-type ament_cmake learning_pkg_c       # C++
ros2 pkg create --build-type ament_python learning_pkg_python # Python

 Insert picture description here

2. Compile function packs

In the created function package , We can continue to write the code , Then you need to compile and configure environment variables , In order to operate normally :

cd ~/dev_ws/src
colcon build   #  Compile all feature packs in the workspace 
source install/local_setup.bash

3. Structure of function package

C++ Function pack

Take a look first C++ Type of function pack , There must be two files :package.xml and CMakerLists.txt.
 Insert picture description here
package.xml The main contents of the document are as follows , Contains the copyright description of the Feature Pack , And various dependent declarations .
 Insert picture description here
CMakeLists.txt Files are Compilation Rules ,C++ The code needs to be compiled to run , So you must set how to compile in this file , Use CMake grammar .
 Insert picture description here

Python Function pack

C++ The function package needs to compile the source code into an executable , however Python Language is analytic , No compilation required , So there will be some differences , But there will also be these two files :package.xml and setup.py.
 Insert picture description here
package.xml The main contents of the document and C++ Version function pack , Contains the copyright description of the Feature Pack , And various dependent declarations .
 Insert picture description here
setup.py The file also contains some copyright information , besides , also “entry_points” Configured program entry
 Insert picture description here

原网站

版权声明
本文为[Me and nano]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050635158036.html