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
结果如下![](https://img-blog.csdnimg.cn/7d97c50f430f4e7588a475c423a41eec.png)
![](https://img-blog.csdnimg.cn/dbe11d12d4274f90a08ac621c24de210.png)
![](https://img-blog.csdnimg.cn/90b5fc1af4ad46a0b7735bceb5b58947.png)
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功能包时,一般都会依赖这三个库实现。
结果如下图
![](https://img-blog.csdnimg.cn/134ef74453b64e408767e62d3d4282bf.png)
![](https://img-blog.csdnimg.cn/3c9cbde4ebdc412f87fbab7f2e0edd1e.png)
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;
}
结果如下
![](https://img-blog.csdnimg.cn/9c535011c808416cac7281626edd5dda.png)
4、编辑ros(helloworld)下的Cmakelist.txt文件
![](https://img-blog.csdnimg.cn/c9728d4355104b189aeed1309d791477.png)
在136行,改为hello src/helloworld_node.cpp
在149-151行,改为hello
![](https://img-blog.csdnimg.cn/e53051999f864d708db494c31b183b74.png)
5、进入工作空间目录编辑并执行
进入终端
cd demo11_ws
执行
catkin_make
生成build devel…
结果如下
![](https://img-blog.csdnimg.cn/9e407cfd627140e8a112bc833cd75526.png)
再打开一个终端,启动命令行1
roscore
再返回第一个终端,启动命令行2
source ./devel/setup.bash
回车
//rosrun 包名 C++节点
rosrun helloworld hello
最后的输出
![](https://img-blog.csdnimg.cn/01eab5e0186240aaab9c8df9ea053fa7.png)
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")
结果如下![](https://img-blog.csdnimg.cn/da5adc8d5fb546fbb9c584ca330f0cd1.png)
![](https://img-blog.csdnimg.cn/c197adefc24d49c1a3066f4b516dbdc0.png)
4、为Python文件添加可执行权限
chmod +x helloworld_p.py
结果如下图
5、编辑ros包(helloworld文件)下的CamkeList.txt文件
![](https://img-blog.csdnimg.cn/ac88ff9bbedb453cacc054469e2aec94.png)
6、进入工作空间编译并执行
进入终端
cd demo11_ws
执行
catkin_make
生成build devel…
结果如下
![](https://img-blog.csdnimg.cn/88fabcdfb39545a986ff67cc6ad9ae73.png)
再打开一个终端,启动命令行1
roscore
再返回第一个终端,启动命令行2
source ./devel/setup.bash
回车
rosrun helloworld helloworld_p.py
最后的输出
![](https://img-blog.csdnimg.cn/9b8f88e3bcb944508075fa45635f7032.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)