【ROS2】中级:URDF-使用 URDF 与 robot_state_publisher

目标:模拟一个用 URDF 建模的行走机器人,并在 Rviz 中查看。

教程级别:中级

 时间:15 分钟

 目录

  •  背景

  •  先决条件

  •  任务

    • 1 创建一个包

    • 2 创建 URDF 文件

    • 3 发布状态

    • 4 创建启动文件

    • 5 编辑 setup.py 文件

    • 6 安装软件包

    • 7 查看结果

  •  摘要

 背景

本教程将向您展示如何建模一个行走机器人,将状态发布为 tf2 消息,并在 Rviz 中查看模拟。首先,我们创建描述机器人组装的 URDF 模型。接下来,我们编写一个节点来模拟运动并发布 JointState 和变换。然后我们使用 robot_state_publisher 将整个机器人状态发布到 /tf2 。

b138e71299bd66e4c1dbdab98a6fe24b.gif

先决条件

  • rviz2   https://index.ros.org/p/rviz2/

始终不要忘记在您打开的每个新终端中获取 ROS 2 的源。 

source /opt/ros/jazzy/setup.bash
echo "source /opt/ros/jazzy/setup.bash" >> ~/.bashrc

 任务

1. 创建一个包

 创建目录:

mkdir -p second_ros2_ws/src

然后创建包:

cd second_ros2_ws/src
ros2 pkg create --build-type ament_python --license Apache-2.0 urdf_tutorial_r2d2 --dependencies rclpy
cd urdf_tutorial_r2d2

你现在应该看到一个 urdf_tutorial_r2d2 文件夹。接下来你将对其进行一些更改。

2 创建 URDF 文件

创建我们将存储一些资产的目录:

mkdir -p urdf

下载 URDF file 并将其保存为 second_ros2_ws/src/urdf_tutorial_r2d2/urdf/r2d2.urdf.xml 。下载 Rviz configuration file 并将其保存为 second_ros2_ws/src/urdf_tutorial_r2d2/urdf/r2d2.rviz 。

https://docs.ros.org/en/jazzy/_downloads/872802005223ffdb75b1ab7b25ad445b/r2d2.urdf.xml

https://docs.ros.org/en/jazzy/_downloads/96d68aef72c4f27f32af5961ef48c475/r2d2.rviz

3 发布状态 

现在我们需要一种方法来指定机器人所处的状态。为此,我们必须指定所有三个关节和整体里程计。

启动您喜欢的编辑器,并将以下代码粘贴到 second_ros2_ws/src/urdf_tutorial_r2d2/urdf_tutorial_r2d2/state_publisher.py 中

from math import sin, cos, pi  # 从math模块导入sin, cos, pi函数
import rclpy  # 导入rclpy库
from rclpy.node import Node  # 从rclpy.node模块导入Node类
from rclpy.qos import QoSProfile  # 从rclpy.qos模块导入QoSProfile类
from geometry_msgs.msg import Quaternion  # 从geometry_msgs.msg模块导入Quaternion消息类型
from sensor_msgs.msg import JointState  # 从sensor_msgs.msg模块导入JointState消息类型
from tf2_ros import TransformBroadcaster, TransformStamped 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值