sw模型转urdf,并在gazebo和rviz中显示

  • 1.sw模型转urdf
    • 1.1建立机器人的三维模型
    • 1.2机器人三维模型预处理
    • 1.3装配
    • 1.4建立坐标系
  • 2.显示
    • 2.1.在gazebo中显示
    • 2.2.在rviz中显示
  • 3.让模型运动
    • 3.1、下载插件
    • 3.2、删除gazebo7,下载gazebo9
    • 3.3、错误解决

1.sw模型转urdf

1.1建立机器人的三维模型

建立机器人完整的三维模型

1.2机器人三维模型预处理

首先将完整的机器人三维装配体模型从关节处分开,并分别另存为几个独立的子装配体

然后将每个子装配体另存为零件格式

注意选择要保存的几何为所有零部件,这样转换得到的零件保留了子装配体的质量、惯量等物理特征量。

1.3装配

将转换得到的零件再次装配起来,注意要让各部件的位置关系尽量特殊,如垂直或共线等。

1.4建立坐标系

1)在各个关节处插入基准轴并命名
2)建立各个连杆的坐标系
这比较关键,因为使用的是sw_2_urdf插件,所以坐标系的设置不能随意,要按照其规则来建立。

1为父连杆
2为子连杆
3为这两个连杆间的关节
4为子连杆固连坐标系
5为关节的轴线
6包含了两项,x,y,z为子连杆的固连坐标系原点在父连杆固连坐标系下的位置,R,P,Y为子连杆的固连坐标系在父连杆固连坐标系下的姿态表示
7为5所指示的关节的轴线在子连杆固连坐标系下的方位表示
但是实践发现,导出urdf后关节轴的实际位置与5所指示的轴线无关,而是由5和6共同决定的,即实际关节轴为过子连杆固连坐标系原点且与5轴线的指向相同,所以一般要让5所指示的关节轴线与固连坐标系原点重合,因此一般使用改进的DH法(固连坐标系前置)建立机器人坐标系。

1.3在urdf插件中设置
注意,在urdf中的第一个baselink的坐标确定了urdf在rviz中的机器人位姿,如baselink的z轴在urdf中指向正上方

2.显示

将urdf文件放入工作空间的src文件夹下后,运行

cd ~/catkin_ws  //回退到工作空间路径
catkin_make     //编译工作空间
source ~/catkin_ws/devel/setup.bash     //将源文件加到注册表中便于其他程序搜索使用

2.1.在gazebo中显示

  • 1.另开终端,启动节点管理器
roscore  //启动节点管理器
  • 2.运行launch文件,运行此命令的终端为运行编译、注册命令所在的终端
roslaunch ~/catkin_ws/src/car/launch/gazebo.launch   //运行launch文件

若gazebo一直preparing your world,参考这个

运行

cd ~/.gazebo/
git clone https://github.com/osrf/gazebo_models.git models

2.2.在rviz中显示

  • 1.另开终端,启动节点管理器
roscore  //启动节点管理器
  • 2.运行launch文件,运行此命令的终端为运行编译、注册命令所在的终端
roslaunch ~/catkin_ws/src/car/launch/display.launch  //运行launch文件

若终端出现如下错误

ROS_MASTER_URI=http://localhost:11311ERROR: cannot launch node of type [joint_state_publisher_gui/joint_state_publisher_gui]: joint_state_publisher_gui
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/yxy/catkin_ws/src
ROS path [2]=/opt/ros/kinetic/share
process[robot_state_publisher-2]: started with pid [4143]

只需要针对Ubuntu16版本安装对应的joint_state_publisher_gui即可,如下

sudo apt-get install ros-kinetic-joint-state-publisher-gui

若在rviz中出现global status:warn警告,

则运行

rosrun tf static_transform_publisher 0 0 0 0 0 0 map base_link 50
  • 3.添加模型,点击add添加robotmodel,并且在global options 的fixed frame中选择模型的基座baselink,一般status:error错误就会消失
    若还出现status:error错误,

    则运行如下命令即可:
rosrun joint_state_publisher joint_state_publisher

即可

3.让模型运动

参考
1、ROS中控制机器人运动的实现(在gazebo中显示)

2、探究–gazebo里 关节是如何动起来的____实现默认插件joint控制

3、ROS Control

4、Gazebo仿真学习——3.使用ROS-control设置模拟控制器驱动机器人关节

5、[ROS 学习笔记]ros_control

3.1、下载插件

sudo apt-get install ros-kinetic-controller-manager
sudo apt-get install ros-kinetic-joint-state-controller
sudo apt-get install ros-kinetic-gazebo-ros-control

3.2、删除gazebo7,下载gazebo9

参考ubuntu16.04卸载gazebo7安装gazebo9
要不然会出错,提示要安装gazebo9

3.3、错误解决

  • 1
ROS: Could not load controller 'joint_state_controller' because controller type 'joint_state_control

参考这个,将该安装的控制器的插件都安装了

sudo apt-get install ros-kinetic-joint-state-controller
sudo apt-get install ros-kinetic-effort-controllers
sudo apt-get install ros-kinetic-position-controllers
sudo apt-get install ros-kinetic-joint-trajectory-controller

