1. 根据ros四元数获取yaw
tf::Pose pose;
tf::poseMsgToTF(cur_pos.pose, pose);
tf::Quaternion quat = pose.getRotation();
const double psi = tf::getYaw(quat);
static inline void tf::poseMsgToTF(const geometry_msgs::Pose &msg, tf::Pose &bt);
2. ros install可执行程序程序在CmakeLists.txt中修改
cmake_minimum_required(VERSION 3.0)
project(control_can)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
tf
ackermann_msgs
control_msgs
# parking_waypoint_follow
)
catkin_package()
include_directories(${catkin_INCLUDE_DIRS})
include_directories(include)
link_directories(lib)
add_executable(control_can src/can_com_node.cpp
src/can_com.cpp)
target_link_libraries(control_can ${catkin_LIBRARIES} controlcan pthread)
# Install targets
install(TARGETS test_hybrid_astar
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
)
# Install launch files
install(DIRECTORY launch/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
FILES_MATCHING PATTERN "*.launch"
)
# Install config files
install(DIRECTORY config/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config
FILES_MATCHING PATTERN "*.yaml"
)
# Install include files
install(DIRECTORY include/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
FILES_MATCHING PATTERN "*.h"
)
# Install lib files
install(DIRECTORY lib/
DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
FILES_MATCHING PATTERN "*.so"
)