ROS2常用代码

一:编辑文件常用代码

 1.编译文件包

colcon build     //全部编译
--packages-select <project_name>  //选择单独编译的项目包

2.创建新的工程文件包

ros2 apk create <project_name>                     //创建项目
--build-type <ament_cmake/ament_python(c++/pyrhon)>        //选择使用C++还是python  
--dependencies <functional_area> <> <>             //选择要添加的依赖包

3.刷新环境

source install/setup.bash

4.执行文件包

ros2 run <project_name> <package>      //执行文件

 二:书写常用代码

1.话题通讯代码

1.发布者代码
rclcpp::Publisher<Data>::SharedPtr = publisher_ = this->create_publisher<Data>("chatter", 10); rclcpp::TimerBase::SharedPtr = timer_ = this->create_wall_timer(500ms, std::bind(&Publisher_Node::timer_callback, this)); void timer_callback()
{ auto message = Data();
publisher_->publish(message);
}
using namespace std::chrono_literals;
2.订阅者
subscription_ = this->create_subscription<Data>("chatter", 10, std::bind(&Listener_Node::topic_callback, this, std::placeholders::_1));
void topic_callback(const Data::SharedPtr msg) const{}
rclcpp::Subscription<Data>::SharedPtr subscription_;
rclcpp::spin(std::make_shared<Listener_Node>());

 三:书写packages.xml\

  <depend>rclcpp</depend>
 //用来编译msg文件用的 <build_depend>rosidl_default_generators</build_depend> <exec_depend>rosidl_default_runtime</exec_depend> <member_of_group>rosidl_interface_packages</member_of_group>

 四:书写CMakeLists.txt

//创建msg,注意大写
rosidl_generate_interfaces(${PROJECT_NAME} "msg/Stu.msg" ) //找包,编译执行 find_package(rclcpp REQUIRED) add_executable(demo src/demo.cpp) ament_target_dependencies( demo "rclcpp" ) //静态库安装位置 install(TARGETS demo DESTINATION lib/${PROJECT_NAME})

  

posted @ 2023-11-20 14:51  瑞睿王  阅读(118)  评论(0)    收藏  举报