现在许多第三方库已经放弃了对于python2的支持。所以在ROS中调用包多有不便。
ROS本身是基于python2的,但是ROS官方也对python3做了支持。所以理论上不需要任何转接,直接就能使用python3发布和接收ROS话题废话少说,直接开始。
在python3环境中安装ROS核心包
你可以自己创建一个虚拟环境安装,也可以直接安装。我这里就直接安装在本地的python3环境上了。
pip3 install catkin-tools
pip3 install rospkg
注意,我这里安装在本地的python3环境上,所以pip使用的是pip3。如果你要是使用的虚拟环境,直接pip就可以。
这里其实就已经结束了,是不是觉得结束的很突然。那我们写一个发布者看看。
建立一个发布者
这里发布者要注意,要在开头声明python3的环境,不然还是会调用python2的。
#!/usr/bin/env python3
import rospy
from std_msgs.msg import String
import sys
def talker():
pub = rospy.Publisher('chatter', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10) # 10hz
while not rospy.is_shutdown():
hello_str = sys.version
rospy.loginfo(hello_str)
pub.publish(hello_str)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
程序功能是发布一下当前的python版本
执行发布者
在终端中cd到你的程序位置
使用python3执行程序就可以,记得要用python3。
看一下结果
确实是3.6版本的python。
不过这种方法还有由一些些缺陷,是直接运行python程序的。启动起来相比roslaunch和rosrun来说比较混乱。不过对于小的项目来说还是比较方便的,兼容性也比较强。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/11596/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取