基于 ros2cs 生成消息类# 第一步骤使用 NuGet 包管理器安装ros2cs dotnet tool install -g ros2cs # 第二步骤创建 ros2cs.spec 文件指令 echo include std_msgs ros2cs.spec # 第三步骤确保 ROS2 环境完全生效 source /opt/ros/jazzy/setup.bash # 验证环境变量必须包含 /opt/ros/jazzy echo $AMENT_PREFIX_PATH # 验证 std_msgs 存在 ros2 pkg list | grep std_msgs #第四步骤执行正确的 ros2cs 生成命令 # 加 --from-ament-index 从 ROS2 环境读取包-o 指定输出目录 ros2cs --from-ament-index -o Std_Messages ros2cs.specRcl.NET 示例代码static async Task Main(string[] args) { // 创建并初始化 ROS2 上下文负责节点生命周期、参数解析 await using var ctx new RclContext(args); // 创建 ROS2 节点节点名称rclnet_publisher using var node ctx.CreateNode(rclnet_publisher); Console.WriteLine(RclContext 初始化 ROS2 上下文成功...); // 创建发布者发布std_msgs/String类型的消息到指定话题 using var pub node.CreatePublisherRosidl.Messages.Std.String(/chatter); Console.WriteLine(创建发布话题/chatter 成功...); int count 0; while (true) { // 构造消息 var msg new Rosidl.Messages.Std.String($Hello ROS2 from C# rclnet! Count: {count}); // 发布消息 pub.Publish(msg); Console.WriteLine($已发布 /chatter: {msg}); count; await Task.Delay(1000); } }运行 Rcl.NET 验证# 运行项目 dotnet run # 监听话题 ros2 topic echo /chatter