ROS研究ノート(3つ):プログラミングの基本

機能パックを作成する

ワークスペースを作成し、srcフォルダーの下に関数パッケージを作成します

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

catkin_create_pkgコマンドは、CMakeLists.txtファイルとpackage.xmlファイル、および関数パッケージの作成時にcatkinビルドシステムに必要なincludeディレクトリとsrcディレクトリを生成します。

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

CMakeLists.txt文件

CMakeLists.txtファイルを使用して、実行可能ファイルの作成、依存パッケージの優先作成、およびリンカーの作成を設定できます。

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}) #将库和可执行文件进行链接

package.xmlファイル

package.xmlファイルは、関数パッケージ名、作成者、ライセンス、および依存パッケージ情報を含む、XMLエンコード形式で記述された必要なROS構成ファイルです。

<?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>

簡単な例

1.作業ディレクトリを作成し、srcディレクトリに入ります

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

2.関数パッケージを作成し、その中にsrcディレクトリを入力して、c ++ファイルを作成します。

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

3.簡単なプログラムを作成し、hello、worldを出力します

#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.CMakeLists.txtファイルの最後に次のステートメントを追加します

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

5.最上位の作業ディレクトリに戻り、システムを構築します

~/catkin_ws$ catkin_make

6.まず、マスターノードを起動します

~/catkin_ws$ roscore

次に、ノードを実行します

~/catkin_ws$ rosrun beginner hello
hello,world

ノードの実行中に次のエラーが発生した場合

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

次のコマンドを実行して解決します

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

おすすめ

転載: blog.csdn.net/qq_42386127/article/details/98624911