windows10中安装和使用ROS2+python

这篇具有很好参考价值的文章主要介绍了windows10中安装和使用ROS2+python。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ROS称为机器人操作系统,是开发智能机器人的极具生产力的工具,主要用于仿真验证、代码部署。ROS已经从ROS1发展到ROS2,而ROS2才真正实现了分布式通信。如果现在开始学的话,建议最好直接上手ROS2。ROS2支持多开发语言,当然了,在算法开发语言中,Python绝对是一个最佳的选择,因为它是脚本语言,调试时无需编译,各种工具包层出不穷,所以开发起来十分方便。

作为懒人,实在懒得折腾linux+ROS2,所以本文主要介绍如何在windows10中安装ROS2,以及如何编写简单的python发布和订阅程序。

一、安装python和pycharm

1. 在windows10中安装python,网上教程实在太多了,不多介绍。

2. 在windows10中安装pycharm,这是python的IDE(集成开发环境),编辑python代码之用,当然用别的IDE如vscode也是可以的。网上教程也很多,不再赘述。

二、安装ROS2

1. 在windows10中安装Chocolatey,方法是打开cmd,输入如下指令。这里解释一下,Chocolatey是windows下的包管理工具,类似linux下的apt-get,有了它可以直接从网上下载和安装软件包。

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

测试一下Chocolatey是否安装成功,在cmd中输入 choco,正常的话会得到如下反馈。

windows10中安装和使用ROS2+python

2. 利用choco安装ROS2,方法是在cmd中输入如下指令。有的博主说,要先建立c:\opt\chocolatey目录,并设置2个环境变量,以我的经验看并不需要,设置错了反而很难排故。

choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1
choco upgrade ros-foxy-desktop -y --execution-timeout=0

等待约半个小时,ROS2就安好了,成功的话有下图那样的提示。

windows10中安装和使用ROS2+python

3. 测试一下小乌龟demo,输入命令:

call C:\opt\ros\foxy\x64\local_setup.bat  %%不可省略,这是调用ros2的命令,否则下一句报错
ros2 run turtlesim turtlesim_node

再打开一个cmd,输入命令:

call C:\opt\ros\foxy\x64\local_setup.bat  %%不可省略,这是调用ros2的命令,否则下一句报错
ros2 run turtlesim turtle_teleop_key

小乌龟就跑起来了,turtlesim_node节点是仿真节点,turtle_teleop_key节点是键盘节点,二者通过订阅和发布,完成通信。这也是ROS2的主要作用。

windows10中安装和使用ROS2+python

4. 如果我们需要查看ROS2节点下有哪些话题,可以新开一个cmd输入:

call C:\opt\ros\foxy\x64\local_setup.bat  %%不可省略,这是调用ros2的命令,否则下一句报错
ros2 topic list

如果你的小乌龟窗口还没关的话,会显示如下:

windows10中安装和使用ROS2+python

Ok,ROS2安装正常!下面我们的python就要登场了!

三、 用python创建发布和订阅节点

  1. 新建一个工作目录,打开cmd,cd到这个目录下,然后输入如下指令来创建功能包:

call C:\opt\ros\foxy\x64\local_setup.bat
ros2 pkg create 功能包名称 --build-type ament_python --dependencies rclpy

我们的基于python的ros功能包就建好了,如下图,我的功能包叫dmrta_pkg。可以亲自到目录下看一看,ros2都帮我们创建了哪些模板文件。

windows10中安装和使用ROS2+python
  1. 建好了功能包,就要建立节点了。用pycharm打开我们的功能包作为项目,在功能包的同名文件夹下新建.py文件,我这里建立了2个,文件名分别为talker.py和listener.py。在其中写入函数(比如我这里的main函数),过后我们会用它配置节点的入口函数。注意二者的topic必须一致才能对话。

# talker.py

import rclpy
from rclpy.node import Node
from std_msgs.msg import String  # 载入String的msg类型


