首页 > 其他分享 >12.仿真篇——模拟机械臂URDF过程

12.仿真篇——模拟机械臂URDF过程

时间:2024-09-22 14:48:31浏览次数:11  
标签:仿真 文件 12 description launch marm urdf URDF

1. 创建功能包

catkin_create_pkg marm_description urdf xacro

2. 增加launch启动文件

<launch>
    <!-- 设置机器人模型路径参数 -->
    <param name="robot_description" textfile="$(find marm_description)/urdf/marm.urdf" />
    
    <!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
    <node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
    
    <!-- 运行robot_state_publisher节点,发布tf  -->
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
    
    <!-- 运行rviz可视化界面 -->
    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find marm_description)/config/marm_urdf.rviz" required="true" />
</launch>

3. 编写urdf文件

<?xml version="1.0" ?>
<robot name="marm">

<!-- 颜色 -->
	<material name="Black">
		<color rgba="0 0 0 1"/>
	</material>
	<material name="White">
		<color rgba="1 1 1 1"/>
	</material>
	<material name="Blue">
		<color rgba="0 0 1 1"/>
	</material>
	<material name="Red">
		<color rgba="1 0 0 1"/>
	</material>

<!-- base_link -->
	<link name="base_link">
		<visual>
			<origin rpy="0 0 0" xyz="0 0 0"/>
			<geometry>
				<cylinder length="0.04" radius="0.05"/>
			</geometry>
			<material name="White"/>
		</visual>
	</link>
<!-- Link1 -->
	<link name="link1">
		<visual>
			<origin rpy="0 0 0" xyz="0 0 0.05"/>
			<geometry>
				<cylinder length="0.1" radius="0.03"/>
			</geometry>
			<material name="Blue"/>
		</visual>
	</link>

	<joint name="joint1" type="revolute">       <!-- 有上下限位的旋转关节 -->
		<parent link="base_link"/>
		<child link="link1"/>
		<origin rpy="0 0 0" xyz="0 0 0.02"/>
		<axis xyz="0 0 1"/>
		<limit effort="300" lower="-3.14159" upper="3.14159" velocity="1"/> <!-- 力矩、下位、上位、速度 -->
	</joint>

    <!-- Link2 -->
	<link name="link2">
		<visual>
			<origin rpy="0 0 0" xyz="0 0 0.07"/>
			<geometry>
				<cylinder length="0.14" radius="0.03"/>
			</geometry>
			<material name="White"/>
		</visual>
	</link>

	<joint name="joint2" type="revolute">       
		<parent link="link1"/>
		<child link="link2"/>
		<origin rpy="0 0 0" xyz="0 0 0.1"/>
		<axis xyz="0 1 0"/>
		<limit effort="300" lower="-3.14159" upper="3.14159" velocity="1"/> 
	</joint>
    
 <!-- Link3 -->
	<link name="link3">
		<visual>
			<origin rpy="0 0 0" xyz="0 0 0.075"/>
			<geometry>
				<cylinder length="0.15" radius="0.03"/>
			</geometry>
			<material name="Blue"/>
		</visual>
	</link>

	<joint name="joint3" type="revolute">       
		<parent link="link2"/>
		<child link="link3"/>
		<origin rpy="0 0 0" xyz="0 0 0.14"/>
		<axis xyz="0 1 0"/>
		<limit effort="300" lower="-3.14159" upper="3.14159" velocity="1"/> 
	</joint>

     <!-- Link4 -->
	<link name="link4">
		<visual>
			<origin rpy="0 0 0" xyz="0 0 0.03"/>
			<geometry>
				<cylinder length="0.06" radius="0.025"/>
			</geometry>
			<material name="Black"/>
		</visual>
	</link>

	<joint name="joint4" type="revolute">       
		<parent link="link3"/>
		<child link="link4"/>
		<origin rpy="0 0 0" xyz="0 0 0.15"/>
		<axis xyz="0 1 0"/>
		<limit effort="300" lower="-3.14159" upper="3.14159" velocity="1"/> 
	</joint>

     <!-- Link5 -->
	<link name="link5">
		<visual>
			<origin rpy="0 0 0" xyz="0 0 0.03"/>
			<geometry>
				<cylinder length="0.06" radius="0.03"/>
			</geometry>
			<material name="White"/>
		</visual>
	</link>

	<joint name="joint5" type="revolute">       
		<parent link="link4"/>
		<child link="link5"/>
		<origin rpy="0 0 0" xyz="0 0 0.06"/>
		<axis xyz="0 1 0"/>
		<limit effort="300" lower="-3.14159" upper="3.14159" velocity="1"/> 
	</joint>

     <!-- Link6 -->
	<link name="link6">
		<visual>
			<origin rpy="0 0 0" xyz="0 0 0.01"/>
			<geometry>
				<cylinder length="0.02" radius="0.04"/>
			</geometry>
			<material name="White"/>
		</visual>
	</link>

	<joint name="joint6" type="revolute">       
		<parent link="link5"/>
		<child link="link6"/>
		<origin rpy="0 0 0" xyz="0 0 0.06"/>
		<axis xyz="0 0 1"/>
		<limit effort="300" lower="-3.14159" upper="3.14159" velocity="1"/> 
	</joint>

