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

Actions on ROS2 Dashing #92

Closed
anasarrak opened this issue May 15, 2019 · 11 comments
Closed

Actions on ROS2 Dashing #92

anasarrak opened this issue May 15, 2019 · 11 comments

Comments

@anasarrak
Copy link

After the lastest release of ROS2 (Dashing) I've been having some issues compiling the actions, specially the control_msgs. The exact error when compiling is the following:

Starting >>> control_msgs
--- stderr: control_msgs                               
In file included from /mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/ccpp_GripperCommand_.h:4:0,
                 from /mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/gripper_command__rosidl_typesupport_opensplice_cpp.hpp:10,
                 from /mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp:19:
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/GripperCommand_.h:41:37: error: ‘dds_’ in namespace ‘control_msgs::msg’ does not name a type
                ::control_msgs::msg::dds_::GripperCommand_ command_;
                                     ^~~~
In file included from /mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/ccpp_JointTrajectory_.h:4:0,
                 from /mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/joint_trajectory__rosidl_typesupport_opensplice_cpp.hpp:10,
                 from /mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/joint_trajectory__type_support.cpp:19:
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/JointTrajectory_.h:41:40: error: ‘dds_’ in namespace ‘trajectory_msgs::msg’ does not name a type
                ::trajectory_msgs::msg::dds_::JointTrajectory_ trajectory_;
                                        ^~~~
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp: In function ‘void control_msgs::action::typesupport_opensplice_cpp::convert_ros_message_to_dds(const __ros_msg_type_GripperCommand_Goal&, control_msgs::action::typesupport_opensplice_cpp::__dds_msg_type_GripperCommand_Goal&)’:
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp:110:38: error: ‘using __dds_msg_type_GripperCommand_Goal = struct control_msgs::action::dds_::GripperCommand_Goal_ {aka struct control_msgs::action::dds_::GripperCommand_Goal_}’ has no member named ‘command_’
     ros_message.command, dds_message.command_);
                                      ^~~~~~~~
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp: In function ‘void control_msgs::action::typesupport_opensplice_cpp::convert_dds_message_to_ros(const __dds_msg_type_GripperCommand_Goal&, control_msgs::action::typesupport_opensplice_cpp::__ros_msg_type_GripperCommand_Goal&)’:
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp:166:17: error: ‘const __dds_msg_type_GripperCommand_Goal {aka const struct control_msgs::action::dds_::GripperCommand_Goal_}’ has no member named ‘command_’
     dds_message.command_, ros_message.command);
                 ^~~~~~~~
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/joint_trajectory__type_support.cpp: In function ‘void control_msgs::action::typesupport_opensplice_cpp::convert_ros_message_to_dds(const __ros_msg_type_JointTrajectory_Goal&, control_msgs::action::typesupport_opensplice_cpp::__dds_msg_type_JointTrajectory_Goal&)’:
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/joint_trajectory__type_support.cpp:110:41: error: ‘using __dds_msg_type_JointTrajectory_Goal = struct control_msgs::action::dds_::JointTrajectory_Goal_ {aka struct control_msgs::action::dds_::JointTrajectory_Goal_}’ has no member named ‘trajectory_’; did you mean ‘JointTrajectory_Goal_’?
     ros_message.trajectory, dds_message.trajectory_);
                                         ^~~~~~~~~~~
                                         JointTrajectory_Goal_
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/joint_trajectory__type_support.cpp: In function ‘void control_msgs::action::typesupport_opensplice_cpp::convert_dds_message_to_ros(const __dds_msg_type_JointTrajectory_Goal&, control_msgs::action::typesupport_opensplice_cpp::__ros_msg_type_JointTrajectory_Goal&)’:
/mnt/myfiles/test/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/joint_trajectory__type_support.cpp:166:17: error: ‘const __dds_msg_type_JointTrajectory_Goal {aka const struct control_msgs::action::dds_::JointTrajectory_Goal_}’ has no member named ‘trajectory_’
     dds_message.trajectory_, ros_message.trajectory);
                 ^~~~~~~~~~~
