ROS学习-URDF学习纪要

ROS的URDF间断的学习了,老是抓不住要领,现在又重新学习了一篇终于有点眉目,问题主要集中在<link>和<joint>的关系及其中的 <orign>标签的作用,现在记录下来,以防止再忘记。

1、总结归纳:

(1)默认就是所有link的初识joint的坐标系都在世界坐标系的原点坐标系,例如:坐标原点在圆柱的中心,长方体的中心等,坐标系满足右手法则,x轴指向屏幕左边、y轴从屏幕向外,Z轴指向上方, XYZ坐标轴,红色为X, 绿色为Y,蓝色为Z。

(2)link和joint定义robot骨架,如果我们仅仅添加更多的link元素到urdf中的话,解析器不知道该如何放置它们,所以,我们必须添加关节结点来制定link间的连接关系;

(3)link和joint中都有<origin>结点,其意义是不同的<link>中表明了可视化link结点原点在关联的joint原点坐标系的位置和朝向;而<joint>结点中的<origin>结点表明了该joint原点在其父joint坐标系中的位置和方向;

(4)定义urdf文件时,一般有一个类似base_link的固定坐标系,其中没有任何参数,默认就在世界坐标系原点,此时也同时有一个默认的joint结点与世界坐标系的位置和方向相同,该joint坐标系 就是base_link结点关联的joint坐标系,而后添加l一个ink结点和joint结点后,首先用joint结点中的<origin>信息,先旋转后平移,确定新添加的link关联的joint的坐标系(此坐标系与参考坐标系就有了一定的位置和旋转关系),此时新添加的link的中心原点就移动到该joint坐标系原点所在位置(此时link中没有origin结点),而后在link结点中添加<origin>结点,此时的变换参考坐标系是新生成的joint坐标系(此时link中心和joint原点重合),而后在参考坐标系下利用origin参数完成旋转和平移,此时可以利用rviz中的可视化处理(xyz分别是不同的颜色,此时的变换不改变joint坐标系的位置和方向),如果在添加下一个link和joint的话,新的joint的位置是相对与父link关联的joint的坐标系的变换,然后用同样的方法添加link就可以了。(可以认为joint与joint结点中定义的子link关联)。

(5)关于joint间的相对位置和角度关系,一般不存在旋转默认就是一样的或者存在90度等特殊角度的选择,至于xyz由于是可变的,可以找一个容易计算的特殊角度,先确定xyz,完成urdf的定义,当机器人运动起来后可以通过tf发布实时的位置关系,也就是说urdf中定义的joint关系只是莫个瞬间的joint位置关系。

(6)所有变换都是先旋转再平移.

(7)urdf文件加载后通过tf发布的是joint之间的坐标关系和link没有关系。


详细信息可以学习:http://blog.youkuaiyun.com/dulaiduwangduxing/article/details/45395665 

Learning URDF Step by Step


### 回答1: 这是一个关于ROS Noetic软件包依赖关系的问题。其中,下列软件包的依赖关系尚不足够满足要求,无法安装: ros-noetic-desktop-full: 依赖于 ros-noetic-desktop,但它不会被安装。 依赖于 ros-noetic-perception,但它不会被安装。 依赖于 ros-noetic-simulators,但它不会被安装。 依赖于 ros-noetic-urdf-sim-tu,但它不会被安装。 ### 回答2: 这个错误提示是说明在安装 ros-noetic-desktop-full 软件包时,发现它需要依赖一些其他的软件包,但是这些软件包未被安装。其中,ros-noetic-desktop、ros-noetic-perception、ros-noetic-simulators ros-noetic-urdf-sim-tu 是四个未满足依赖关系的软件包。 这个错误提示一般是由于软件源的问题所导致的。在安装软件包时,系统会从软件源中查找该软件包以及它所需的依赖关系。如果软件源中不存在某个软件包的依赖关系,则会提示这个错误信息。 要解决这个问题,可以尝试以下几个方法: 1. 更新软件源:可通过修改软件源配置文件或使用软件源管理工具来更新软件源。更新后再次尝试安装软件包,看是否能够解决依赖关系问题。 2. 手动安装依赖关系:如果更新软件源后仍然无法解决依赖关系问题,可以尝试手动安装依赖关系。按照依赖关系的提示,逐个安装这四个软件包。安装完成后再次尝试安装 ros-noetic-desktop-full 软件包,看是否能够正常安装。 3. 使用 aptitude 命令安装:aptitude 命令可以自动处理依赖关系,可能会更好地解决这个问题。可以通过运行以下命令安装 ros-noetic-desktop-full 软件包: sudo aptitude install ros-noetic-desktop-full 以上是我的回答,希望能对你有所帮助。如果你还有其他问题,请随时回复。 ### 回答3: 这个问题意味着在安装 ros-noetic-desktop-full 软件包时,计算机无法满足所有需要的依赖关系。这些依赖关系包括 ros-noetic-desktop、ros-noetic-perception、ros-noetic-simulators ros-noetic-urdf-sim-tu。 在解决这个问题之前,我们需要了解什么是依赖关系。在软件工程中,依赖关系指的是一个软件包需要另一个软件包才能正常运行的情况。例如,在 ROS 中,ros-noetic-desktop-full 需要依赖其他的软件包才能提供完整的功能。 为了解决这个问题,我们可以使用以下方法: 1. 更新软件包源列表。我们可以更新软件包源列表,这有助于计算机查找所需的软件包。在 Ubuntu 系统中,我们可以使用以下命令更新软件包源列表:sudo apt-get update。 2. 安装依赖关系。我们可以尝试单独安装缺失的依赖关系。在 ROS 中,我们可以使用以下命令安装缺失的软件包:sudo apt-get install ros-noetic-desktop ros-noetic-perception ros-noetic-simulators ros-noetic-urdf-sim-tu。 3. 检查软件包仓库。某些情况下,软件包源可能已经过时或不再受支持。我们可以检查软件包仓库,查看软件包是否可用。在 Ubuntu 系统中,我们可以使用以下命令查看软件包仓库:apt-cache search ros-noetic-desktop-full。 总之,无法满足依赖关系的问题是常见的,在解决这个问题之前,我们需要了解依赖关系的概念,并掌握一些解决方法。在 ROS 中,我们可以使用更新软件包源列表、安装依赖关系检查软件包仓库等方法解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值