@foxglove/ros1 (英语)
独立 TypeScript 执行 ROS 1( Robot 操作系统) 协议,并带有可插件传输层
使用量
// An example client that connects to the ROS1 turtlesim node
import { RosNode } from "@foxglove/ros1";
import { getEnvVar, getHostname, getNetworkInterfaces, getPid, TcpSocketNode } from "@foxglove/ros1/nodejs";
import { HttpServerNodejs } from "@foxglove/xmlrpc/nodejs";
async function main() {
const name = "/testclient";
let rosNode: RosNode | undefined;
try {
rosNode = new RosNode({
name,
rosMasterUri: getEnvVar("ROS_MASTER_URI") ?? "http://localhost:11311/",
hostname: RosNode.GetRosHostname(getEnvVar, getHostname, getNetworkInterfaces),
pid: getPid(),
httpServer: new HttpServerNodejs(),
tcpSocketCreate: TcpSocketNode.Create,
log: console,
});
await rosNode.start();
const params = await rosNode.subscribeAllParams();
console.dir(params);
const sub = rosNode.subscribe({
topic: "/turtle1/color_sensor",
dataType: "turtlesim/Color",
});
sub.on("message", (msg, data, pub) => {
console.log(
`[MSG] ${JSON.stringify(msg)} (${
data.byteLength
} bytes from ${pub.connection.getTransportInfo()})`,
);
});
await new Promise((resolve) => setTimeout(resolve, 1000));
console.dir(sub.getStats());
} catch (err) {
const msg = (err as Error).stack ?? `${err}`;
console.error(msg);
} finally {
rosNode?.shutdown();
}
}
void main();
测试
yarn test
许可证
@foxglove/ros1 获得许可证 MIT 许可证。 。 。 .
释放
- 运行
yarn version --[major|minor|patch]切换到凸起版本 - 运行
git push && git push --tags以驱动新标签 - GitHub 动作会照顾剩下的
保持联系
加入我们 Discord 社区 问问题 分享反馈 随时了解我们团队的工作.