|
视频讲解
导入过程有两个坑,如下过程中进行解决
先下载urdf文件
git clone git@github.com:TheRobotStudio/SO-ARM100.git
如下,包括urdf及meshes文件
结合《想知道两轮差速方形底盘 URDF 咋做,ROS2 配 Rviz 咋显示吗?看这里!》中介绍的如何使用在Rviz中显示urdf的Package,我们新建一个Package,命名为display_so_arm100_rviz,需要将如上meshes和urdf文件夹复制到display_so_arm100_rviz下
这里有一个坑,需要注意,就是urdf文件中的package名字需要修改下,参考如下
修改 urdf/SO_7DOF_ARM100_08h_HL_01d_URDF_01.SLDASM.urdf 文件中所有关于package的名称改成 display_so_arm100_rviz
修改CMakeLists.txt文件,增加如下
install(DIRECTORY launch meshes urdf
DESTINATION share/${PROJECT_NAME})
launch脚本修改如下
import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch_ros.actions import Node
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 = 'display_so_arm100_rviz'
urdf_name = "SO_7DOF_ARM100_08h_HL_01d_URDF_01.SLDASM.urdf"
pkg_share = FindPackageShare(package=package_name).find(package_name)
urdf_model_path = os.path.join(pkg_share, f'urdf/{urdf_name}')
urdf_file_path = urdf_model_path
with open(urdf_file_path, 'r') as file:
robot_description = file.read()
return LaunchDescription([
Node(
package='joint_state_publisher_gui',
executable='joint_state_publisher_gui',
name='joint_state_publisher_gui',
parameters=[{'robot_description': robot_description}]
),
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'
)
])
编译,运行
colcon build --packages-select display_so_arm100_rviz
source install/setup.bash
ros2 launch display_so_arm100_rviz display_urdf.py
坑2,将坐标系选成Base后,发现坐标系是倒置的,先不管发布的消息如何,将他倒过来,只需要发布一个静态TF关系,如下
ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 3.14159 Base rotated_frame
再将参考坐标系宣称rotated_frame,可以看到正过来了