【ROS机器人入门】1.2 ROS输出helloworld

前言

由于本人使用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,启动核心,我们暂且把这个新创建的窗口叫做窗口二,第一个窗口叫做窗口一

在这里插入图片描述

  1. 在窗口一处刷新环境变量
    在这里插入图片描述
  2. 在窗口一处执行

在这里插入图片描述

参考资料

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

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LenckCuak

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

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

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

打赏作者

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

抵扣说明:

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

余额充值