📜  rospy 创建包 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:19:51.174000             🧑  作者: Mango

使用 TypeScript 创建 ROS 包

如果你已经熟悉 ROS 和 TypeScript,那么你可以使用 TypeScript 创建一个 ROS 包。TypeScript 是一种可选的静态类型语言,它可以在运行 JavaScript 的所有地方使用。

安装

在开始之前,你需要安装 Node.js 和 TypeScript。你可以在以下网站上下载和安装它们:

安装完成后,你可以在终端检查它们是否已正确安装。下面是检查命令:

node -v
tsc -v
初始化 ROS 包

现在你已经安装了所需的软件,你可以开始初始化你的 ROS 包。打开终端并创建一个 ROS 包:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_create_pkg my_package rospy

现在你的包已经在 ~/catkin_ws/src 目录中创建了。接下来,你需要初始化 npmTypeScript

cd my_package
npm init -y
tsc --init

这将在你的 my_package 目录中创建一个 package.json 文件和一个 tsconfig.json 文件。

注意:如果你使用的是 ROS 1,你需要将 JavaScript 选项设置为 true

安装依赖项

你的 ROS 包需要一些依赖项来运行。你可以使用 npm 来安装这些依赖项:

npm install --save roscpp_tutorials_msgs@0.11.0
npm install --save rosnodejs

roscpp_tutorials_msgs 是一个 ROS 包,它包含一些消息类型,你可以在你的 ROS 包中使用这些消息类型。rosnodejs 是一个 Node.js 的 ROS 客户端库,它可以让你使用 JavaScript 或 TypeScript 编写 ROS 节点。

创建 ROS 节点

现在你已经初始化了你的 ROS 包,并安装了它所需的依赖项。接下来,你可以创建一个 ROS 节点。在 src 目录下创建一个 TypeScript 文件:

cd src
touch my_node.ts

然后在 my_node.ts 文件中添加以下代码:

import * as rosnodejs from 'rosnodejs';
import { std_msgs } from 'roscpp_tutorials_msgs';

rosnodejs.initNode('my_node').then(() => {
  const publisher = rosnodejs.nh.advertise<std_msgs.String>('/my_topic_name', 1);
  const message = new std_msgs.String();
  message.data = 'Hello ROS from TypeScript!';

  publisher.publish(message);
});

这个代码会初始化一个 ROS 节点,然后在 '/my_topic_name' 主题上发布一条消息。这个消息是一个 std_msgs/String 类型的消息,并包含文本 'Hello ROS from TypeScript!'

注意:你需要在 tsconfig.json 文件中的 compilerOptions 部分中设置 module 选项为 commonjs,否则你的代码将无法编译。

编译 TypeScript 代码

现在你已经编写了一个 TypeScript 文件,你需要将其编译成 JavaScript,以便在 ROS 中使用它。你可以使用以下命令将 TypeScript 文件编译成 JavaScript 文件:

tsc

这将在 my_package 目录中创建一个 build 目录,并在其中放置一个名为 my_node.js 的 JavaScript 文件。

运行 ROS 节点

现在你已经编译了你的 TypeScript 代码,并将其转换成了 JavaScript 代码。你可以使用以下命令运行你的 ROS 节点:

rosrun my_package my_node.js

这会启动你的 ROS 节点,并在 '/my_topic_name' 主题上发布一条消息。你可以使用以下命令查看发布的消息:

rostopic echo /my_topic_name
结论

在本文中,你学习了如何使用 TypeScript 编写 ROS 节点。你了解了如何初始化一个 ROS 包,安装所需的依赖项,创建 ROS 节点,编译和运行你的 TypeScript 代码。现在你已经掌握了使用 TypeScript 编写 ROS 代码的基础知识。