1、概念
ROS是适用于机器人的开源元操作系统。ROS集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制。还提供了用于在多台计算机上获取,构建,编写和运行代码的工具和库,ROS在某些方面类似于"机器人框架”。ROS设计者将ROS表述为"ROS = Plumbing + Tools + Capabilities + Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体。
ROS=通信+工具+功能+生态
2、 打印helloworld的c++实现过程
ROS中的程序即便使用不同的编程语言,实现流程也大致类似,以HelloWorld程序为例,实现流程大致如下:
1.先创建一个ros的工作空间并初始化;
mkdir -p 自定义空间空间名称/src
cd 自定义空间空间名称
catkin_make //在自定义空间中,会有三个文件夹,一个是自己创建的src
//另外两个分别是build、devel
上述命令,首先会创建一个工作空间以及一个src子目录,然后再进入工作空间调用catkin_make命令编译。
2.进入src,再创建一个ros的功能包,并添加依赖;
cd src
catkin_creat_pkg 自定义ros包名 roscpp rospy std_msgs
上述命令,会在工作空间下生成一个功能包,该功能包依赖于roscpp、rospy与std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。
3.进入功能包的src目录,编辑源文件;
cd 自定义ros的功能包/src
在功能包的src目录下,新建一个文件name,若是用c++语言编译,则文件后缀cpp;若用python编译,文件后缀py。在文件中编写代码,代码示例如下所示:
4.编辑配置文件;
退回ros的功能包,打开CMakeLists.txt文件,将以下两行代码的注释删除。
然后对上述两行代码做以下的修改
5.编译
退回到工作空间中,执行以下命令编译代码。
catkin_make
6.执行
再启动一个 命令行窗口,执行以下命令启动核心:
roscore
在确保核心被启动的情况下,执行以下命名执行代码:
//将当前工作空间刷新到当前窗口下的环境变量,才能执行源文件
//注意,他有一定的局限性,只对当前命令行窗口有效
source ./devel/setup_bash
rosrun 功能包名 源文件映衬名
3、打印helloworld的python实现过程
第一、二步骤与c++实现相同。
3.进入ros包添加scripts目录,并在scripts目录下编辑python文件
cd ros的功能包
mkdir scripts
4、为python文件添加可执行权限
cd scripts
chmod +x python文件名
5、编辑ros包下的CamkeList.txt文件
首先将下述代码的注释删除
然后对上述命令做一下修改:
6、进入工作空间并编译
catkin_make
7、执行python文件
首先再启动一个 命令行窗口,执行以下命令启动核心:
roscore
在确保核心被启动的情况下,执行以下命名执行代码:
source ./devel/setup_bash
rosrun ros的功能包名 python文件名