sw模型转urdf,并在gazebo和rviz中显示相关推荐

  1. sw模型生成urdf文件的详细流程

    说明:作为一个电控选手,本来觉着自己不会去碰solidworks,特别是从sw模型到urdf这个极度繁琐的过程.但是当我发现咸鱼上面一次转换需要50-70块,我就决定这活还是得自己做. 期间遇到了很多 ...

  2. ROS(Noetic)学习笔记 创建机器人URDF模型并在rviz中显示过程中遇到的一些问题

    背景环境: Ubuntu 20.04 ROS-Noetic 所学教程:<ROS机器人开发实践>chapter 6_2 问题描述及解决方法: 报错:无法启动节点<robot_state ...

  3. 【ROS问题】在Rviz中显示带有纹理信息的模型文件

    问题描述 利用sw_urdf_exporter插件可以方便快捷的导出urdf package,省去了用户自己编写urdf文件的过程.但是,由于该插件导出的link是.STL格式,因此每个连杆都不带纹理 ...

  4. 6.7.1 机器人系统仿真/URDF、Gazebo与Rviz综合运用/机器人运动控制以及里程计信息显示

    6.7.1 机器人运动控制以及里程计信息显示 本节介绍的重点是,将三者结合通过gazebo模拟机器人的传感器,然后在rviz中显示这些传感器感知到的数据,主要包括: 运动控制以及里程计信息显示 雷达信 ...

  5. 利用SW插件导出urdf文件

    SW插件导出urdf文件 安装URDF插件 导出教程 安装URDF插件 插件下载链接:SW_URDF 下载插件后按照提示安装到一个文件夹路径下(任意). 然后打开SW------->进入模型或者 ...

  6. 用blender为模型贴图并在gazebo中显示

    用blender为模型贴图并在gazebo中显示 首先我用的是最新的blender2.92版本,附上链接https://www.blender.org/download/.并设置好简体中文.语言可以在 ...

  7. 从零开始仿真ROS小车(二)在gazebo中显示小车模型

    一.实现过程 1. 从零开始仿真ROS小车(一)urdf模型+rviz可视化 2.从零开始仿真ROS小车(二)在gazebo中显示小车模型 优化xacro文件,并为模型添加碰撞参数.惯性矩阵.颜色,在 ...

  8. 【ROS2知识】将urdf用在Gazebo上

    目录 前言 一.背景 二.转换为 Gazebo 的概述 2.1 必需的要点 2.2 可选的次要点 三. 元素 四.先决条件 4.1 获取RRBot项目 4.2 在 Rviz 中查看RRBot 4.3 ...

  9. Adams导入SW模型不显示

    Adams导入SW模型不显示 将模型在SOLIDWORKS中绘制完成后导入到Adams进行运动仿真,SW的模型在树中有显示,但是在界面上怎么都看不到,应该如何处理呢? 导入SW模型到Adams中,首先 ...

最新文章

  1. linux内核主要功能模块不包括,嵌入式linux(贺丹丹等编著)课后习题答案
  2. 算法导论9.2-3习题解答(寻找第i小的数)
  3. [vue] vue给组件绑定自定义事件无效怎么解决?
  4. “程序员千万不要选全栈开发”
  5. HTTP之Cookie和Session(C++ Qt框架实现)
  6. C++ this指针
  7. vue前端框架面试问题汇总,附答案
  8. 5G 基站功耗,到底有多可怕?
  9. tp5.0 根据经纬度 获取附近信息_Redis怎么实现查找附近的人之数据类型Geospatial...
  10. 【算法】排序_冒泡排序及其优化
  11. 使用node批量压缩图片
  12. CentOS 使用shc加密脚本
  13. 打印插件Lodop响应慢、卡顿问题分析与解决方案以及常见问题
  14. 好教程推荐系列:收录常见的Qt面试题
  15. php if多条件,php – 多个IF语句条件
  16. 让电代替人工去计算——机电时期的权宜之计
  17. 2018麦考林杂志计算机科学,2018年加拿大大学麦考林杂志排名发布,快来围观你喜欢的学校排名有什么变动没?...
  18. 顶级科学家是哲学家,顶级investor是哲学家
  19. Oracle中日期函数的使用
  20. IT职场: 选择外企利与弊

热门文章

  1. 那一抹秋色!漂亮的秋天风景壁纸【组图】
  2. Unity之使用Photon PUN开发多人游戏教程
  3. python字符串中的数字提取
  4. python判断复数_在python中复数怎么表示
  5. (转)大五人格、MBTI、DISC这些测评工具都有什么区别啊
  6. 在进行mvn打包的时候出现:Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.2.1.RELEAS
  7. Ackerman阿克曼(后驱动)前轮舵机转向后轮电机驱动移动平台的建模及控制算法
  8. Springcloud 集成 Skywalking 实现全链路追踪
  9. 换新手机怎样登抖音,如何从0基础开始起步做抖音号及直播
  10. matplotlib数据可视化