| C++对象 | Python对象 | 作用 | 应用场景 |
|---|---|---|---|
rclcpp::Node | rclpy.node.Node | ROS2节点基础对象,所有程序运行单元 | 创建雷达节点、SLAM节点、控制节点 |
rclcpp::Publisher<T> | rclpy.publisher.Publisher | Topic发布对象,向外发送消息 | 发布/scan、/imu、/cmd_vel |
rclcpp::Subscription<T> | rclpy.subscription.Subscription | Topic订阅对象,接收消息 | 接收激光雷达、IMU、摄像头数据 |
rclcpp::Service<T> | rclpy.service.Service | Service服务端,请求-响应通信 | 保存地图、机器人状态查询 |
rclcpp::Client<T> | rclpy.client.Client | Service客户端,调用服务 | 请求启动任务、调用功能 |
rclcpp_action::Server<T> | rclpy.action.ActionServer | Action服务端 | 实现导航、机械臂动作 |
rclcpp_action::Client<T> | rclpy.action.ActionClient | Action客户端 | 调用Nav2导航任务 |
rclcpp::TimerBase | rclpy.timer.Timer | 定时器,周期执行函数 | 控制循环、状态发布 |
rclcpp::Parameter | rclpy.parameter.Parameter | 参数对象 | 配置速度、SLAM参数 |
rclcpp::Time | rclpy.time.Time | ROS时间对象 | 消息时间戳、传感器同步 |
rclcpp::Duration | rclpy.duration.Duration | 时间间隔对象 | 计算时间差 |
rclcpp::Rate | rclpy.timer.Rate | 控制循环频率 | 10Hz控制、100Hz控制 |
rclcpp::Executor | rclpy.executors.Executor | 管理节点回调执行 | 多节点运行 |
rclcpp::SingleThreadedExecutor | rclpy.executors.SingleThreadedExecutor | 单线程执行器 | 普通节点 |
rclcpp::MultiThreadedExecutor | rclpy.executors.MultiThreadedExecutor | 多线程执行器 | SLAM、多传感器处理 |
rclcpp::CallbackGroup | rclpy.callback_groups.CallbackGroup | 回调分组管理 | 多线程任务隔离 |
rclcpp::NodeOptions | rclpy节点参数配置 | 节点初始化配置 | 命名空间、参数加载 |
rclcpp::Logger | rclpy.logging | 日志输出 | 调试机器人状态 |
rclcpp::Clock | rclpy.clock.Clock | 时间源管理 | 仿真时间、系统时间 |
rclcpp::QoS | rclpy.qos.QoSProfile | 通信质量配置 | LiDAR高频数据传输 |
rclcpp::WaitSet | rclpy.wait_for_message | 等待消息事件 | 底层通信控制 |
ROS2消息类型对应
| ROS2消息 | C++类型 | Python类型 | 作用 | 机器狗应用 |
|---|---|---|---|---|
| String | std_msgs::msg::String | std_msgs.msg.String | 字符串 | 状态信息 |
| Bool | std_msgs::msg::Bool | std_msgs.msg.Bool | 布尔状态 | 开关控制 |
| Float32 | std_msgs::msg::Float32 | std_msgs.msg.Float32 | 浮点数据 | 温度、速度 |
| Pose | geometry_msgs::msg::Pose | geometry_msgs.msg.Pose | 位姿 | 机器人位置 |
| PoseStamped | geometry_msgs::msg::PoseStamped | geometry_msgs.msg.PoseStamped | 带时间位姿 | 导航目标点 |
| Twist | geometry_msgs::msg::Twist | geometry_msgs.msg.Twist | 速度控制 | /cmd_vel |
| TransformStamped | geometry_msgs::msg::TransformStamped | geometry_msgs.msg.TransformStamped | TF数据 | 坐标转换 |
| Imu | sensor_msgs::msg::Imu | sensor_msgs.msg.Imu | IMU数据 | 姿态估计 |
| LaserScan | sensor_msgs::msg::LaserScan | sensor_msgs.msg.LaserScan | 2D激光 | SLAM |
| PointCloud2 | sensor_msgs::msg::PointCloud2 | sensor_msgs.msg.PointCloud2 | 点云 | 3D LiDAR |
| Image | sensor_msgs::msg::Image | sensor_msgs.msg.Image | 图像 | 摄像头 |
TF2对应
| C++ | Python | 作用 |
|---|---|---|
tf2_ros::TransformBroadcaster | tf2_ros.TransformBroadcaster | 发布TF |
tf2_ros::TransformListener | tf2_ros.TransformListener | 接收TF |
tf2_ros::Buffer | tf2_ros.Buffer | 保存TF缓存 |
tf2::Quaternion | tf_transformations.quaternion_from_euler() | 欧拉角转四元数 |
tf2::Transform | tf2相关接口 | 坐标计算 |