I’m starting this topic because I could need some help polishing / keeping up to date with the rest of ROS2 my C# wrapper for ROS2. ( https://github.com/firesurfer/rclcs ) As you might have noticed I couldn’t put that much time into the rclcs in the last two months.
Also I think it’s nice to have public place to see what work needs to be done in future.
Furthermore I would like to know if there is any interest in merging any other language wrappers than the already implemented cpp and python wrappers into the mainline ROS2 development? Is there any list of requirements for client libs ?
Next I’m listing the main workitems that should be addressed next:
I had a little chat with @esteve where we discussed how to port the rclcs to use his ament extension for msbuild projects ( https://github.com/esteve/ros2_dotnet/tree/devel/dotnet_cmake_module ). This is one of the next things I trying do implement.
Next thing I’m working on is the refactoring of the message generator ( https://github.com/firesurfer/rosidl_generator_cs/tree/codedom ) I decided to create my own generator using C# instead of using the template engine because C# already has a code generation API (codedom or for .net core the roselyn code synthesizer). With the refactoring all types of messages will be supported.
A point where I’m currently stuck with is the windows support. I’m not sure whether it’s due to my code or a bug in fastRtps. If someone with more experience in development on windows could have look at this I would be really happy.
Also see the last two post in ( .NET bindings for ROS2 ) where we discussed how to implement different code paths for different operating systems.
The last big thing that needs a lot of work is implementing / supporting unit tests. I already tried a bit with the NUnit testing framework here ( https://github.com/firesurfer/system_tests/tree/master/test_rclcs ) But that’s still really hacky.
All minor stuff that needs to be done is documented in the readme ( https://github.com/firesurfer/rclcs/blob/master/README.md ) which I’m trying to keep up to date.