C++实现
1. 创建工作空间并初始化
创建工作目录demo01_ws,并在该文件夹下创建src文件夹
mkdir -p demo01_ws/src
进入到该目录下
cd demo01_ws/
初始化
catkin_make
这时在demo01_ws目录下除了src文件夹外,多处了两个文件夹。
![在这里插入图片描述](https://img-blog.csdnimg.cn/aec466f70a6e4abaa9684f0997f7c210.png
2. 进入src创建ros包并添加依赖
进入到src目录下
cd src
添加包依赖
catkin_create_pkg helloworld roscpp rospy std_msgs
进入src目录,发现多了一个helloworld目录和一个文件。使用上面的命令,会生成一个helloworld的功能包,该功能包依赖于roscpp,rospy,std_mags,其中roscpp是使用C++实现的库,rospy是使用python实现的库,std_msgs是消息标准库,创建ROS功能包时一般都会依赖这三个库实现。
再进入helloworld目录,是ros创建好的项目结构。
3. 进入功能包的src目录编写源文件(helloworld_c.cpp)
//1.包含 ros 的头文件
#include"ros/ros.h"
//2.编写 main 函数
int main(int argc,char *argv[])
{
//3.初始化ros节点
ros::init(argc,argv,"hello_node");
//4.输出日志
ROS_INFO("hello world");
return 0;
}
4. 编写配置文件
编写CMakeList.txt配置文件。
找到第136行的add_execatable。
将其前面的注释去掉。
修改该处的代码(意思是通过这个haha可以映射到这个cpp文件):
再将149行的target_link_libraries的注释去掉。
并修改该处的代码:
最后保存退出。
5. 编译
在demo01_ws下进入终端并执行下面命令编译:
catkin_make
编译成功。
6. 执行
新开一个终端,使用roscore命令启动ros核心。
在原来的终端中,使用source ./devel/setup.bash
,添加环境变量;再执行rosrun helloworld haha
。