<!-- 夹爪 -->
	<link name="gripper_finger_link1">
		<visual>
			<origin rpy="0 0 0" xyz="0 0 0.03"/>
			<geometry>
				<box size="0.03 0.01 0.06"/>
			</geometry>
			<material name="White"/>
		</visual>
	</link>

	<link name="gripper_finger_link2">
		<visual>
			<origin rpy="0 0 0" xyz="0 0 0.03"/>
			<geometry>
				<box size="0.03 0.01 0.06"/>
			</geometry>
			<material name="White"/>
		</visual>
	</link>

	<joint name="finger_joint1" type="prismatic">
		<parent link="link6"/>
		<child link="gripper_finger_link1"/>
		<origin rpy="0 0 0" xyz="0 -0.03 0.02"/>
		<axis xyz="0 1 0"/>
		<limit effort="100" lower="0" upper="0.06" velocity="0.02"/>
	</joint>

	<joint name="finger_joint2" type="fixed">
		<parent link="link6"/>
		<child link="gripper_finger_link2"/>
		<origin rpy="0 0 0" xyz="0 0.03 0.02"/>
	</joint>

<!-- 法兰盘 -->
	<link name="grasping_frame"/>
	
	<joint name="grasping_frame_joint" type="fixed">
		<parent link="link6"/>
		<child link="grasping_frame"/>
		<origin rpy="0 0 0" xyz="0.06 0 0"/>
	</joint>
</robot>

4. 检查urdf文件的完整性

urdf_to_graphiz mbot.urdf

5. 仿真

roscore
source ./devel/setup.bash
roslaunch marm_description display_marm_urdf.launch 

标签:仿真,文件,12,description,launch,marm,urdf,URDF
From: https://blog.csdn.net/m0_62236205/article/details/142437225

相关文章

  • (六)Protues仿真STM32单片机控制8x8LED显示
    (六)Protues仿真STM32单片机控制8x8LED显示–ARMFUN1,配置CUBEMX,将PA0~7,PAB0~7配置为GPIOOUTPUT模式2,GPIOA负责8bit数据,高电平有效,GPIOB负责行选则,低电平有效,编写行刷新函数voiddisp_set_row(unsignedchardat,charsel){ GPIOB->ODR=0xff;//关闭行选,防止将数据......
  • 【信号传输】DMA传输只能收到一半数据,发送123456 只能收到 123, 发送abcd只能收到ab,缓
    系列文章目录1.元件基础2.电路设计3.PCB设计4.元件焊接5.板子调试6.程序设计7.算法学习8.编写exe9.检测标准10.项目举例11.职业规划文章目录方案一、改DMA中断方案二、改数据类型方案三、改数据长度后记方案一、改DMA中断每个DMA通道都可以在DMA传......
  • 基于AODV和leach协议的自组网络平台matlab仿真,对比吞吐量,负荷,丢包率,剩余节点个数,
    1.算法仿真效果matlab2017b仿真结果如下(完整代码运行后无水印):本程序系统是《m基于matlab的AODV,leach自组网网络平台仿真,对比吞吐量,端到端时延,丢包率,剩余节点个数,节点消耗能量》的的升级。升级前原文章链接增加了运动节点的路由测试,包括定向运动,随机运动,静止状态,修正了丢......
  • 介绍Gazebo,ROS2兼容的模拟仿真机器人-AirSim
    介绍Gazebo,给出你的说明。Gazebo简介Gazebo是一个著名的开源机器人仿真软件,广泛用于机器人算法开发、物理交互模拟、传感器数据的模拟以及视觉仿真等。它提供了一个丰富的环境,其中包括高度详细的模型、逼真的物理引擎和高级的图形渲染。Gazebo能够模拟复杂的环境以及多......
  • 基于AODV和leach协议的自组网络平台matlab仿真,对比吞吐量,负荷,丢包率,剩余节点个数,
    1.算法仿真效果matlab2017b仿真结果如下(完整代码运行后无水印): 本程序系统是《m基于matlab的AODV,leach自组网网络平台仿真,对比吞吐量,端到端时延,丢包率,剩余节点个数,节点消耗能量》的的升级。 升级前原文章链接 增加了运动节点的路由测试,包括定向运动,随机运动,静止状......
  • 【每日刷题】Day128
    【每日刷题】Day128......
  • vCenter最新漏洞CVE-2024-38812, CVE-2024-38813修复
    第1章前言 我们从Broadcom获悉,2024年9月17日,Broadcom公布了VMwarevCneterServer、和VMwareCloudFoundation产品存在多个安全性漏洞(CVE-2024-38812,CVE-2024-38813)本次漏洞CVSS分数为9.8,漏洞评级为高危,建议大家尽快升级。当前受影响版本为:VMwarevCenterServer8.......
  • COMPX123 Hash Map Algorithm Description
    COMPX123 Assignment3S22024This assignment is due on September 22 and should be submitted on Grade- scope. Allsubmittedworkmust bedoneindividuallywithoutconsultingsomeone else’s solutions in accordancewith theUniversity’s......
  • 基于UKF(无迹卡尔曼滤波)的SINS/GPS集成导航仿真程序【需要PSINS工具箱支持】
    文章目录主要特点内容包括运行截图基于UKF(无迹卡尔曼滤波)的SINS/GPS集成导航仿真程序(需要基于PSINS工具箱,工具箱是开源的,如果需要,可以确认收货后找我要链接)。该程序能够高效地模拟导航数据,并提供详细的滤波结果及误差分析,适用于科研和工程项目。带详细的中文注释主要......
  • 雨晨26120.1843 Windows 11 IOT LTSC2024 IE 极简版
    文件:YC24H2_26120.1843_IoTltsc2024_lite_install.wim大小:1735369862字节修改时间:2024年9月21日,星期六,13:28:39MD5:45A8652ACF59A422301DC4742518A4E2SHA1:324CC1052E0CF22DCC42FBFA230246FAD0CFFF15CRC32:86AA5FA8https://www.123pan.com/s/zEbRVv-9nd8?......