learning-urdf-03

本文介绍如何使用URDF创建一个包含四个链接和三个连续关节的简单机器人模型,并提供了详细的URDF文件示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.create model
sudo apt-get install liburdfdom-tools//安装urdf语法检查工具
urdf_check urdf.file    //检查urdf语法

my_robot.urdf

<robot name="test_robot">
  <link name="link1"/>
  <link name="link2"/>
  <link name="link3"/>
  <link name="link4"/>

  <joint name="joint1" type="continuous">
    <parent link="link1"/>
    <child link="link2" />
    <origin xyz="5 3 0" rpy="0 0 0"/>
    <axis xyz="-0.9 0.15 0">
  </joint>
  <joint name="joint2" type="continuous">
    <parent link="link1"/>
    <child link="link3" />
    <origin xyz="-2 5 0" rpy="0 0 1.57"/>
    <axis xyz="-0.707 0.707 0"/>
  </joint>
  <joint name="joint3" type="continuous">
    <parent link="link1"/>
    <child link="link4" />
    <origin xyz="5 0 0" rpy="0 0 -1.57"/>
    <axis xyz="0.707 -0.707 0"/>
  </joint>
</robot>
ros2 launch learning_urdf display.launch.py [INFO] [launch]: All log files can be found below /home/wheeltec/.ros/log/2025-07-11-20-46-04-934215-galactic-16082 [INFO] [launch]: Default logging verbosity is set to INFO Task exception was never retrieved future: <Task finished name='Task-2' coro=<LaunchService._process_one_event() done, defined at /opt/ros/galactic/lib/python3.8/site-packages/launch/launch_service.py:226> exception=PackageNotFoundError("package 'joint_state_publisher' not found, searching: ['/home/wheeltec/dev_ws1/install/learning_urdf', '/home/wheeltec/dev_ws1/install/learning_topic_cpp', '/home/wheeltec/dev_ws1/install/learning_topic', '/home/wheeltec/dev_ws1/install/learning_tf_cpp', '/home/wheeltec/dev_ws1/install/learning_tf', '/home/wheeltec/dev_ws1/install/learning_service_cpp', '/home/wheeltec/dev_ws1/install/learning_service', '/home/wheeltec/dev_ws1/install/learning_qos', '/home/wheeltec/dev_ws1/install/learning_pkg_python', '/home/wheeltec/dev_ws1/install/learning_pkg_c', '/home/wheeltec/dev_ws1/install/learning_parameter_cpp', '/home/wheeltec/dev_ws1/install/learning_parameter', '/home/wheeltec/dev_ws1/install/learning_node_cpp', '/home/wheeltec/dev_ws1/install/learning_node', '/home/wheeltec/dev_ws1/install/learning_launch', '/home/wheeltec/dev_ws1/install/learning_action_cpp', '/home/wheeltec/dev_ws1/install/learning_action', '/home/wheeltec/dev_ws1/install/learning_interface', '/home/wheeltec/dev_ws1/install/learning_gazebo_harmonic', '/home/wheeltec/dev_ws1/install/learning_gazebo', '/home/wheeltec/dev_ws1/install/learning_cv', '/home/wheeltec/usb_cam_ws/install/usb_cam', '/opt/ros/galactic']")> Traceback (most recent call last): File "/opt/ros/galactic/lib/python3.8/site-packages/ament_index_python/packages.py", line 50, in get_package_prefix content, package_prefix = get_resource('packages', package_name) File "/opt/ros/galactic/lib/python3.8/site-packages/ament_index_python/resources.py", line 48, in get_resource raise LookupError( LookupError: Could not find the resource 'joint_state_publisher' of type 'packages' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/opt/ros/galactic/lib/python3.8/site-packages/launch/launch_service.py", line 228, in _process_one_event await self.__process_event(next_event) File "/opt/ros/galactic/lib/python3.8/site-packages/launch/launch_service.py", line 248, in __process_event visit_all_entities_and_collect_futures(entity, self.__context)) File "/opt/ros/galactic/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context) File "/opt/ros/galactic/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context) File "/opt/ros/galactic/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context) [Previous line repeated 1 more time] File "/opt/ros/galactic/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 38, in visit_all_entities_and_collect_futures sub_entities = entity.visit(context) File "/opt/ros/galactic/lib/python3.8/site-packages/launch/action.py", line 108, in visit return self.execute(context) File "/opt/ros/galactic/lib/python3.8/site-packages/launch_ros/actions/node.py", line 484, in execute ret = super().execute(context) File "/opt/ros/galactic/lib/python3.8/site-packages/launch/actions/execute_process.py", line 837, in execute self.__expand_substitutions(context) File "/opt/ros/galactic/lib/python3.8/site-packages/launch/actions/execute_process.py", line 681, in __expand_substitutions cmd = [perform_substitutions(context, x) for x in self.__cmd] File "/opt/ros/galactic/lib/python3.8/site-packages/launch/actions/execute_process.py", line 681, in <listcomp> cmd = [perform_substitutions(context, x) for x in self.__cmd] File "/opt/ros/galactic/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in perform_substitutions return ''.join([context.perform_substitution(sub) for sub in subs]) File "/opt/ros/galactic/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in <listcomp> return ''.join([context.perform_substitution(sub) for sub in subs]) File "/opt/ros/galactic/lib/python3.8/site-packages/launch/launch_context.py", line 197, in perform_substitution return substitution.perform(self) File "/opt/ros/galactic/lib/python3.8/site-packages/launch_ros/substitutions/executable_in_package.py", line 76, in perform package_prefix = super().perform(context) File "/opt/ros/galactic/lib/python3.8/site-packages/launch_ros/substitutions/find_package.py", line 79, in perform result = self.find(package) File "/opt/ros/galactic/lib/python3.8/site-packages/launch_ros/substitutions/find_package.py", line 96, in find return get_package_prefix(package_name) File "/opt/ros/galactic/lib/python3.8/site-packages/ament_index_python/packages.py", line 52, in get_package_prefix raise PackageNotFoundError( ament_index_python.packages.PackageNotFoundError: "package 'joint_state_publisher' not found, searching: ['/home/wheeltec/dev_ws1/install/learning_urdf', '/home/wheeltec/dev_ws1/install/learning_topic_cpp', '/home/wheeltec/dev_ws1/install/learning_topic', '/home/wheeltec/dev_ws1/install/learning_tf_cpp', '/home/wheeltec/dev_ws1/install/learning_tf', '/home/wheeltec/dev_ws1/install/learning_service_cpp', '/home/wheeltec/dev_ws1/install/learning_service', '/home/wheeltec/dev_ws1/install/learning_qos', '/home/wheeltec/dev_ws1/install/learning_pkg_python', '/home/wheeltec/dev_ws1/install/learning_pkg_c', '/home/wheeltec/dev_ws1/install/learning_parameter_cpp', '/home/wheeltec/dev_ws1/install/learning_parameter', '/home/wheeltec/dev_ws1/install/learning_node_cpp', '/home/wheeltec/dev_ws1/install/learning_node', '/home/wheeltec/dev_ws1/install/learning_launch', '/home/wheeltec/dev_ws1/install/learning_action_cpp', '/home/wheeltec/dev_ws1/install/learning_action', '/home/wheeltec/dev_ws1/install/learning_interface', '/home/wheeltec/dev_ws1/install/learning_gazebo_harmonic', '/home/wheeltec/dev_ws1/install/learning_gazebo', '/home/wheeltec/dev_ws1/install/learning_cv', '/home/wheeltec/usb_cam_ws/install/usb_cam', '/opt/ros/galactic']"
最新发布
07-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值