ROS urdf学习笔记
来源:互联网 发布:网络安全法的特征 编辑:程序博客网 时间:2024/04/30 08:08
一,主要参考的几个网站。
http://blog.csdn.net/crazyquhezheng/article/details/42840955
这个里面讲了怎样写urdf对应的launch文件,以及建立小车的底板的urdf文件
http://blog.csdn.net/crazyquhezheng/article/details/42974817
这个讲了完整的小车的urdf文件。
学习到的东西:
<span style="font-size:18px;"><?xml version="1.0"?> <robot name="sp1s"> <link name="base_link"> <visual> <geometry> <box size="0.27 .15 .003"/> </geometry> <material name="white"> <color rgba="1 1 1 .5"/> </material> </visual> </link> <link name="front_left"> <visual> <geometry> <cylinder length=".025" radius="0.034"></cylinder> </geometry> <material name="yellow"> <color rgba="1 1 0 1"/> </material> </visual> </link> <joint name="base_to_front_left" type="<span style="color:#FF0000;"><strong>continuous</strong></span>"> <origin rpy="1.57075 0 0" xyz="0.06 0.064 -0.011"/> <parent link="base_link"/> <child link="front_left"/> <axis xyz="0 0 1"/> </joint> </robot></span>
其中
link可以指定许多属性:
我们详细看一下
只有
1. 首先定义的是关节的类型,将joint的类型改为”continuous” ,设置的是两个关节之间的转动关系。还有“fixed”,就是表示第二个关节相对于第一个关节是不运动的。
2. 转动的位置就是由 origin定义的,它同时定义了tyer_front_left的原点,就是这个原先相对于上一个链接之间的关系。
pry 是分别以 x y z 轴为中心转动的角度(弧度制) 1.57075 就是90度。
3. axis重新定义转动轴在原点的方向,它是一个矢量,只指示方向,它们必须满足 x * x + y * y + z * z = 1,所以这里定义Z轴方向为转动方向。
二,我需要根据这个做的事情
1)我现在存在的问题是jaco2的urdf,和kinova ros package中调用的kinova API不能对应起来。我需要自己试图建立能够对应起来的urdf,从而检测我建立的urdf是否正确。就是在kinova-ros的kinova_description文件夹中建立一个新的urdf的文件,然后写一个新的launch的文件就可以。
2)或许我的问题可以通过只修改最后一个joint的rpy参数就可以解决,可以先试一下这个。最后确实是修改了这一部分之后才没有问题了。
三,发现ros tutorial中比较有用的东西。http://wiki.ros.org/urdf
因为现在在搞gazebo仿真的部分,需要用到jaco2的urdf文件,我的做法是看懂xacro文件中写的内容,然后自己动手将xacro文件改成需要格式的urdf文件。改得差不多了之后,去看了ros官方的关于urdf的tutorial,发现很多东西很有价值。
第一条,xacro转换成urdf的命令。
rosrun xacro xacro.py `rospack find pr2_description`/robots/pr2.urdf.xacro -o /tmp/pr2.urdf
第二条,check urdf的命令,直接可以得到link之间的连接关系。
check_urdf pr2.urdf
我得到的结果
robot name is: j2n6a300---------- Successfully Parsed XML ---------------root Link: root has 1 child(ren) child(1): j2n6a300_link_base child(1): j2n6a300_link_1 child(1): j2n6a300_link_2 child(1): j2n6a300_link_3 child(1): j2n6a300_link_4 child(1): j2n6a300_link_5 child(1): j2n6a300_link_6 child(1): j2n6a300_end_effector child(2): j2n6a300_link_finger_1 child(1): j2n6a300_link_finger_tip_1 child(3): j2n6a300_link_finger_2 child(1): j2n6a300_link_finger_tip_2 child(4): j2n6a300_link_finger_3 child(1): j2n6a300_link_finger_tip_3
第三条,将urdf文件用图表的形式表示出来。
urdf_to_graphiz pr2.urdf
上述三条完全解决了我今天自己阅读xacro文件需要的问题。
- ROS urdf学习笔记
- 学习ROS笔记之URDF(部分)
- Ros学习之---URDF
- 学习ROS笔记之Using A URDF In Gazebo
- ROS学习-URDF学习纪要
- ROS学习(八):ROS URDF->transmission
- ROS学习(九):ROS URDF->link
- ROS学习(十):ROS URDF->joint
- ROS学习(十一):ROS URDF->model
- ROS学习(十二):ROS URDF->model_state
- ROS --urdf
- ROS专题----机器人模型urdf简明笔记
- ros 安装 urdf 包
- ROS知识点-URDF
- ROS中URDF仿真
- ROS之URDF模型
- ROS中使用URDF
- ROS学习(1)使用URDF创建机器人3D仿真模型
- EffectiveJava(14)在公有类中使用访问方法而非公有域
- hdu 3605-Escape(网络流SAP模板+缩点)
- ubuntu14.04安装hadoop2.7.1
- Myeclipse如何新建maven工程
- ${pageContext.request.contextPath} 绝对路劲相对路劲
- ROS urdf学习笔记
- 2956: 模积和
- 轮播图实现
- 在JSP页面无法显示List集合.类似${list.size()},${user.getId()}的解决方法
- C++ Primer Plus 学习笔记 第四章 01
- Servlet开始(自我巩固)一
- 排序算法
- leetcode 92. Reverse Linked List II
- ubuntu16.0.4安装GNOME3