URDF创建机器人(ROS2)

首先创建一个文件夹,进入主目录,打开终端

复制代码
madir -p mybot/src

进入src目录,打开新的终端,创建机器人功能包

复制代码
ros2 pkg create first

在功能包下创建launch、rviz、urdf文件夹,在urdf文件夹下创建body.urdf文件,内容如下:

复制代码
<robot name="body">
    <link name="body_link">
        <visual>
            <geometry>
                <box size="0.6 0.4 0.2"/>
            </geometry>
        </visual>
    </link>
</robot>

创建launch启动文件,启动机器人模型,关节发布模型,rviz,内容如下:

复制代码
import os
from launch import LaunchDescription
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare


def generate_launch_description():
    package_name = 'first'
    urdf_name = "body.urdf"

    ld = LaunchDescription()
    pkg_share = FindPackageShare(package=package_name).find(package_name) 
    urdf_model_path = os.path.join(pkg_share, f'urdf/{urdf_name}')

    robot_state_publisher_node = Node(
        package='robot_state_publisher',
        executable='robot_state_publisher',
        arguments=[urdf_model_path]
        )

    joint_state_publisher_node = Node(
        package='joint_state_publisher_gui',
        executable='joint_state_publisher_gui',
        name='joint_state_publisher_gui',
        arguments=[urdf_model_path]
        )

    rviz2_node = Node(
        package='rviz2',
        executable='rviz2',
        name='rviz2',
        output='screen',
        )

    ld.add_action(robot_state_publisher_node)
    ld.add_action(joint_state_publisher_node)
    ld.add_action(rviz2_node)

    return ld

配置CmakeLists文件:

复制代码

主要是添加安装目录。

以上步骤完成后,就可以编译文件了,进入mybot文件夹,打开终端,输入编译指令:

复制代码
colcon build

加载环境变量

复制代码
souce install/setup.bash

启动程序

复制代码
ros2 launch first display.launch.py

rviz启动后需要加载机器人模型,修改坐标和话题。

机器人就启动完成了。

  • joint_state_publisher_gui 负责发布机器人关节数据信息,通过joint_states话题发布
  • robot_state_publisher_node负责发布机器人模型信息robot_description,并将joint_states数据转换tf信息发布
  • rviz2_node负责显示机器人的信息

每日沸话:跌跌撞撞的日子,也能打捞其中的闪亮和美好

相关推荐
星云API技术支持3 小时前
企业微信二次开发:外部群机器人如何结合会话列表、群详情与消息事件做统一管理
机器人·企业微信
SCTF_XingTong4 小时前
机器人晶振选型避坑:三大场景清单
机器人·机器人晶振选型·机器人时钟方案
YFJ_mily4 小时前
9.24早鸟通道即将关闭|IMRA2026智能制造机器人自动化IEEE会议|往届EI稳定检索,设有学生专属投稿权益
人工智能·机器学习·机器人·自动化·智能制造·rdlink研发家·马鞍山会议
八荒启·交互动画7 小时前
机器人仿真实践(第0卷)——003机器人定义与发展史:从零实现
机器人·八荒启-交互动画·机器人仿真与模拟
鲁邦通物联网9 小时前
机器人梯控如何区分电梯门全开与半开状态
人工智能·机器人·机器人梯控·agv梯控·机器人乘梯·机器人自主乘梯·agv机器人梯控
DogDaoDao12 小时前
HYPERmotion 深度解析:当人形机器人学会“自己想招“——LLM 规划 + RL 技能库 + 全身优化的混合行为规划框架
人工智能·机器人·人形机器人·运动轨迹·自由度·运动估计·hypermotion
拓维运动科技13 小时前
机器人重复工况测试平台:零部件耐久验证与样机迭代的标准化路径
机器人·六自由度运动模拟平台·非标定制机器人动态测试平台·机器人性能测试平台·模拟机器人性能工况
八荒启·交互动画13 小时前
机器人仿真实践(第0卷)——002机器人定义与发展史:数学/物理原理
机器人·八荒启-交互动画
xwz小王子14 小时前
【通用世界模型】把机器人动作变成像素流!NVIDIA 提出 Hydra-0:跨人类、单臂与双臂统一预测和控制
数码相机·机器人
星云API技术支持14 小时前
企业微信二次开发:文件异步上传、媒体消息与回调处理的组合实践
机器人·企业微信