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

2023-05-16

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:11311

ERROR: 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sw模型转urdf,并在gazebo和rviz中显示 的相关文章

随机推荐

  • windows10下使用docker开启Ubuntu桌面

    先安装docker xff1a https blog csdn net Mr FengT article details 107007999 然后随便在仓库中选择一个带有桌面的Ubuntu 比如我下载的 xff1a docker pull
  • Linux下的tar压缩解压缩命令详解

    tar c 建立压缩档案 x xff1a 解压 t xff1a 查看内容 r xff1a 向压缩归档文件末尾追加文件 u xff1a 更新原压缩包中的文件 这五个是独立的命令 xff0c 压缩解压都要用到其中一个 xff0c 可以和别的命令
  • Apex安装

    直接 xff1a pip install apex 最后发现会出错 xff0c 用不了 所以使用以下方法来安装 xff1a git clone https github com NVIDIA apex cd apex python setu
  • ROS 主从通信机制要点记录

    本文主机是PC xff0c 从机是树莓派4B 1 主从机器都处于同一局域网下 xff0c 即连接同一wifi 2 分别在主从机上终端输入 ifconfig 查看当前ip 3 分别打开主从机器的 etc hosts 文件 xff0c 使用su
  • 怎么制作自己的数据集

    我们在做深度学习时 xff0c 一般都是跑别人公开的数据集 xff0c 如果想要跑自己的数据集怎么办 xff1f 今天就记录一下我自己用的一种方法 1 假设待分类一共有n类 2 新建一个文件夹 xff0c 在该文件夹下新建n子个文件夹和n个
  • python 将列表中的字符串转为数字

    python 将列表中的字符串转为数字 转自 xff1a https www jb51 net article 86561 htm 本文实例讲述了Python中列表元素转为数字的方法 分享给大家供大家参考 xff0c 具体如下 xff1a
  • AI编程软件会取代程序员吗?

    最近听到同事问了这样一个问题 xff0c 今天就来好好的唠一唠 xff0c 随着科学技术的发展 xff0c 现在生命上都已经开始出现AI编程软件了 不由得感叹 xff0c 一句现在时代发展还真快呀 xff01 然后我就和他一样产生了一种小小
  • python的requests快速上手、高级用法和身份认证

    https www cnblogs com linkenpark p 10221362 html 快速上手 迫不及待了吗 xff1f 本页内容为如何入门 Requests 提供了很好的指引 其假设你已经安装了 Requests 如果还没有
  • MongoDB

    MongoDB简介 MongoDB是一个基于分布式文件存储的数据库 由C 43 43 语言编写 旨在为WEB应用提供可扩展的高性能数据存储 解决方案 MongoDB是一个介于关系数据库和非关系数据库之间的产品 xff0c 是非关系数据库当中
  • 路由器的连接——图解

    导读 现如今路由器的使用越来越普遍 xff0c 路由器有很多网线口 xff0c 你知道这些网线口该如何连接吗 xff1f 路由器后面都有哪些口 下图为一张最常用的路由器接口示意图 我们可以看到 xff0c 除了电源接口外 xff0c 路由器
  • 【PX4自动驾驶用户指南】距离传感器

    距离传感器 xff08 测距仪 xff09 距离传感器提供距离测量 xff0c 可用于地形跟踪 地形保持 如摄影时精确悬停 改进着陆行为 距离辅助 高度限制警告 碰撞预防等 本节列出了PX4支持的距离传感器 链接到更详细的文档 xff0c
  • 【MATLAB UAV Toolbox】使用指南(一)

    开始使用UAV Toolbox 设计 xff0c 仿真和部署无人机应用程序 UAV Toolbox给设计 仿真 测试和部署无人机应用程序提供了工具和参考应用 你能够设计自动飞行算法 无人机任务和飞行控制器 飞行日志分析仪应用程序可以让您交互
  • 【MATLAB UAV Toolbox】使用指南(二)

    可视化和回放MAVLink飞行日志 这个例子将展示如何将包含MAVLink包的遥测日志 xff08 TLOG xff09 加载进MATLAB 提取的详细信息用来绘图 然后再次仿真飞行 xff0c 这些消息通过MAVLink通信接口重新发布
  • ROS小乌龟程序在服务器通信的应用

    上次我们已经利用launch 文件和话题通信成功实现了小乌龟的位置与姿态的消息发布 xff0c 这次我们将利用服务通信来实现这一功能 我们将以spawn 产卵 xff0c 生成新的小乌龟 为例进行实践 首先是对相关信息的获取 xff1a r
  • STM32实验:串口接受和发送消息

    在STM32里 xff0c USART负责进行串口通信 STM32可以通过串口和其他设备进行传输并行数据 xff0c 是全双工 异步时钟控制 xff0c 设备之间进行的是点对点的数据传输 对应的STM32引脚分别是RX xff08 接收端
  • 关于传感器标定(imu标定,camera标定,camera-imu联合标定)

    博主最近在帮同门做实验 关于传感器这些标定也是初次接触 xff0c 使用orb slam3代码包 其中涉及一些传感器标定 xff0c 这里就把我用的东西汇总一下 目录 1 imu标定 1 1 使用imu utlies标定 1 1 1安装步骤
  • nuxt服务器渲染,获取数据赋值给组件 - nuxtServerInit

    前言 xff1a vue 43 nuxt js 项目中 xff0c 根据IP定位赋值 xff0c 头部可切换城市 xff0c header在layouts下调用 xff0c 首页根据定位接口返回一些数据 async asyncData ct
  • Docker基础篇

    视频链接 xff1a https www bilibili com video BV1og4y1q7M4 xff08 大名鼎鼎的B站狂神说 xff09 1 概述 官网 xff1a https docs docker com 1 1 容器较为
  • Docker进阶篇

    视频链接 xff1a https www bilibili com video BV1og4y1q7M4 xff08 大名鼎鼎的B站狂神说 xff09 1 Docker镜像详解 1 1 UnionFS xff08 联合文件系统 xff09
  • sw模型转urdf,并在gazebo和rviz中显示

    sw模型转urdf xff0c 并在gazebo和rviz中显示 1 sw模型转urdf1 1建立机器人的三维模型1 2机器人三维模型预处理1 3装配1 4建立坐标系 2 显示2 1 在gazebo中显示2 2 在rviz中显示 3 让模型