class TALKER(Node):
    def __init__(self, name, topic):
        # 初始化
        super().__init__(name)
        # 创建发布节点
        self.publisher = self.create_publisher(String, topic, 10)
        self.get_logger().info("TALKER: I'm publisher %s, I have topic '%s'" % (name, topic))
        # 创建定时器
        self.timer = self.create_timer(1.0, self.timer_callback)

    # 定时发布
    def timer_callback(self):
        msg = String()
        msg.data = 'The talker is publishing ...'
        self.publisher.publish(msg)  # 发布消息msg


def main():
    # 初始化
    rclpy.init()
    # 创建发布节点
    node = TALKER(name='talker_node', topic='our_topic')
    # 死循环
    rclpy.spin(node)
    # 关闭
    node.destroy_node()
    rclpy.shutdown()
# listener.py

import rclpy
from rclpy.node import Node
from std_msgs.msg import String


class LISTENER(Node):
    def __init__(self, name, topic):
        # 初始化
        super().__init__(name)
        # 创建发布节点
        self.subscriber = self.create_subscription(String, topic, self.receive_callback, 10)
        self.get_logger().info("LISTENER: I'm listener %s, I subscribed topic %s" % (name, topic))
        #
        self.n_receive = 0

    # 订阅器都是通过回调函数来实现对应功能,callback()内部完成对应实现
    def receive_callback(self, msg):
        self.n_receive += 1
        self.get_logger().info("%d I heard %s" % (self.n_receive, msg.data))