make[2]: *** [CMakeFiles/control_msgs__rosidl_typesupport_opensplice_cpp.dir/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/control_msgs__rosidl_typesupport_opensplice_cpp.dir/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/joint_trajectory__type_support.cpp.o] Error 1
make[1]: *** [CMakeFiles/control_msgs__rosidl_typesupport_opensplice_cpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2
---
Failed   <<< control_msgs	[ Exited with code 2 ]

This has been discussed on the following topic, and it seems that the error is on the DDS .

@ahcorde
Copy link

ahcorde commented May 15, 2019

For ROS2 dashing, this package (released version, 0.7.0, and master) generates C header files with duplicated guard names, e.g.

$ grep -r _GRIPPERCOMMAND__H_ .
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/GripperCommand_.h:#ifndef _GRIPPERCOMMAND__H_
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/GripperCommand_.h:#define _GRIPPERCOMMAND__H_
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/GripperCommand_.h:#ifndef _GRIPPERCOMMAND__H_
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/GripperCommand_.h:#define _GRIPPERCOMMAND__H_

There is more info in this issue ros2/rosidl_typesupport_opensplice#30

@dirk-thomas
Copy link

@MarcelJordense @eboasson Is it possible to fix this bug and make a new release? I would assume that more and more users will run into this and will be unable to use ROS 2 with OpenSplice.

@MarcelJordense
Copy link
Contributor

@dirk-thomas We will try to provide a solution for this problem.

@anasarrak
Copy link
Author

@MarcelJordense Is there any update?

@MarcelJordense
Copy link
Contributor

@anasarrak We hopefully have implemented a solution for this problem. A new release of the OpenSplice CE version will be available soon. I will inform you when this release is available.

@anasarrak
Copy link
Author

@MarcelJordense Can you give us an aproximation of time of when it should be available? Do you have the patch so we can test it locally?

@MarcelJordense
Copy link
Contributor

@anasarrak A new version of OpenSplice CE is now available which should solve the problem. The release is OSPL_V6_9_190624OSS_RELEASE. Currently however only for two supported platforms generated installers are available. The installers for the other platforms will be added later. Currently I cannot provide an estimation when these installers will be available.

@anasarrak
Copy link
Author

@MarcelJordense After using your release the following error appears

Starting >>> control_msgs
--- stderr: control_msgs                               
Traceback (most recent call last):
  File "/opt/ros/dashing/lib/rosidl_typesupport_opensplice_cpp/rosidl_typesupport_opensplice_cpp", line 55, in <module>
    sys.exit(main())
  File "/opt/ros/dashing/lib/rosidl_typesupport_opensplice_cpp/rosidl_typesupport_opensplice_cpp", line 50, in main
    args.idl_pp,
  File "/opt/ros/dashing/lib/python3.6/site-packages/rosidl_typesupport_opensplice_cpp/__init__.py", line 82, in generate_dds_opensplice_cpp
    _modify(h_filename, msg_name, _replace_path_and_timestamp, idl_path=idl_path)
  File "/opt/ros/dashing/lib/python3.6/site-packages/rosidl_typesupport_opensplice_cpp/__init__.py", line 96, in _modify
    modified = callback(lines, msg_name, idl_path=idl_path)
  File "/opt/ros/dashing/lib/python3.6/site-packages/rosidl_typesupport_opensplice_cpp/__init__.py", line 115, in _replace_path_and_timestamp
    assert False, "Failed to find '// Generated: ' line"
AssertionError: Failed to find '// Generated: ' line
make[2]: *** [rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/gripper_command__type_support.cpp] Error 1
make[2]: *** Deleting file 'rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/gripper_command__type_support.cpp'
make[1]: *** [CMakeFiles/control_msgs__rosidl_typesupport_opensplice_cpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2
---
Failed   <<< control_msgs	[ Exited with code 2 ]

Commenting out the assert makes the compilation work and it seems like the messages are getting generated.

erle@kaladin:/mnt/myfiles/github/control_msgs$ du -a|grep gripper_command.hpp
	./install/include/control_msgs/msg/gripper_command.hpp
	./install/include/control_msgs/action/gripper_command.hpp
	./build/control_msgs/rosidl_generator_cpp/control_msgs/msg/gripper_command.hpp
	./build/control_msgs/rosidl_generator_cpp/control_msgs/action/gripper_command.hpp

@MarcelJordense
Copy link
Contributor

@anasarrak The assert in the init.py is not valid anymore. Sorry I forgot about that. I have issued a pull request to solve this.

@anasarrak
Copy link
Author

Great! Thanks for everything @MarcelJordense

@supercjb
Copy link

supercjb commented Jul 5, 2019

@anasarrak It seems being solved. Could you please close this ?

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

No branches or pull requests

5 participants