geometry_tutorials icon indicating copy to clipboard operation
geometry_tutorials copied to clipboard

WIP: Add transformPose, transform to tutorials

Open felixvd opened this issue 3 years ago • 0 comments

As discussed here, these tutorials were missing the most convenient interface. I tried adding them in this PR, but I can't get the TF2 API to work. Also, I don't see a way to pass Time(0) to transformPose in the TF1 Python API.

Trying to compile this PR gives me a linker error, but I don't see where I am not matching the template:

Errors     << turtle_tf2:make /root/catkin_ws/logs/turtle_tf2/build.make.012.log                                
CMakeFiles/turtle_tf2_listener.dir/src/turtle_tf2_listener.cpp.o: In function `geometry_msgs::PoseStamped_<std::allocator<void> >& tf2_ros::BufferInterface::transform<geometry_msgs::PoseStamped_<std::allocator<void> > >(geometry_msgs::PoseStamped_<std::allocator<void> > const&, geometry_msgs::PoseStamped_<std::allocator<void> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::Time const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, ros::Duration) const':
turtle_tf2_listener.cpp:(.text._ZNK7tf2_ros15BufferInterface9transformIN13geometry_msgs12PoseStamped_ISaIvEEEEERT_RKS6_S7_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3ros4TimeESH_NSI_8DurationE[_ZNK7tf2_ros15BufferInterface9transformIN13geometry_msgs12PoseStamped_ISaIvEEEEERT_RKS6_S7_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3ros4TimeESH_NSI_8DurationE]+0x7f): undefined reference to `ros::Time const& tf2::getTimestamp<geometry_msgs::PoseStamped_<std::allocator<void> > >(geometry_msgs::PoseStamped_<std::allocator<void> > const&)'
turtle_tf2_listener.cpp:(.text._ZNK7tf2_ros15BufferInterface9transformIN13geometry_msgs12PoseStamped_ISaIvEEEEERT_RKS6_S7_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3ros4TimeESH_NSI_8DurationE[_ZNK7tf2_ros15BufferInterface9transformIN13geometry_msgs12PoseStamped_ISaIvEEEEERT_RKS6_S7_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3ros4TimeESH_NSI_8DurationE]+0x91): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& tf2::getFrameId<geometry_msgs::PoseStamped_<std::allocator<void> > >(geometry_msgs::PoseStamped_<std::allocator<void> > const&)'
turtle_tf2_listener.cpp:(.text._ZNK7tf2_ros15BufferInterface9transformIN13geometry_msgs12PoseStamped_ISaIvEEEEERT_RKS6_S7_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3ros4TimeESH_NSI_8DurationE[_ZNK7tf2_ros15BufferInterface9transformIN13geometry_msgs12PoseStamped_ISaIvEEEEERT_RKS6_S7_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN3ros4TimeESH_NSI_8DurationE]+0xea): undefined reference to `void tf2::doTransform<geometry_msgs::PoseStamped_<std::allocator<void> > >(geometry_msgs::PoseStamped_<std::allocator<void> > const&, geometry_msgs::PoseStamped_<std::allocator<void> >&, geometry_msgs::TransformStamped_<std::allocator<void> > const&)'
collect2: error: ld returned 1 exit status
make[2]: *** [/root/catkin_ws/devel/.private/turtle_tf2/lib/turtle_tf2/turtle_tf2_listener] Error 1
make[1]: *** [CMakeFiles/turtle_tf2_listener.dir/all] Error 2
make: *** [all] Error 2

This affects the following tutorial pages, which I will update after this PR is merged:
http://wiki.ros.org/tf/Tutorials/Writing%20a%20tf%20listener%20%28C%2B%2B%29
http://wiki.ros.org/tf/Tutorials/Writing%20a%20tf%20listener%20%28Python%29
http://wiki.ros.org/tf2/Tutorials/Writing%20a%20tf2%20listener%20%28C%2B%2B%29
http://wiki.ros.org/tf2/Tutorials/Writing%20a%20tf2%20listener%20%28Python%29

felixvd avatar Apr 05 '21 14:04 felixvd