1、ROS快速体验-HelloWorld的实现
ROS涉及的编程语言以C++和Python为主。
以HelloWorld例程为开始,学习ROS开发的大致流程
1.创建一个工作空间;
2.创建一个功能包;
3.编辑源文件;
4.编辑配置文件
5.编译并执行。
在用C++与Python实现开发时,两者的区别主要是在步骤3和步骤4的实现细节上存在差异,其余的基本一致。
1、创建一个工作区间并初始化
首先会创建一个工作区间以及一个src的子目录
mkdir -p demo11_ws/src
进入工作区间
cd demo11_ws/
调用catkin_make 命令编译
catkin_make
结果如下
2、进入src创建ros包并添加依赖
进入src
cd src
生成功能依赖包
catkin_create_pkg helloworld roscpp rospy std_msgs
该功能包依赖于 roscpp、rospy 与 std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。
结果如下图
C++版
3、进入ros包的src目录编写源文件(进入的是helloworld中的src)
新建一个txt(记事本)文件,重命名为helloworld_node.cpp
进入编写C++源码
//保护头文件
#include "ros/ros.h"
//编写main函数
int main(int argc, char *argv[])
{
//执行 ros 节点初始化
ros::init(argc,argv,"hello");
//控制台输出 hello world
ROS_INFO("hello world!");
return 0;
}
结果如下
4、编辑ros(helloworld)下的Cmakelist.txt文件
在136行,改为hello src/helloworld_node.cpp
在149-151行,改为hello
5、进入工作空间目录编辑并执行
进入终端
cd demo11_ws
执行
catkin_make
生成build devel…
结果如下
再打开一个终端,启动命令行1
roscore
再返回第一个终端,启动命令行2
source ./devel/setup.bash
回车
//rosrun 包名 C++节点
rosrun helloworld hello
最后的输出
Python版
3、进入ros包的目录下新建一个scripts文件夹,在该文件夹下新建一个txt文件,编写源文件(进入的是helloworld中的src)
新建一个txt(记事本)文件,重命名为helloworld_p.py
进入编写Python源码
#!/usr/bin/env python
##指定解释器
"""
Python版Hello World
"""
#1.导包
import rospy
#2.编写入口
if __name__ == "__main__":
#3.初始化ros节点
rospy.init_node("Hello")
#4.输出Hello World By Python
rospy.loginfo("Hello World!!!By Python")
结果如下
4、为Python文件添加可执行权限
chmod +x helloworld_p.py
结果如下图
5、编辑ros包(helloworld文件)下的CamkeList.txt文件
6、进入工作空间编译并执行
进入终端
cd demo11_ws
执行
catkin_make
生成build devel…
结果如下
再打开一个终端,启动命令行1
roscore
再返回第一个终端,启动命令行2
source ./devel/setup.bash
回车
rosrun helloworld helloworld_p.py
最后的输出