ROS入门教程(三)—— 用C++或Python实现Hello world

上篇文章我们介绍了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打开终端分别输入:【在主目录下创建工作空间】

mkdir -p helloworld_ws/src
cd helloworld_ws
catkin_make

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

step2.创建功能包

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

cd src
catkin_create_pkg helloworld roscpp rospy std_msgs

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

step3.编辑源文件

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

cd helloworld/src
gedit helloworld_c.cpp

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

#include <ros/ros.h>//包含ros头文件

/******主函数******/
int main(int argc,char *argv[]){
	ros::init(argc,argv,"hello_node");//初始化节点
	ROS_INFO("Hello world!");//输出日志

	return 0;
}

step4.编辑配置文件

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

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

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

step5.编译并执行

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

roscore

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

cd ~/helloworld_ws
catkin_make
source ./devel/setup.bash
rosrun helloworld hello

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


Python实现Hello world

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

step1.创建工作空间

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

mkdir -p helloworld_ws/src
cd helloworld_ws
catkin_make

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

step2.创建功能包

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

cd src
catkin_create_pkg helloworld roscpp rospy std_msgs

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

step3.编辑源文件

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

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

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

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

#! /usr/bin/env python
# coding=<encoding name>

import rospy

if __name__ == "__main__":

	rospy.init_node("HelloNode.")
	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

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

cd ~/helloworld_ws
catkin_make
source ./devel/setup.bash
rosrun helloworld helloworld_p.py

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

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


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

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

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

  • 10
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾门

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值