实例介绍
ROS2-dotnet: .NET绑定ROS2源码下载
这是一套项目集合,包括绑定、代码生成器、示例等,用于.NET Core和.NET Standard下编写ROS2应用。目前支持所有内置ROS类型的生成、发布/订阅机制、客户端与服务端支持,以及动作客户端和服务器的支持,实现了跨平台支持(Linux, Windows, Windows IoT Core, UWP)。
对于Linux或Windows桌面版用户,可以在现有的ROS2安装基础上构建ros2_dotnet及其所需的包含接口定义的包。对于UWP(通用Windows平台)应用,需要将ROS2的核心编译为UWP兼容。
以下是一些运行示例程序的方法,包括发布者和订阅者:
Windows: call \dev\ros2_dotnet_ws\install\local_setup.bat ros2 run rcldotnet_examples rcldotnet_talker Linux: . ~/ros2_dotnet_ws/install/local_setup.sh ros2 run rcldotnet_examples rcldotnet_talker 订阅者: Windows: call \dev\ros2_dotnet_ws\install\local_setup.bat ros2 run rcldotnet_examples rcldotnet_listener Linux: . ~/ros2_dotnet_ws/install/local_setup.sh ros2 run rcldotnet_examples rcldotnet_listener
【实例截图】
【核心代码】
文件清单
└── ros2_dotnet-40adb43b37acd8cfb45738d1e56e7cf712ba6e6b
├── ament_dotnet_uwp.repos
├── LICENSE
├── NOTICE
├── rcldotnet
│ ├── ActionClient.cs
│ ├── ActionClientGoalHandle.cs
│ ├── ActionDefinitionStaticMemberCache.cs
│ ├── ActionGoalStatus.cs
│ ├── ActionServer.cs
│ ├── ActionServerGoalHandle.cs
│ ├── Client.cs
│ ├── Clock.cs
│ ├── CMakeLists.txt
│ ├── GuardCondition.cs
│ ├── GuidExtensions.cs
│ ├── MessageStaticMemberCache.cs
│ ├── Node.cs
│ ├── package.xml
│ ├── Publisher.cs
│ ├── QosProfile.cs
│ ├── rcldotnet_action_client.c
│ ├── rcldotnet_action_client.h
│ ├── rcldotnet.c
│ ├── rcldotnet_client.c
│ ├── rcldotnet_client.h
│ ├── rcldotnet_clock.c
│ ├── rcldotnet_clock.h
│ ├── RCLdotnet.cs
│ ├── rcldotnet_guard_condition.c
│ ├── rcldotnet_guard_condition.h
│ ├── rcldotnet.h
│ ├── rcldotnet_macros.h
│ ├── rcldotnet_node.c
│ ├── rcldotnet_node.h
│ ├── rcldotnet_publisher.c
│ ├── rcldotnet_publisher.h
│ ├── rcldotnet_timer.c
│ ├── rcldotnet_timer.h
│ ├── RCLExceptionHelper.cs
│ ├── RCLRet.cs
│ ├── SafeActionClientHandle.cs
│ ├── SafeActionGoalHandle.cs
│ ├── SafeActionServerHandle.cs
│ ├── SafeClientHandle.cs
│ ├── SafeClockHandle.cs
│ ├── SafeGuardConditionHandle.cs
│ ├── SafeNodeHandle.cs
│ ├── SafePublisherHandle.cs
│ ├── SafeQosProfileHandle.cs
│ ├── SafeRequestIdHandle.cs
│ ├── SafeServiceHandle.cs
│ ├── SafeSubscriptionHandle.cs
│ ├── SafeTimerHandle.cs
│ ├── SafeWaitSetHandle.cs
│ ├── Service.cs
│ ├── ServiceDefinitionStaticMemberCache.cs
│ ├── Subscription.cs
│ ├── test
│ │ ├── test_actions.cs
│ │ ├── test_guard_conditions.cs
│ │ ├── test_messages.cs
│ │ └── test_services.cs
│ └── Timer.cs
├── rcldotnet_common
│ ├── CMakeLists.txt
│ ├── DllLoadUtils.cs
│ ├── IRosActionDefinition.cs
│ ├── IRosActionFeedbackMessage.cs
│ ├── IRosActionGetResultRequest.cs
│ ├── IRosActionGetResultResponse.cs
│ ├── IRosActionSendGoalRequest.cs
│ ├── IRosActionSendGoalResponse.cs
│ ├── IRosMessage.cs
│ ├── IRosServiceDefinition.cs
│ └── package.xml
├── rcldotnet_examples
│ ├── CMakeLists.txt
│ ├── package.xml
│ ├── RCLDotnetActionClient.cs
│ ├── RCLDotnetActionServer.cs
│ ├── RCLDotnetClient.cs
│ ├── RCLDotnetGuardCondition.cs
│ ├── RCLDotnetListener.cs
│ ├── RCLDotnetService.cs
│ └── RCLDotnetTalker.cs
├── README.md
├── ros2_dotnet_foxy.repos
├── ros2_dotnet_humble.repos
├── ros2_dotnet_iron.repos
├── ros2_dotnet_rolling.repos
├── ros2_dotnet_uwp.repos
└── rosidl_generator_dotnet
├── bin
│ └── rosidl_generator_dotnet
├── cmake
│ ├── register_dotnet.cmake
│ ├── rosidl_generator_dotnet_generate_interfaces.cmake
│ └── rosidl_generator_dotnet_get_typesupports.cmake
├── CMakeLists.txt
├── package.xml
├── resource
│ ├── action.c.em
│ ├── action.cs.em
│ ├── action.h.em
│ ├── idl.c.em
│ ├── idl.cs.em
│ ├── idl.h.em
│ ├── msg.c.em
│ ├── msg.cs.em
│ ├── msg.h.em
│ ├── srv.c.em
│ ├── srv.cs.em
│ └── srv.h.em
├── rosidl_generator_dotnet
│ └── __init__.py
└── rosidl_generator_dotnet-extras.cmake.in
10 directories, 107 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论