记录一个完整的 ROS2 程序的编写全过程

本文详细介绍了在ROS2中创建工程、创建功能包(C++和Python)、编写节点源文件、CMake配置、编译和运行程序,以及如何查看和管理ROS2消息的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 创建工程目录

2. 创建功能包

3. 创建节点源文件

4. 编写 CMake 脚本

5. 编译 ROS2 程序

6. 运行 ROS2 程序

7. 查看 ROS2 消息


1. 创建工程目录

mkdir -p project/src

2. 创建功能包

# 1. 创建 C/C++  功能包 命令行
     ros2 pkg create --build-type ament_cmake node_name --dependencies rclcpp std_msgs

# 2. 创建 Python 功能包 命令行
     ros2 pkg create --build-type ament_python node_name

     # 注意:
      ament_cmake  使用 C/C++ 的功能包
      ament_python 使用 Python 功能包

3. 创建节点源文件

1. 进入 src 目录
   cd ./project/src/

2. 编写代码:
   vi ./test/src/test.cpp

3. 填入内容:

   #include <chrono>
   #include "rclcpp/rclcpp.hpp"
   using namespace std::chrono_literals;

   class MyTimer : public rclcpp::Node {
       rclcpp::TimerBase::SharedPtr mTimer;
    public:
       MyTimer() : Node("MyTimer"){
          auto timer_cb = [this]() -> void { 
               RCLCPP_INFO(this->get_logger(), "Hello !!!!"); };
          this->mTimer = create_wall_timer(100ms, timer_cb);
       }
   };

   int main(int argc, char * argv[]){
       rclcpp::init(argc, argv);
       rclcpp::spin(std::make_shared<MyTimer>());
       rclcpp::shutdown();
       return 0;
   }

4. 编写 CMake 脚本

# 1. 打开 CMakeLists.txt
     vi test/CMakeLists.txt

# 2. 增加节点编译脚本
     add_executable(r2_test src/test.cpp)
     ament_target_dependencies(r2_test rclcpp std_msgs)

# 3. 增加安装脚本
     install(TARGETS r2_test DESTINATION lib/test)

5. 编译 ROS2 程序

1. 进入根目录
   cd ./project

2. 编译程序
   colcon build --packages-select test   # 编译指定节点
   colcon build                          # 编译全部节点

 6. 运行 ROS2 程序 

1. 进入目录
   cd ./project

2. 加载环境
   source ./install/setup.bash

3. 运行程序
   ros2 run test r2_test

 7. 查看 ROS2 消息

ros2 topic list                # 查看话题列表
ros2 topic info <topic_name>   # 查看话题信息
ros2 topic hz   <topic_name>   # 查看话题发布频率
ros2 topic bw   <topic_name>   # 查看话题传输带宽
ros2 topic echo <topic_name>   # 查看话题数据
ros2 topic pub  <topic_name> <msg_type> <msg_data>   # 发布话题消息

编写一个ROS程序需要以下几个步骤: 1. 创建ROS工作空间:首先需要创建一个ROS工作空间,用于存放ROS程序和依赖包。 2. 创建ROS包:在工作空间中创建一个ROS包,用于存放ROS节点和相关文件。 3. 编写ROS节点:在ROS包中创建ROS节点,编写节点的功能代码。 4. 编译ROS程序:使用catkin_make命令编译ROS程序,生成可执行文件。 5. 运行ROS程序:启动ROS核心和ROS节点,运行ROS程序。 以下是一个简单的例子,演示如何创建一个ROS程序: 1. 创建ROS工作空间: ``` $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_workspace $ cd ~/catkin_ws $ catkin_make ``` 2. 创建ROS包: ``` $ cd ~/catkin_ws/src $ catkin_create_pkg my_package rospy ``` 3. 编写ROS节点: 在my_package/src目录下创建一个Python文件,例如my_node.py,并添加以下内容: ``` #!/usr/bin/env python import rospy if __name__ == '__main__': rospy.init_node('my_node') rospy.loginfo('Hello, ROS!') rospy.spin() ``` 4. 编译ROS程序: ``` $ cd ~/catkin_ws $ catkin_make ``` 5. 运行ROS程序: 在一个终端中启动ROS核心: ``` $ roscore ``` 在另一个终端中运行ROS节点: ``` $ rosrun my_package my_node.py ``` 此时,ROS节点会输出一条日志信息"Hello, ROS!",表示ROS程序运行成功。 以上是一个简单的例子,实际编写ROS程序需要更多的学习和实践。建议参考ROS官方文档和相关教程,加深对ROS的理解和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值