272|3

431

帖子

0

TA的资源

版主

ROS2导入机械臂URDF竟有这些坑?SO-ARM100 Rivz可视化避坑指南 [复制链接]

邀请:@wsdymg   @bigbat   @okhxyyo   参与回复

 

get?code=ZDg1NGNmOWE4MjZmNmFlYWRlNDI0OTMzNzVkNWJhZDUsMTc0MTcwMzYzMjkzNQ==

 

视频讲解


 

导入过程有两个坑,如下过程中进行解决

先下载urdf文件

https://github.com/TheRobotStudio/SO-ARM100

git clone git@github.com:TheRobotStudio/SO-ARM100.git

如下,包括urdf及meshes文件

 

get?code=MDQ0OTg1MWQ5NWUyMzNkOWM2ODExOWJiNDFmYjI3MTQsMTc0MTcwMzYzMjkzNQ==

 

结合《想知道两轮差速方形底盘 URDF 咋做,ROS2 配 Rviz 咋显示吗?看这里!》中介绍的如何使用在Rviz中显示urdf的Package,我们新建一个Package,命名为display_so_arm100_rviz,需要将如上meshes和urdf文件夹复制到display_so_arm100_rviz下

 

get?code=NTQ1ZjM4MWNmMzg2MDhhZThiZWU4YmY1MDFhOWJmM2YsMTc0MTcwMzYzMjkzNQ==

 

这里有一个坑,需要注意,就是urdf文件中的package名字需要修改下,参考如下

修改 urdf/SO_7DOF_ARM100_08h_HL_01d_URDF_01.SLDASM.urdf 文件中所有关于package的名称改成 display_so_arm100_rviz

 

get?code=YTVmZGI4NmRjYmQyYzEwODk1OTliMWJkZTVhNDJlNzcsMTc0MTcwMzYzMjkzNQ==

 

修改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

 

get?code=OWM4YWNiZDQ0YmI4ODg3YjJiNDIwZmRiNDc1ZjUwYTEsMTc0MTcwMzYzMjkzNQ==

 

坑2,将坐标系选成Base后,发现坐标系是倒置的,先不管发布的消息如何,将他倒过来,只需要发布一个静态TF关系,如下

ros2 run tf2_ros static_transform_publisher 0 0 0 0 0 3.14159 Base rotated_frame

再将参考坐标系宣称rotated_frame,可以看到正过来了

 

get?code=Mjg1NGYyZmYxYmJiMjhkYmE5ZDI5MmJlYmExZTgwMGEsMTc0MTcwMzYzMjkzNQ==

 

 

最新回复

SO-ARM100 Rivz可视化避坑指南,很好,收藏   详情 回复 发表于 2025-3-12 07:50

回复
举报

7002

帖子

0

TA的资源

五彩晶圆(高级)

SO-ARM100 Rivz可视化避坑指南,很好,收藏

点评

收藏夹里面可不能吃灰  详情 回复 发表于 2025-3-12 10:50

回复

431

帖子

0

TA的资源

版主

Jacktang 发表于 2025-3-12 07:50 SO-ARM100 Rivz可视化避坑指南,很好,收藏

收藏夹里面可不能吃灰


回复

431

帖子

0

TA的资源

版主

涛耐迪 发表于 2025-3-12 17:40 每一次点击都是一次学习机会,每一次回帖都能让社会进步,每一次分享都值得点赞。

每一次评论都是鼓励版主继续发帖的动力


回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 14

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表