上篇文章我们介绍了ROS的版本选择与安装,本文将继上文介绍安装完ROS Melodic Morenia后,如何用C++或Python编写我们的第一个程序。
目录
前言
Hello world实现流程
Python实现Hello world
ROS中主要涉及到的编程语言有C++和Python,本教程主要以C++为主,主要有以下两点理由:
1.C++运行效率高,ROS的设计者设计的roscpp库;
2.Python旨在提高开发效率,适用于无性能要求的场景。
读者可根据自身情况选择C++或者Python等编程语言
无论是C++还是Python其他编程语言,实现流程都是大同小异:
创建工作空间 → 创建功能包 → 编辑源文件 → 编辑配置文件 → 编译并执行
Ctrl+Alt+T打开终端分别输入:【在主目录下创建工作空间】
mkdir -p helloworld_ws/src
cd helloworld_ws
catkin_make
其中helloworld_ws为我们命名的工作空间名称,catkin_make是一个编译命令,该编译命令会帮我们创建好我们所需的文件并输出若干日志,成功结果如下:
继续在该终端输入:【在工作空间的src文件中创建功能包】
cd src
catkin_create_pkg helloworld roscpp rospy std_msgs
其中helloworld为我们的功能包名称,roscpp 、rospy和std_msgs为添加的依赖,这些依赖是我们在ROS中运行程序最基本的一些依赖,成功结果如下:【低版本的ROS中message依赖可能为ros_msgs】
继续在终端输入:【在功能包中创建源文件】
cd helloworld/src
gedit helloworld_c.cpp
在空白文档中输入:【Hello world!】
#include //包含ros头文件
/******主函数******/
int main(int argc,char *argv[]){
ros::init(argc,argv,"hello_node");//初始化节点
ROS_INFO("Hello world!");//输出日志
return 0;
}
打开helloworld功能包中的CMakeLists.txt【helloworld_ws/src/helloword/CMakeLists.txt】
将136行与149行更改为如下结果:【在文编编辑器的首选项中打开显示行号功能】
其中hello为映射变量名称,helloworld_c.cpp为源代码文件名称。
重新打开一个输入:【启动ros核心】
roscore
再重新打开另一个终端输入:【在工作空间中编译并执行】
cd ~/helloworld_ws
catkin_make
source ./devel/setup.bash
rosrun helloworld hello
其中,source命令为修改环境变量,helloworld为功能包名称,hello为映射变量名称,成功结果如下:
在ROS中编写Python程序与编写C++程序大同小异。
Ctrl+Alt+T打开终端分别输入:【在主目录下创建工作空间】
mkdir -p helloworld_ws/src
cd helloworld_ws
catkin_make
其中helloworld_ws为我们命名的工作空间名称,catkin_make是一个编译命令,该编译命令会帮我们创建好我们所需的文件并输出若干日志,成功结果如下:
继续在该终端输入:【在工作空间的src文件中创建功能包】
cd src
catkin_create_pkg helloworld roscpp rospy std_msgs
其中helloworld为我们的功能包名称,roscpp 、rospy和std_msgs为添加的依赖,这些依赖是我们在ROS中运行程序最基本的一些依赖,成功结果如下:【低版本的ROS中message依赖可能为ros_msgs】
在功能包中新建名称为【scripts】的文件夹与【src】文件夹同级
在终端中输入:【创建源文件】
cd ~/helloworld_ws/src/helloworld/scripts
gedit helloworld_p.py
在空白文档中输入:【Hello world!】
#! /usr/bin/env python
# coding=
import rospy
if __name__ == "__main__":
rospy.init_node("HelloNode.")
rospy.loginfo("HelloWorld!")
由于.py文件的特殊性需要给他升级权限故继续在该终端中输入:
chmod +x helloworld_p.py
打开helloworld功能包中的CMakeLists.txt【helloworld_ws/src/helloword/CMakeLists.txt】
将149行和162行更改为如下结果:【在文编编辑器的首选项中打开显示行号功能】
其中helloworld_p.py为源文件名称为了选择恰当的解释器。
重新打开一个输入:【启动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