ROS Hello World(C++)
编译过程
1.创建工作空间并初始化
mkdir -p 自定义工作空间名称/src
cd 自定义工作空间名称
catkin_make
例如
mkdir -p helloworld/src
cd helloworld/
catkin_make
2.进入src创建ROS包并添加依赖
cd src/
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs
例如
cd src/
catkin_create_pkg chello roscpp rospy std_msgs
3.进入ROS包的src目录编辑源文件
cd 自定义ROS包名
cd src/
vim 源文件名.cpp
#include "ros/ros.h"
int main(int argc,char *argv[])
{
//执行ros节点初始化
ros::init(argc,argv,"hello")//hello是节点名称
//创建ros节点句柄(非必须)
ros::NodeHandle n;
//控制台输出,hello world
ROS_INFO("hello world");
return 0;
}
例如
cd chello
cd src/
vim chello.cpp
#include "ros/ros.h"
int main(int argc,char *argv[])
{
//执行ros节点初始化
ros::init(argc,argv,"hello")//hello是节点名称
//创建ros节点句柄(非必须)
ros::NodeHandle n;
//控制台输出,hello world
ROS_INFO("Hello World");
return 0;
}
4.编辑ROS包下的Cmakelist.txt文件
cd ..
用于进入第2步中包的目录下
vim Cmakelist.txt
添加下述代码(或者 取消注释并修改Cmakelist.txt中的add_executable
和target_link_libraries
)
add_executable(步骤3的源文件名
src/步骤3的源文件名.cpp
)
target_link_libraries(步骤3的源文件名
${catkin_LIBRARIES}
)
例如
add_executable(chello
src/chello.cpp
)
target_link_libraries(chello
${catkin_LIBRARIES}
)
5.返回工作空间目录并编译
cd 自定义的工作空间
catkin_make
生成build devel
例如 从包目录chello下
cd ..
cd ..
catkin_make
文件结构如下
执行过程
新建终端1:在工作空间执行 roscore
新建终端2:
cd 工作空间
source ./devel/setup.bash
(如果在小车的bashrc里面已经加入过 可以省略这一步)
rosrun 自定义包名 C++节点
例如
cd helloworld/
source ./devel/setup.bash
rosrun chello chello
运行结果如下图所示