(1)参考网站(点击此处)安装ros.
(2)测试ros是否成功安装的方法:成功运行小乌龟程序,成功即可!
Ctrl+Alt+T三次,打开三个终端,分别在三个终端命令行输入:
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
其中:rosrun 后两个参数,第一个为包名,第二个为可执行文件名。
若出现小乌龟窗口,并能用方向键控制小乌龟的移动表示安装成功!
mkdir test
然后进入这个工作区:
cd test
在你的工作区里创建一个名叫src的子目录:
mkdir src
这个叫src的子目录将用于存放功能包的源代码。
cd src
在这个目录下运行:
# catkin_create_pkg package name
catkin_create_pkg hello_ros
这个包可以起任何名字(package name=hello_ros)。这个功能包创建命令创建了一个存放这个功能包的目录,并在那个目录下生成了两个配置文件:
一个叫package.xml。
一个叫CMakeLists.txt, 它是一个CMake的脚本文件。这个文件包含了一系列的编译指令,包括生成可执行文件,需要哪些源文件,以及哪里可以找到所需头文件和链接库。
当做完了以上两步,现在就可以编写ROS程序了。
在src/hello_ros下创建一个名为hello.cpp的源文件,放到功能包文件夹中,挨着package.xml和CMakeLists.txt。
代码如下:
#include
int main(int argc, char **argv)
{
ros::init(argc,argv,"hello");
ros::NodeHandle n;
ROS_INFO("Hello ROS World!");
ros::spinOnce();
}
其中,
vim CMakeLists.txt
其中,
编辑内容先按键盘 i
退出编辑 esc
进入命令行 Shift + ; :wq保存编辑内容并退出关闭文件。
该文件默认版本有如下行:
find_package(catkin REQUIRED)
所依赖的其他catkin包可以添加到这一行的COMPONENTS关键词后面,如:
find_package(catkin REQUIRED COMPONENTS package-names)
对于这个例程,我们需要添加名为roscpp的依赖库,它提供了ROS的C++客户端,修改后的如下所示:
find_package(catkin REQUIRED COMPONENTS roscpp)
add_executable(executable-name source-files)
target_link_libraries(executable-name ${catkin_LIBRARIES})
第一行声明了我们想要的可执行文件的文件名,以及所需的源列表。如果有多个源文件,把他们列在此处,并用空格将其分开。
第二行告诉CMake当链接此可执行文件时需要链接哪些库。如果你的包里需要多个可执行文件,为每个可执行问复制和修改上述两行。
本例程中,我们需要添加一下几行
add_executable(hello hello.cpp)
target_link_libraries(hello ${catkin_LIBRARIES})
其中,可执行文件名为hello, 源代码文件hello.cpp, CMake链接catkin_LIBRARIES库。
完整cmake代码:
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})
一旦CMakeLists.txt文件设置好了,就可以编译工作区,在工作区根目录下使用以下指令:
catkin_make
注意:这个指令要在你创建的工作区的路径下执行。将会完成一些配置步骤,并且在工作区中创建devel和build两个子目录,这两个新生成的子目录用于存放和编译相关的文件,如自动生成的编译脚本、目标代码和可执行文件。
最后步骤是执行名为setup.bash的脚本,它是catkin_make在工作区devel目录下生成的
source devel/setup.bash
这个自动生成的脚本设置了若干环境变量,从而使ROS能找到你创建的功能包和新生成可执行文件。
在执行hello程序前, Ctrl + Alt+ T 打开终端启动
roscore
启动后, Ctrl + Alt+ T 打开另一个终端执行
rosrun hello_ros hello
其中hello_ros是之前创建的包的名字,见本文 2章
。
运行后这个程序就会终端打印类似下面的输出
【INFO】【1543652338.493910660】:hello,ROS World!
ps:这行输出的数字代表时间,从1970年1月1号开始以秒计时。
————————————————