当前位置:   article > 正文

ROS入门教程(三)—— 用C++或Python实现Hello world_ros操作系统下算法是用什么语言写的

ros操作系统下算法是用什么语言写的

上篇文章我们介绍了ROS的版本选择与安装,本文将继上文介绍安装完ROS Melodic Morenia后,如何用C++或Python编写我们的第一个程序。

目录

前言

Hello world实现流程

Python实现Hello world


前言

ROS中主要涉及到的编程语言有C++和Python,本教程主要以C++为主,主要有以下两点理由:

1.C++运行效率高,ROS的设计者设计的roscpp库;

2.Python旨在提高开发效率,适用于无性能要求的场景。

读者可根据自身情况选择C++或者Python等编程语言


Hello world实现流程

无论是C++还是Python其他编程语言,实现流程都是大同小异:

创建工作空间 → 创建功能包 → 编辑源文件 → 编辑配置文件 → 编译并执行

step1.创建工作空间

Ctrl+Alt+T打开终端分别输入:【在主目录下创建工作空间】

  1. mkdir -p helloworld_ws/src
  2. cd helloworld_ws
  3. catkin_make

其中helloworld_ws为我们命名的工作空间名称,catkin_make是一个编译命令,该编译命令会帮我们创建好我们所需的文件并输出若干日志,成功结果如下:

step2.创建功能包

继续在该终端输入:【在工作空间的src文件中创建功能包】

  1. cd src
  2. catkin_create_pkg helloworld roscpp rospy std_msgs

其中helloworld为我们的功能包名称,roscpp 、rospy和std_msgs为添加的依赖,这些依赖是我们在ROS中运行程序最基本的一些依赖,成功结果如下:【低版本的ROS中message依赖可能为ros_msgs】

step3.编辑源文件

继续在终端输入:【在功能包中创建源文件】

  1. cd helloworld/src
  2. gedit helloworld_c.cpp

在空白文档中输入:【Hello world!】

  1. #include <ros/ros.h>//包含ros头文件
  2. /******主函数******/
  3. int main(int argc,char *argv[]){
  4. ros::init(argc,argv,"hello_node");//初始化节点
  5. ROS_INFO("Hello world!");//输出日志
  6. return 0;
  7. }

step4.编辑配置文件

打开helloworld功能包中的CMakeLists.txt【helloworld_ws/src/helloword/CMakeLists.txt】

将136行与149行更改为如下结果:【在文编编辑器的首选项中打开显示行号功能】

其中hello为映射变量名称,helloworld_c.cpp为源代码文件名称。

step5.编译并执行

重新打开一个输入:【启动ros核心】

roscore

再重新打开另一个终端输入:【在工作空间中编译并执行】

  1. cd ~/helloworld_ws
  2. catkin_make
  3. source ./devel/setup.bash
  4. rosrun helloworld hello

其中,source命令为修改环境变量,helloworld为功能包名称,hello为映射变量名称,成功结果如下:


Python实现Hello world

在ROS中编写Python程序与编写C++程序大同小异。

step1.创建工作空间

Ctrl+Alt+T打开终端分别输入:【在主目录下创建工作空间】

  1. mkdir -p helloworld_ws/src
  2. cd helloworld_ws
  3. catkin_make

其中helloworld_ws为我们命名的工作空间名称,catkin_make是一个编译命令,该编译命令会帮我们创建好我们所需的文件并输出若干日志,成功结果如下:

step2.创建功能包

继续在该终端输入:【在工作空间的src文件中创建功能包】

  1. cd src
  2. catkin_create_pkg helloworld roscpp rospy std_msgs

其中helloworld为我们的功能包名称,roscpp 、rospy和std_msgs为添加的依赖,这些依赖是我们在ROS中运行程序最基本的一些依赖,成功结果如下:【低版本的ROS中message依赖可能为ros_msgs】

step3.编辑源文件

 在功能包中新建名称为【scripts】的文件夹与【src】文件夹同级

在终端中输入:【创建源文件】

  1. cd ~/helloworld_ws/src/helloworld/scripts
  2. gedit helloworld_p.py

在空白文档中输入:【Hello world!】

  1. #! /usr/bin/env python
  2. # coding=<encoding name>
  3. import rospy
  4. if __name__ == "__main__":
  5. rospy.init_node("HelloNode.")
  6. rospy.loginfo("HelloWorld!")

由于.py文件的特殊性需要给他升级权限故继续在该终端中输入:

chmod +x helloworld_p.py

step4.编辑配置文件

打开helloworld功能包中的CMakeLists.txt【helloworld_ws/src/helloword/CMakeLists.txt】

将149行和162行更改为如下结果:【在文编编辑器的首选项中打开显示行号功能】

 其中helloworld_p.py为源文件名称为了选择恰当的解释器。

step5.编译并执行

重新打开一个输入:【启动ros核心】

roscore

再重新打开一个终端输入:【在工作空间中编译并执行】

  1. cd ~/helloworld_ws
  2. catkin_make
  3. source ./devel/setup.bash
  4. rosrun helloworld helloworld_p.py

其中,source命令为修改环境变量,helloworld为功能包名称,helloworld_p.py为源文件名称,成功结果如下:

到这里,恭喜你终于完成了你的ROS中的第一个程序。


文章预告:ROS入门教程(四)—— URDF与RViz

资料来源:奥特学院(Autolabor)

商业转载请联系官方授权,非商业转载请注明出处

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/401117
推荐阅读
相关标签
  

闽ICP备14008679号