参考文献:
感谢古月居的教程参考。
系统1环境 windows11 ,solidworks 2023
系统2环境 Ubuntu22, Ros2(Humble)
1.下载、安装sw_urdf_exporter插件
到
html
https://wiki.ros.org/sw_urdf_exporter
直接下载安装包。

win11环境直接安装即可。
2.从装配文件导出URDF模型
2.1 装配好所有零件

2.2 在每个电机的位置添加旋转轴
选中关节电机(或者铰链结构),上方菜单[插入]->[参考集合体]->[基准轴]。直到处理完所有关节电机。


2.3 打开URDF导出器
工具\]-\>\[Tools\]-\>\[Export as URDF

2.4 设置基座base_link

2.5 设置每一个连杆




最后点击[ Preview and Export ]导出URDF
2.5 检查参数


注意保存文件只能小写英文字母,因为这里决定了ros的包名。此处保存名称为armrobot.

3.修改文件
由于默认生成的urdf及其包属于ros1的文件,此处要在ros2使用,需要做一点修改。
3.1 package.xml
包管理标签需要修改为ros2的风格
xml
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>armrobot</name>
<version>1.0.0</version>
<description>
<p>URDF Description package for armrobot</p>
<p>This package contains configuration data, 3D models and launch files for armrobot robot</p>
</description>
<author>TODO</author>
<maintainer email="TODO@email.com">TODO</maintainer>
<license>BSD</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<depend>robot_state_publisher</depend>
<depend>joint_state_publisher_gui</depend>
<depend>rviz2</depend>
<depend>ros2launch</depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>
3.2 CMakeLists.txt
bash
cmake_minimum_required(VERSION 3.8)
project(armrobot)
# 查找依赖包
find_package(ament_cmake REQUIRED)
# 安装资源文件到合适位置
install(
DIRECTORY config launch meshes urdf
DESTINATION share/${PROJECT_NAME}
)
ament_package()
3.3 新增启动文件display.launch.py
放在launch目录下
python
import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
pkg_share = get_package_share_directory('armrobot')
urdf_path = os.path.join(pkg_share, 'urdf', 'armrobot.urdf')
with open(urdf_path, 'r') as f:
robot_description = f.read()
return LaunchDescription([
Node(
package='joint_state_publisher_gui',
executable='joint_state_publisher_gui',
name='joint_state_publisher_gui'
),
Node(
package='robot_state_publisher',
executable='robot_state_publisher',
name='robot_state_publisher',
parameters=[{
'robot_description': robot_description
}]
),
Node(
package='rviz2',
executable='rviz2',
name='rviz2'
)
])
3.4 下载额外的依赖
bash
sudo apt-get update #如果 显示404、无法下载等 请换源
sudo apt install ros-humble-robot-state-publisher
sudo apt install ros-humble-joint-state-publisher
sudo apt install ros-humble-joint-state-publisher-gui
4 运行
armrobot放在.../WS/src目录下,然后 $ cd ...WS/ 。
4.1 编译工作区
bash
cd ..../WS/
colcon build #确保包被成功编译
source install/setup.bash
ros2 launch armrobot display.launch.py
4.2 设置rviz2 使用urdf模型
运行后打开了rviz2,点[Add]添加RobotModel,Topic选择发布的唯一话题。
世界坐标系选择base_link。
