当前位置:网站首页>Ros2 - function package (VI)
Ros2 - function package (VI)
2022-07-05 06:51:00 【Me and nano】
ROS2 Robot operating system
List of articles
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
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
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.
package.xml The main contents of the document are as follows , Contains the copyright description of the Feature Pack , And various dependent declarations .
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 .
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.
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 .
setup.py The file also contains some copyright information , besides , also “entry_points” Configured program entry
边栏推荐
- Orin two brushing methods
- What is linting
- Package webapp or H5 pages into apps
- Rehabilitation type force deduction brush question notes D3
- 你心目中的数据分析 Top 1 选 Pandas 还是选 SQL?
- MySQL (UDF authorization)
- ROS2——Service服务(九)
- [MySQL 8.0 does not support capitalization of table names - corresponding scheme]
- CGroup CPU group source code analysis
- Integer to 8-bit binary explanation (including positive and negative numbers) scope of application -127~+127
猜你喜欢
随机推荐
ROS2——初识ROS2(一)
NVM Downloading npm version 6.7.0... Error
La redirection de l'applet Wechat ne déclenche pas onload
The difference between new and malloc
GDB code debugging
Volcano resource reservation feature
Integer to 8-bit binary explanation (including positive and negative numbers) scope of application -127~+127
postmessage通信
[MySQL 8.0 does not support capitalization of table names - corresponding scheme]
Skywalking all
6-4 search by serial number of linked list
mingling
2022年中纪实 -- 一个普通人的经历
The problem of Chinese garbled code in the vscode output box can be solved once for life
Redis-02. Redis command
解读最早的草图-图像翻译工作SketchyGAN
LSA Type Explanation - lsa-1 [type 1 LSA - router LSA] detailed explanation
程序中的负数存储及类型转换
摄像头的MIPI接口、DVP接口和CSI接口
MySQL (UDF authorization)