npm 包 react-ros2djs 使用教程

阅读时长 6 分钟读完

介绍

本文将会介绍如何使用 npm 包 react-ros2djs 实现基于 ROS 的前端开发,所用到的技术有 ROS、JavaScript、React 以及 npm 等。通过本篇文章的学习,读者将会掌握通过 npm 包 react-ros2djs 实现基于 ROS 的前端开发的方法,对于 ROS 基于 web 开发的学习也将会有所帮助。

安装

首先,我们需要安装 ROS,在安装过程中需要创建一个 ROS 的 workspace,此处只做简单介绍,具体教程可以参照 ROS 官方文档。

安装好 ROS 后,我们需要安装一些其它的东西,包括 Node.js、npm 和一些 ROS 依赖包。在安装 Node.js 和 npm 之后,我们需要安装以下的 ROS 依赖包。

安装好 ROS 依赖包之后,我们可以使用以下命令来安装 react-ros2djs。

例子

下面将会通过一个简单的例子来介绍如何使用 react-ros2djs。本例子假设读者已经了解了 ROS 的基本概念,能够使用 ROS 实现一个简单的控制程序。

创建 ROS 控制程序

首先,我们需要创建一个 ROS 控制程序。该程序将会监听一个 ROS 话题,该话题将会包含我们控制机器人的一些信息。在本例子中,我们将会发送一个如下的消息:

-- -------------------- ---- -------
-
  --------- -
    -- --
    -- --
    ------ -
  --
  --------- -
    -- --
    -- --
    ------ -
  -
-

该消息包含机器人的位置和速度信息。

-- -------------------- ---- -------
-------------- ------
------ -----
---- ----------------- ------ -----

----- --------
    --- ---------------
        -------------------------------
        -------------- - -------------------------- ------ --------------

    --- ----------
        ---- - --------------
        ----- --- --------------------
            --------------------
            ------------

    --- --------------------
        ----- - -------

        -------------- - ---
        --------------- - ---

        -----------------------------

-- -------- -- -----------
    ----
        ---------------
    ------ ----------------------------
        ----

上述 Python 代码将会发布一个包含固定速度的消息。

创建 React 应用程序

现在我们需要创建 React 应用程序,该程序将会订阅 ROS 此处控制程序发布的话题,在屏幕上显示机器人的位置和速度信息。在创建 React 应用程序之前,我们需要创建一个 RosBridge 连接以便于将 ROS 话题的数据传输到 React 应用程序中。下面是一个简单的代码片段,展示了如何创建 RosBridge 连接以及如何创建一个订阅器。

-- -------------------- ---- -------
------ ------ ---- ---------
----- --- - --- ------------
  --- - ---------------------
---

----- -------- - --- --------------
  --- - ----
  ---- - -----------
  ----------- - ---------------------
---

---------------------------- -- -
  ---------------------
---

在上述代码中,我们创建了一个 RosBridge 连接,该连接监听在 9090 端口,旨在与之前创建的控制程序进行通信。在 RosBridge 连接被创建之后,我们可以创建一个订阅器,该订阅器将会订阅 cmd_vel 话题,并在收到消息之后打印出来。下面我们通过 react-ros2djs 在 React 应用程序中加入 ROS 数据的可视化展示。按照以下步骤:

  1. 在 React 应用程序中安装 react-ros2djs:
  1. 在需要使用 ROS 数据的组件中导入和使用 react-ros2djs:
-- -------------------- ---- -------
------ ----- ---- --------
------ ----- ---- ----------------

----- --- - -- -- -
  -------
    -
      -- ---- --------- -------------- -- -- -
        ---- -------- ------- ------- ---
          ----------------- ---------------- --
          ---------------------- ---------------- ---------------- ------------ --
        ------
      -
    -
  --------
--

在上述代码中,我们创建了一个 React 组件 Map,并使用了 react-ros2djs 中的 ROS2D。ROS2D 上下文在括号中定义。通俗的说就是我们将如何去订阅(ROS2D.NavigationArrow)和可视化(ROS2D.GridClient)都放到这个定义好的上下文中,之后再发布 ROS 数据时给这个子节点传递 ROS2D 上下文就有助于订阅和可视化流程的自動回调。

  1. 运行你的 React 应用程序,并观察屏幕上显示的信息。

下面是完整代码:

-- -------------------- ---- -------
------ ----- ---- --------
------ ----- ---- ----------------

----- --- - -- -- -
  -------
    -
      -- ---- --------- -------------- -- -- -
        ---- -------- ------- ------- ---
          ----------------- ---------------- --
          ---------------------- ---------------- ---------------- ------------ --
        ------
      -
    -
  --------
--

总结

本文介绍了如何使用 npm 包 react-ros2djs 实现基于 ROS 的前端开发。我们通过一个简单的例子来展示了 react-ros2djs 如何被使用来订阅 ROS 话题,并将其可视化。希望读者可以通过本文来学习和掌握如何使用 react-ros2djs 实现基于 ROS 的前端开发,并将 ROS 的控制应用扩展到 web 上。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672693660cf7123b36768

纠错
反馈