ROS2 C#库ros2cs win10+Humble环境编译测试(附Humble+Foxy版本C#类库,适用于Unity)

一、提要:

准备在win10+Ros2 Humble环境下开发用C#编写的winform程序,本文为ros2cs库的构建及测试过程。

二、准备+使用工具

ros2cs官网github

1.在win10x系统上安装Ros2 Humble版本

具体可参考我上篇文章

2.Visual Studio(我使用的是VS 2022社区版)

3.vcstool

按照Github官方说明安装

pip install vcstool

4..NET 3.1 SDK

官网下载地址

三、构建ros2cs

注意事项:

1.使用Visual Studio Tools提供的powerShell

本地路径地址

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2022\Visual Studio

Tools

2.解决powerShell禁止运行脚本问题

用管理员权限运行后,输入,选择Y即可

set-executionpolicy remotesigned 

3.设置win10最大文件存储路径大于260个字符

 在“运行窗口”内输入或粘贴进 gpedit.msc ,然后确定。

在打开的“本地组策略编辑器”中,在左侧栏内依次进入“计算机配置”-“管理模板”-“系统”-“文件系统”,会看到右侧栏中的“启用Win32长路径”,如下图所示:

双击“启用Win32长路径”,然后勾选“已启用”,点击底部的“确定”,如下图所示:

耐心等待,构建成功~

四、 功能测试

使用官方测试源码,用VS新建发布者和接受者节点

ROS2发布者功能包(接受者类似)

发布者节点src文件夹内容(接受者类似)

 talker代码

using System;
using System.Threading;
using ROS2;
using std_msgs;

namespace Examples
{
    /// <summary> A simple listener class to illustrate Ros2cs in action </summary>
    public class ROS2Listener
    {
        public static void Main(string[] args)
        {
            Ros2cs.Init();
            INode node = Ros2cs.CreateNode("listener");

            ISubscription<std_msgs.msg.String> chatter_sub = node.CreateSubscription<std_msgs.msg.String>(
              "chatter", msg => Console.WriteLine("I heard: [" + msg.Data + "]"));

            Ros2cs.Spin(node);
            Ros2cs.Shutdown();
        }
    }
}

 listener代码

using System;
using System.Threading;
using ROS2;
using std_msgs;

namespace Examples
{
    /// <summary> A simple listener class to illustrate Ros2cs in action </summary>
    public class ROS2Listener
    {
        public static void Main(string[] args)
        {
            Ros2cs.Init();
            INode node = Ros2cs.CreateNode("listener");

            ISubscription<std_msgs.msg.String> chatter_sub = node.CreateSubscription<std_msgs.msg.String>(
              "chatter", msg => Console.WriteLine("I heard: [" + msg.Data + "]"));

            Ros2cs.Spin(node);
            Ros2cs.Shutdown();
        }
    }
}

先运行talker再运行listener进行测试 

运行成功~

五、 资源下载

已经将win10+Humble和win10+Foxy两个版本的C#类库资源上传了,均适用于Unity,可以直接下载

ROS2 C#库 win10+Humble环境编译 可适用于Unity

ROS2 C#库 win10+Foxy环境编译 可适用于Unity​​​​​​​

猜你喜欢

转载自blog.csdn.net/cxcrycr/article/details/127589302