文章目录

前言

由于本人使用python进行ros实验,于是ros的所有实验基本都以python编写,如需用c++编写,可以看参考资料的内容

本文需要具备python和linux部分知识,linux入门学习地址

实现流程

1. 先创建一个工作空间

在某个目录下打开终端

mkdir -p 自定义空间名称/src 
cd 自定义空间名称 
catkin_make

通过catkin_make命令可以发现,除了src目录还多了两个目录

实例

1.创建两个目录,里面的目录为src

2.进入空间

3.输入下面命令

catkin_make

可以不用看里面的内容

2. 再创建一个功能包

进入src创建ros 包并添加依赖

cd src 
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs

上述命令,会在工作空间下生成一个功能包,该功能包依赖于roscpp、rospy 与std_msgs,其中roscpp是 使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般 都会依赖这三个库实现。

注意:在ROS中, C++和Pvthon可以具体使用哪种语言.要视要求而 定,因为两种语言相较而言:C++运行效率高但是编码效率低,而Python则反之,基于二者互补的特点, ROS 设计者分别设计了roscpp与rospy库,前者旨在成为ROS的高性能库,而后者则一般用于对性能无要求的场景,旨在提高开发效率。

实例

  1. 进入src

2.使用catkin_create_pkg表示创建功能包,创建helloworld这个功能包(自己定义的),后面三个参数为依赖

3. 编辑源文件

1.进入 ros 包添加scripts 目录并编辑 python文件

cd ros包 
mkdir scripts 

新建python文件:(文件名自定义)

#! /usr/bin/env python 
'''
Python 版 Helloworld 
'''
import rospy 
if name == "_main_ ": 
	rospy.init_node("Hello") 
	rospy.loginfo("Hello world!!!!")

实例

  1. 在src下的helloworld中新建文件夹scripts

2.在新建的文件夹下新建helloworld_p.py

  1. 在python文件编写文件

编写的大致流程:

实现:

rospy.init_node(“参数”),参数为节点的名称

  1. 在scripts的文件夹下打开终端,为python文件添加可执行权限

4. 编辑配置文件

  1. 为python文件添加可执行权限
chmod +x 自定义文件名.py
  1. 编辑ros包下的CaMakeList.txt文件
catkin_install_python(PROGRAMS scripts/自定义文件名.py 
	DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 
	)

实例

  1. 打开在helloword文件夹下的CMakeLists.txt

解除162-165的注释
scripts/后面的文件改为自己的执行文件,即helloworld_p.py

5. 编译并执行。

  1. 进入工作空间目录编译
cd 自定义空间名称
catkin_make
  1. 在工作空间目录执行

先启动命令行1:

roscore

再启动命令行2:

cd 工作空间 
source ./devel/setup.bash 
rosrun 包名 自定义文件名.py 

输出结果: Hello World!!!

实例

  1. 在工作空间处打开终端,并输入catkin_make

如下则表示编译成功

2.在新窗口处输入roscore,启动核心,我们暂且把这个新创建的窗口叫做窗口二,第一个窗口叫做窗口一

3.在窗口一处刷新环境变量

4.在窗口一处执行

参考资料

https://www.bilibili.com/video/BV1Ci4y1L7ZZ/?p=19&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=b914a8de9ea8b12ba5cb6d8edd1b346c