ROS2 - Create a Custom Interface (Custom Message)

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 19

  • @DanShepherd72
    @DanShepherd72 Год назад

    Very helpful tutorials, particularly as the build system is one of the most confusing parts of ros initially I’m finding. Sometimes the code is simpler than the build scripts but it’s much clearer now, thanks 🙏

  • @MaxxG94
    @MaxxG94 Месяц назад

    Was spot on helpful, thank you.

  • @BadIdea1123
    @BadIdea1123 10 месяцев назад +2

    Thank you so much, im moving from ros1 to ros2 and i was missing the line to export dependencies for msg creation. the GPTS where no help, you just saved my from another day of pulling my hair out

  • @bennorris7569
    @bennorris7569 14 дней назад

    Around 7:00 mins, adding rosidl_interface_packages always flags an error on the following line? for example in this case test_depend becomes 'invalid, one of the following is expected, member of group or export. Any ideas?

  • @hossein_haeri
    @hossein_haeri Месяц назад

    Great tutorial! Can we have the custom msg built-in to our package? or it must be an independent package itself?

    • @RoboticsBackEnd
      @RoboticsBackEnd  Месяц назад +1

      it's technically possible, but strongly discouraged, as it's the sure way of reaching dependency hell. I've always created a dedicated packages for interfaces

  • @ahmadserhal7725
    @ahmadserhal7725 Год назад +1

    Thanks for these great videos!

  • @hashemmansi9589
    @hashemmansi9589 4 месяца назад

    I have 1 question around 14:00
    where should the package containing the message I want to use (in this case geometry_msgs) be located so that the syntax above works.
    I mean, are there cases where we must include the absolute path of the package containing the msg I want to use?

    • @hashemmansi9589
      @hashemmansi9589 4 месяца назад

      Also, lets say we want to call a variable within this message in a c++ code:
      is this the right way to do it:
      message interfaces description:
      interface_used contains:
      package/another_message M1
      and another_message contains:
      some_datatype M2
      in the C++ code:
      auto message= package::msg::interface_used;
      message.M1.M2 = .....

  • @posttoska
    @posttoska 2 месяца назад

    Thank you so much

  • @nineax0074
    @nineax0074 Год назад +1

    Nice Tutorial.
    But i have one error, that my service dose not know my interface... My error message is: Unable to import interface.srv from package package_interface. Caused by: No module named 'package_interface'
    Can you help me?

    • @surajhebbal3232
      @surajhebbal3232 Год назад

      check for typos, if not check if you have sourced the file correctly

    • @nineax0074
      @nineax0074 Год назад

      @surajhebbal3232
      I checked both. But it still dose not work. The error doese thro ROSLIBJS, maby is this a helpfull information for you :)

    • @surajhebbal3232
      @surajhebbal3232 Год назад

      idk man I'm struggling with ros myself@@nineax0074

  • @FouadRoboticist
    @FouadRoboticist 3 месяца назад

    I have 1 question around 10:00 , is it camelCase or PascalCase ?

    • @RoboticsBackEnd
      @RoboticsBackEnd  2 месяца назад

      For the name of the interface, PascalCase (also called UpperCamelCase I think)

  • @Vaishnavi-w4i
    @Vaishnavi-w4i Год назад

    Is there any github link for these ?

  • @anonymousnoman5965
    @anonymousnoman5965 Год назад +2

    ruclips.net/video/E_xBPI8SQig/видео.html
    How does your squiggly error lines magically disappear here

    • @RoboticsBackEnd
      @RoboticsBackEnd  Год назад

      No magic here (not even editing magic). One thing I've noticed with ROS2 on VS Code, is that you have to save the file so that VS code can find the includes. Try creating a new file with just #include and you'll probably have an error. Save the file and suddenly the header file is found.
      So that's what I've done in this video, is just to save the file (and of course, before, build the interface, source the workspace, and start VS code from an already sourced terminal).