为了便于理解ROS消息发布是如何实现的,结合上一章的实现流程,在此实现一下。
1. 创建catkin_ws工作空间
mkdir catkin_ws #创建catkin_ws目录
2. 在工作空间下建立src目录
cd catkin_ws #切换到工作空间中
mkdir src #创建src目录
————————————————————1.2 可通过递归方式创建————————————————————
mkdir -p ~/catkin_ws/src
3. 在src目录下建立包名目录
首先,进入到工作空间下的src目录:
cd ~/catkin_ws/src
在src目录下创建包mypackage(包名),其依赖于roscpp rospy。
catkin_create_pkg mypackage roscpp rospy
此时,mypackage包下包括include目录、src目录、CMakeLists.txt以及package.xml。
4. 在mypackage包下的src目录中编辑.cpp文件
如:
#include<iostream>
using namespace std;
int main()
{
cout<<"hello ros"<<endl;
return 0;
}
将其命名为hello.cpp,其必须与配置文件中的.cpp一样的名称。
5. 编辑、修改配置文件
打开mypackage包下面的CMakeLists.txt文件。
如上图,去掉add_executable()及target_link_libraries()前的注释符号。并修改加粗部分。
add_executable(可执行文件名称 src/源程序.cpp)
target_link_libraries(可执行文件名称 ${catkin_LIBRARIES})
6. 运行ROS
(1)回到catkin_ws目录下,输入:
catkin_make
本文的源程序就catkin_ws的工作空间下,若不是,假设其在work目录下:
catkin_make --source work #必须回到家目录下
(2)新建终端,输入:
roscore
(3)新建终端,输入:
source catkin_ws/devel/setup.bash #必不可少的部分,source 工作空间/devel/setup.bash
rosrun mypackage ros1_node # rosrun 包名 可执行文件名称