Notas de estudio de ROS (tres): conceptos básicos de programación

Crear paquete de funciones

Cree un espacio de trabajo y luego cree un paquete de funciones en la carpeta src

~$ mkdir -p catkin_ws/src	
~$ cd catkin_ws/src
~/catkin_ws/src$ catkin_create_pkg 功能包名称 依赖包名称列表(roscpp rospy std_msgs等)

El comando catkin_create_pkg genera el archivo CMakeLists.txt y el archivo package.xml, así como el directorio de inclusión y el directorio src requeridos por el sistema de compilación catkin al crear un paquete de funciones.

~/catkin_ws/src$ ls 功能包名称
CMakeLists.txt  include  package.xml  src

CMakeLists.txt 文件

El archivo CMakeLists.txt se puede utilizar para configurar la creación de archivos ejecutables, la creación de prioridad de paquetes dependientes y la creación de vinculadores.

cmake_minimum_required(VERSION 2.8.3)
project(功能包名称)
find_package(catkin REQUIRED COMPONENTS
  依赖包
)
add_message_files(
  FILES	#将引用当前功能包目录下的msg目录中的指定msg文件
  custommsg.msg
)
add_service_files(
  FILES #将引用当前功能包目录下的srv目录中的指定srv文件
  customsrv.srv
)
generate_message(
  DEPENDENCIES #将DEPENDENCIES选项设置为使用std_msgs消息包
  std_msgs
)
include_directories(
  ${
    
    catkin_INCLUDE_DIRS}
)
add_executable(可执行文件名称 src/文件名.cpp)	#引用src目录中的指定文件生成可执行文件
target_link_libraries(可执行文件名称 ${
    
    catkin_LIBRARIES}) #将库和可执行文件进行链接

archivo package.xml

El archivo package.xml es un archivo de configuración ROS necesario escrito en formato de codificación XML, que incluye el nombre del paquete de funciones, el autor, la licencia y la información del paquete dependiente.

<?xml version="1.0"?>
<package format="2">
  <name>功能包名称</name>
  <version>0.0.0</version>
  <description>The 功能包名称 package</description>
  <maintainer email="系统用户名@todo.todo">系统用户名</maintainer>
  <license>TODO</license>
  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>依赖包</build_depend>
  <build_export_depend>依赖包</build_export_depend>
  <exec_depend>依赖包</exec_depend>
</package>

Ejemplo simple

1. Cree un directorio de trabajo e ingrese al directorio src

~$ mkdir -p catkin_ws/src
~$ cd catkin_ws/src

2. Cree un paquete de funciones, ingrese el directorio src en él y cree un archivo c ++

~/catkin_ws/src$ catkin_create_pkg beginner roscpp
~/catkin_ws/src$ cd beginner/src
~/catkin_ws/src/beginner/src$ vim hello.cpp

3. Escribe un programa simple, salida hola, mundo.

#include <ros/ros.h>
#include <iostream>
using namespace std;

int main(int argc, char **argv)
{
    
    
	ros::init(argc, argv, "hello");
	cout << "hello,world" << endl;
	return 0;
}

4. Agregue la siguiente declaración al final del archivo CMakeLists.txt

add_executable(hello src/hello.cpp)
target_link_libraries(hello ${
    
    catkin_LIBRARIES})

5. Regrese al directorio de trabajo de nivel superior y cree el sistema.

~/catkin_ws$ catkin_make

6. Primero, inicie el nodo maestro

~/catkin_ws$ roscore

Luego, ejecuta el nodo

~/catkin_ws$ rosrun beginner hello
hello,world

Si se produce el siguiente error al ejecutar el nodo

~/catkin_ws$ rosrun beginner hello
[rospack] Error: package 'beginner' not found

Ejecute el siguiente comando para resolver

~/catkin_ws$ source ./devel/setup.bash

Supongo que te gusta

Origin blog.csdn.net/qq_42386127/article/details/98624911
Recomendado
Clasificación