文章目录
前言
由于本人使用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的高性能库,而后者则一般用于对性能无要求的场景,旨在提高开发效率。
实例
-
进入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!!!!")
实例
- 在src下的helloworld中新建文件夹
scripts
2.在新建的文件夹下新建helloworld_p.py
- 在python文件编写文件
编写的大致流程:
实现:
rospy.init_node(“参数”),参数为节点的名称
- 在scripts的文件夹下打开终端,为python文件添加可执行权限
4. 编辑配置文件
- 为python文件添加可执行权限
chmod +x 自定义文件名.py
- 编辑ros包下的CaMakeList.txt文件
catkin_install_python(PROGRAMS scripts/自定义文件名.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
实例
- 打开在helloword文件夹下的
CMakeLists.txt
解除162-165的注释
将scripts/
后面的文件改为自己的执行文件,即helloworld_p.py
5. 编译并执行。
- 进入工作空间目录编译
cd 自定义空间名称
catkin_make
- 在工作空间目录执行
先启动命令行1:
roscore
再启动命令行2:
cd 工作空间
source ./devel/setup.bash
rosrun 包名 自定义文件名.py
输出结果: Hello World!!!
实例
-
在工作空间处打开终端,并输入
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
评论(0)
您还未登录,请登录后发表或查看评论