一、提要:
准备在win10+Ros2 Humble环境下开发用C#编写的winform程序,本文为ros2cs库的构建及测试过程。
二、准备+使用工具
1.在win10x系统上安装Ros2 Humble版本
2.Visual Studio(我使用的是VS 2022社区版)
3.vcstool
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,可以直接下载