Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sane development environment #878

Closed
1 task
Yadunund opened this issue Apr 5, 2023 · 7 comments
Closed
1 task

Sane development environment #878

Yadunund opened this issue Apr 5, 2023 · 7 comments

Comments

@Yadunund
Copy link
Member

Yadunund commented Apr 5, 2023

Setup

  • DDS vendor: FastDDS
  • BuildType: Debian
  • Os: Ubuntu Jammy
  • Chip: Amd64

Checks

  • Test message generation with .msg, .srv, .action, and .idl on top of the installed environment

You can find the code used to generate this test case here

@Robotgir
Copy link

please assign this to me. Thankyou

@Robotgir
Copy link

@Yadunund i have tested the generation of .msg, .srv, .action, but new to .idl, did some reading and understood that interface definition language .idl format is what .msg, .srv and .action get converted to under the hood.

i came across the "rosidl generate package interface_file" command,
i am not able to find a example .idl to create one. can you please guide me in the right direction. Thankyou.

@Yadunund
Copy link
Member Author

Thanks for testing. I have a feeling the test cases should have been worded "Test message generation with .msg, .srv, .action to .idl on top of the installed environment". @clalancette does that make sense?

@Robotgir
Copy link

Robotgir commented May 11, 2023

@Yadunund @clalancette i see that the .idl files are generated for all the .msg, .srv and .action files i created

if you confirm that this test is done i will move on. Thankyou

@clalancette
Copy link
Collaborator

Thanks for testing. I have a feeling the test cases should have been worded "Test message generation with .msg, .srv, .action to .idl on top of the installed environment". @clalancette does that make sense?

So we support making messages from all of .msg, .srv, .action, and .idl files. The pipeline basically goes something like:

.msg -> .idl -> generated Python/C++ code

So you can start with a .msg file, and end up with the correct generated code. But you can also skip the .msg part and provide a .idl file directly (though we only support a subset of the full IDL specification).

Unfortunately we don't have a lot of good examples of IDL files. One example we do have is here: https://github.com/ros2/rosbag2/tree/iron/rosbag2_test_msgdefs/msg .

So we shouldn't consider this test complete until we try out the .idl files as well.

Additionally, I think we should make an update to YATM to more explicitly spell out what we want to see done here. I'll open a PR for that.

@Robotgir
Copy link

Robotgir commented May 12, 2023

@clalancette @Yadunund
I have created a sample TestMessage.idl inside "src/tutorial_interfaces/idl/TestMessage.idl" and used it in a publisher/subscriber example, and it works as expected.
usingidl_directly_1
using_idl_directly_2

  • can confirm that the c cpp py files are generated for all message types like .msg, .srv, .action and .idl, did not use "rosidl generate package interface_file" command exclusively, colcon build was sufficient.
    generation_of c_cpp_py_from_idl_msg_srv_action_files

@Yadunund
Copy link
Member Author

That's fantastic! Thank you for trying this out.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants