1 创建工作区的目录
mkdir catkin_WS
说明,这个目录是项目的整个工作区,不同项目不能一样,每个工作区下面的src目录中可以有多个包,对应可生成多个可执行文件。
2 进入工作区目录
创建src目录
mkdir src
这个是源码目录,目前没试过改成其他名字,估计是固定的。
3 进入src目录
创建包
catkin_create_pkg hello_ros
这个是包名,可以改成其他名字,按照ros规定,建议最好都是小写的。
4 进入包目录
将cpp代码拷贝到此目录,或者自行新建cpp文件,并编写内容。类似如下。后来发现,此目录下也可以有多个cpp,生成多个可执行文件。
#include <ros/ros.h>
int main(int argc, char **argv)
{
ros::init(argc,argv,"hello");
ros::NodeHandle n;
ROS_INFO("Hello ROS!");
ros::spinOnce();
}
5 创建包时,该目录下一个CMakeLists.txt和package.xml。具体可参见cmake和ros说明。注意工作空间下也有一个CMakeLists.txt,这个一般不需要修改。
6 去掉注释的CMakeList.txt文件主要内容如下:
cmake_minimum_required(VERSION 2.8.3)
project(hello_ros)
find_package(catkin REQUIRED COMPONENTS roscpp)
include_directories( include ${catkin_INCLUDE_DIRS})
add_executable(hello hello.cpp)
target_link_libraries(hello ${catkin_LIBRARIES})
其中第三行要加上roscpp,格式如上。最后两行是需要我们加上去的,其中hello.cpp是有相对与包的相对路径要求的。比如现在就在包目录下,就这样写。
如果在包目录下,新建了一个src目录,里面有cpp文件,则要写成src/hello.cpp的形式。
7 然后回到工作区目录
执行
catkin_make
对整个项目或者说整个工作空间进行编译。并生成可执行文件。
8 然后,如果是Ubuntu,就执行
source devel/setup.sh
如果是windows,则执行
cd devel
setup.bat
cd ..
9 启动该程序
rosrun hello_ros hello
10 当然,如果没有启动roscore,或者主机配置等有问题,也是会启动失败的。不过相信你已经解决了这些问题。