ros创建工作空间_ROS学习之路(一):构建工作区和创建话题

e404a3a94757f59d68ab02f0fc0f7838.png

在使用ROS的过程中,不可避免地会使用到catkin构建工作区,这是任何项目的前提。我曾经接触过CMake,但并不深入,因此还是花了一些时间的。

首先,我们创建一个文件夹并打开(我的文件夹叫做learn):

mkdir -p ~learn/src
cd ~/learn/src

然后,我们初始化这个工作区:

catkin_init_workplace

这个命令将会帮助你在src下建立CMakeList.txt文件,但这还不够,我们需要:

cd ~/learn
catkin_make

这一步完成后,我们会得到build和devel两个文件夹,对于使用python的我而言,build文件夹下的文件是没有用的,而devel文件夹中的setup文件是非常重要的,因为他的运行是使用工作区文件和代码的基础,我们需要进行配置:

source devel/setup.bash

至此,工作区的建立就完成了。但是,因为ROS是一个由多个子系统协同运行的系统,如果每个子系统我们都用命令行打开再运行显然是非常麻烦的,好在catkin为我们提供了非常方便的工具,也就是包的构建工具。

cd ~/learn/src
catkin_create_pkg basics rospy

这样一个简单的包就完成了,在最后加上rospy是为了产生和rospy包的依赖,如果需要对其他包依赖直接列出即可,就会非常方便。

然后我就想试着在这个工作环境下创建一个话题,一个非常简单的计数器文件:

import rospy
from std_msgs.msg import Int32

rospy.init_node('topic_publisher')
pub=rospy.Publisher('counter',Int32)
rate=rospy.Rate(2)

count=0
while not rospy.is_shutdown():
	pub.publish(count)
	count+=1
	rate.sleep()

保存为a.py,然后在命令行中用

rosrun basics a.py

进行运行,但问题来了:

babfd38b917b538129c457909258bb9c.png

我又试着用python直接运行,发现没问题。

这其实是写python习惯差的结果,因为在开头没有对解释器进行声明,也就是没有写shebang,加上shebang:

#!/usr/bin/env python

并且用chmod为文件增加权限就可以了。

再运行,可是发现:

35c37d3c9ec289902668bf1bb51f4dc4.png

但仔细观察发现,在我的shebang最后多了一个r,这是为什么呢?百度以后发现是因为我是采用了文本编辑器进行代码书写,而这样的文件格式是dos格式,与标准的unix不同。我们只需要:

vim a.py
按ESC
:set ff=unix
回车
:wq
回车

就可以了。这时候再运行,就会发现计数器已经跑起来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值