catkin make install(从源码编译安装ROS包:catkin_make_install)
从源码编译安装ROS包:catkin_make_install
在ROS中,catkin是一种构建系统,用于编译和管理ROS软件包。catkin_make是catkin构建系统的标准入口,它可以自动构建整个工作区,而catkin_make_install则可安装我们编译好的ROS软件包。下面我们将介绍如何使用catkin_make_install。
步骤一:安装ROS并设置工作空间
首先,您需要在您的计算机上安装ROS。如果您还未安装ROS,则可以通过以下命令安装ROS Melodic:
$ sudo apt install ros-melodic-desktop-full
接下来,建立一个工作空间,用于存放您想创建或修改的所有ROS包。在此示例中,我们将其设置为~/catkin_ws/目录。
$ mkdir -p ~/catkin_ws/src$ cd ~/catkin_ws/$ catkin_make
步骤二:编写ROS软件包
在编写ROS软件包之前,我们需要先激活我们的工作空间。如下所示:
$ source devel/setup.bash
在我们的src目录下创建一个名为my_package的新软件包:
$ cd ~/catkin_ws/src$ catkin_create_pkg my_package roscpp
在my_package/src目录中,创建一个名为my_node.cpp的新节点,并为ROS添加一个节点:
$ cd ~/catkin_ws/src/my_package/src$ touch my_node.cpp
并将以下内容添加到my_node.cpp文件中:
#include \"ros/ros.h\"#include \"std_msgs/String.h\"int main(int argc, char **argv){ ros::init(argc, argv, \"my_node\"); ros::NodeHandle n; ros::Publisher pub = n.advertise(\"my_topic\", 1000); ros::Rate loop_rate(10); int count = 0; while (ros::ok()) { std_msgs::String msg; std::stringstream ss; ss << \"hello world \" << count; msg.data = ss.str(); ROS_INFO(\"%s\", msg.data.c_str()); pub.publish(msg); ros::spinOnce(); loop_rate.sleep(); ++count; } return 0;}
添加以下内容以确保包含必要的依赖项:
find_package(catkin REQUIRED COMPONENTS roscpp std_msgs)catkin_package( INCLUDE_DIRS include LIBRARIES my_package CATKIN_DEPENDS roscpp std_msgs)
在my_package目录下创建一个名为CMakeLists.txt的新文件,并将以下内容添加到该文件中:
cmake_minimum_required(VERSION 2.8.3)project(my_package)find_package(catkin REQUIRED COMPONENTS roscpp std_msgs)catkin_package( INCLUDE_DIRS include LIBRARIES my_package CATKIN_DEPENDS roscpp std_msgs)include_directories( include ${catkin_INCLUDE_DIRS})add_executable(my_node src/my_node.cpp)target_link_libraries(my_node ${catkin_LIBRARIES})
步骤三:编译ROS软件包
现在可以使用catkin_make构建ROS软件包,如下所示:
$ cd ~/catkin_ws/$ catkin_make
现在我们已经成功编译了我们的软件包,我们可以在ROS中运行它了。
步骤四:安装ROS软件包
现在,我们已经成功地编译了我们的ROS软件包,我们可以使用catkin_make_install命令将它们安装到ROS系统中去。在终端中,导航到catkin工作空间:
$ cd ~/catkin_ws/
然后使用以下命令安装my_package软件包:
$ catkin_make install
在安装后,您可以通过以下方式运行my_node节点:
$ rosrun my_package my_node
现在,您已经成功地从源代码构建安装了ROS软件包。