ROS2 변경

// ROS1 -> ROS2 변경점
// 노드 
ros::NodeHandle &nh -> std::shared_ptr<rclcpp::Node>& node

ros::Publisher pub_path ->rclcpp::Publisher<nav_msgs::msg::Path>::SharedPtr pub_path

// 시간 관련 
ros::Time::now(); -> rclcpp::Clock().now();

header.stamp.toSec() -> header.stamp.sec + header.stamp.nanosec * 1e-9

hearer.stamp.fromSec()
 - > odom_aft_mapped_.header.stamp.sec = (unsigned long) std::floor(lidar_end_time_);
    odom_aft_mapped_.header.stamp.nanosec = (unsigned long) std::round((lidar_end_time_ - std::floor(lidar_end_time_)) * 1e9);

// msg
sensor_msgs::PointCloud2  -> sensor_msgs::msg::PointCloud2 

CMakeLists.txt

ROS2 공식 문서를 참고해서 작성

ament_cmake user documentation — ROS 2 Documentation: Foxy documentation

find_package()를 통해 빌드하고자 하는 파일의 의존성에 필요한 라이브러리들을 찾을 수 있다.

Screenshot from 2023-03-31 21-29-52.png

multiple definition of 문제

Screenshot from 2023-03-31 22-51-45.png