rviz2 显示圆形轨迹

在 RViz2 中显示圆形轨迹(推测 “原型轨迹” 为笔误),核心是通过发布符合 ROS 2 消息规范的路径数据(Path 消息) 或标记数据(Marker 消息) ,让 RViz2 订阅并渲染。以下是两种最常用的实现方案,包含完整代码、配置步骤和关键说明。

核心原理

RViz2 本身不生成轨迹,需通过 ROS 2 节点发布轨迹数据:

  • Path 消息:用于表示机器人的规划路径,默认显示为 “线段 + 箭头”,适合体现轨迹的方向性;
  • Marker 消息:用于自定义图形(如圆、点、线),可灵活控制颜色、线宽、是否填充,适合纯视觉化的圆形轨迹。

两种方案均需依赖nav_msgs(Path 消息)或visualization_msgs(Marker 消息)功能包,且需确保 RViz2 正确订阅话题、配置坐标系。

方案一:通过 Path 消息显示圆形轨迹(推荐,带方向)

1. 环境准备

确保已创建 ROS 2 工作空间(如colcon_ws),并安装依赖:

bash

# 安装依赖包(Noetic对应ROS 1,Foxy/Humble对应ROS 2,根据版本选择)
sudo apt install ros-humble-nav-msgs ros-humble-visualization-msgs ros-humble-rviz2

2. 编写发布节点(Python)

创建功能包并编写节点,生成圆形的离散路径点,封装为 Path 消息发布。

步骤 1:创建功能包

bash

cd ~/colcon_ws/src
ros2 pkg create --build-type ament_python circle_trajectory --dependencies rclpy nav_msgs geometry_msgs
cd circle_trajectory
步骤 2:编写代码(circle_path_publisher.py

circle_trajectory/circle_trajectory目录下创建文件,代码功能:

  • 生成圆形轨迹的离散点(角度从 0 到 2π,步长可调整);
  • 将点封装为Path消息(包含多个PoseStamped位姿);
  • 以固定频率(10Hz)发布到/circle_path话题。

python

运行

import rclpy
from rclpy.node import Node
from nav_msgs.msg import Path
from geometry_msgs.msg import PoseStamped, Point, Quaternion
import math

class CirclePathPublisher(Node):
    def __init__(self):
        super().__init__('circle_path_publisher')
        # 1. 配置圆形参数(可根据需求修改)
        self.radius = 1.0  # 圆的半径(单位:米)
        self.center_x = 0.0  # 圆心X坐标(相对于base_link或map)
        self.center_y = 0.0  # 圆心Y坐标
        self.angle_step = 0.1  # 角度步长(越小轨迹越平滑,建议0.05~0.2)
        self.frame_id = "base_link"  # 轨迹的坐标系(关键!需与RViz2一致)
        
        # 2. 创建Path消息发布者
        self.path_pub = self.create_publisher(Path, '/circle_path', 10)
        
        # 3. 定时发布(10Hz)
        self.timer = self.create_timer(0.1, self.publish_circle_path)
        self.get
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值