def main():
    # 初始化
    rclpy.init()
    # 创建订阅节点
    node = LISTENER(name="listener_node", topic='our_topic')
    # 死循环
    rclpy.spin(node)
    # 关闭
    rclpy.shutdown()  
  1. 在工作空间的功能包目录下找到setup.py,修改entry_points,加入想加入的节点,并指定节点的入口函数。这样ROS2就知道有几个节点,每个节点该从哪里执行了。

    entry_points={
        'console_scripts': [
            'talker_node=dmrta_pkg.talker:main',
            'listener_node=dmrta_pkg.listener:main'
        ],
  1. 编写完毕,接下来是编译,使用colcon命令。有博主说必须要安装visual studio,其实不需要的。我们安装ROS2的时候已经自带了。cd到工作空间下,输入命令:

call C:\opt\ros\foxy\x64\local_setup.bat  %%如果ros2已经运行起来了,可不输入这句
colcon build --symlink-install %%使用--symlink-install的目的是使用符号连接,这样修改python文件后会直接生效,而无需再次编译
windows10中安装和使用ROS2+python

编译成功!去工作目录下观察一下colcon都给我们生成了哪些文件。注意\install\local_setup.bat这个文件十分重要,启动节点时必须先启动它一下,才能让功能包的环境变量生效。

  1. 接下来测试我们生成的那两个节点。新开两个cmd,分别输入命令:

call C:\opt\ros\foxy\x64\local_setup.bat
call 你的工作区目录\install\local_setup.bat  %% 注意这里替换
ros2 run dmrta_pkg talker_node
call C:\opt\ros\foxy\x64\local_setup.bat
call 你的工作区目录\install\local_setup.bat  %% 注意这里替换
ros2 run dmrta_pkg listener_node
windows10中安装和使用ROS2+python
windows10中安装和使用ROS2+python

ok没问题,成功通信!那剩下就是编程的事了。

  1. 有个问题就是程序修改后,必须重新编译才行生效。那每次输入编译指令岂不是很麻烦?懒人的做法是做成批处理文件,把下面3句保存成.bat,放在工作空间,每次双击就好。

:: 启动ROS2
call C:\opt\ros\foxy\x64\local_setup.bat
:: 编译当前工作空间内的所有pkg
colcon build --symlink-install
:: 
pause

总结

  1. window10装ROS2没问题,而且很简单;

  1. ROS2对python的支持没问题,而且很简洁。

展望

  1. cmd是windows原生工具,用起来很麻烦,也不美观,推荐使用WindowsTerminal。文章来源地址https://www.toymoban.com/news/detail-498672.html

到了这里,关于windows10中安装和使用ROS2+python的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在Windows 11 中安装和使用 WSL 2

    在安装 WSL 之前,可以通过以下命令查看可供安装的发行版: 参考:使用 WSL 在 Windows 上安装 Linux:https://learn.microsoft.com/zh-cn/windows/wsl/install 如果不指定发行版,则该命令将安装 WSL 和 Linux 的默认 Ubuntu 发行版: 如果要安装指定的 Linux 发行版,需要添加参数 --distribution : 例

    2024年02月16日
    浏览(44)
  • Windows环境中,在pycharm中安装和使用Selenium

    一、前言 我们在学爬虫的时候,使用Selenium库可以帮助我们更好的抓取网页中的内容,我接下介绍的是如下载浏览器驱动和使用Selenium抓取网页 二、安装浏览器驱动 下载浏览器驱动 我使用的是Chrome浏览器,所以我们下载chromedriver 下载地址: http://chromedriver.storage.googleapis.com/in

    2024年02月05日
    浏览(43)
  • 【ROS系统】Ubuntu22.04系统中安装ROS2系统

    参考博客:ROS 安装详细教程 —— Ubuntu22.0.4 LTS 安装 首先,我们需要一个Ubuntu系统。 终端输入指令: 从ubuntu系统界面进行设置: 设置-软件升级-Ubuntu software- source code 为source code选择国内镜像源 确定镜像源可用 通过检查此命令的输出,确保已启用Ubuntu Universe存储库。 apt-ca

    2024年04月27日
    浏览(53)
  • win10安装ROS2(foxy+humble/在线安装+离线安装)超详细保姆级教程

            之前已经在ubuntu22.04上安装上了ROS2-Humble,后期开发想要跨平台,ubuntu上发布话题,在windows上订阅话题,所以实验在windows上安装ROS2。         因为ubuntu上安装的是Humble版本,所以在win10上首选安装也是Humble版,实验过程中是先通过在线方式安装了foxy版本,后面通过

    2024年01月19日
    浏览(94)
  • Linux中安装和使用nohup命令

    nohup 英文全称 no hang up(不挂起) 当我们把项目部署到服务器上时,只有一直保持linux终端的连接才能够运行项目,当我们把连接软件Xshell或者Finalshell连接工具关掉时,项目也就停止运行。只要用了nohup命令,我们的项目就能够一直运行了,此时就实现了我们需求。 例如:

    2023年04月25日
    浏览(35)
  • Python中安装和使用venv虚拟环境

    要在Python中安装和使用venv虚拟环境,您可以按照以下步骤进行操作: 1.首先,确保您已安装了Python。您可以在命令行中输入以下命令来验证Python的安装情况: 2.在您的项目文件夹中创建一个新的虚拟环境。在命令行中,切换到您要创建虚拟环境的目录,并运行以下命令: 这

    2024年02月11日
    浏览(43)
  • 如何在Visual Studio、Clion、Msys2中安装和使用vcpkg

    首先事情是在安装了Msys2之后,想在Clion中使用安装在Msys2中的vcpkg。但是折腾了很久还是无法解决。于是就折腾出了这篇文章,和下一篇如何在Clion使用vcpkg的文章。 不过,由于我电脑上已近配置好了vcpkg以及环境变量,要是重新删除再搞特别麻烦,于是教程我使用msys2来掩饰

    2023年04月26日
    浏览(53)
  • 【ros2】ros2环境安装与基础入门

    😏 ★,° :.☆( ̄▽ ̄)/$: .°★ 😏 这篇文章主要介绍ros2环境安装与基础入门。 学其所用,用其所学。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下,下次更新不迷路🥞 ROS 2 (Robot Operating System 2)是一个开源的机器人操作系统,它是ROS(Robot

    2024年02月09日
    浏览(44)
  • 【ROS2机器人入门到实战】3.动手安装ROS2

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 到了这一节,终于可以开始安装ROS2了。安装ROS2本来是一件比较麻

    2024年02月13日
    浏览(59)
  • ROS2入门与实践--1(ROS2的安装与环境测试)

    对于VMware虚拟机的安装教程请看这篇文章:VMware虚拟机安装 对于20.04版本的Ubuntu操作系统安装教程请看这篇文章:Ubuntu-20.04系统安装 对于22.04版本的Ubuntu操作系统安装教程请看这篇文章:Ubuntu-22.04系统安装 1.在ROS2官方的文档中,安装ROS2之前需要首先检查操作系统语言环境 官

    2024年02月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包