ROS之初学URDF

匿名 (未验证) 提交于 2019-12-03 00:41:02

初学ROS(一)之URDF

可能大部分人都像我这样穷学生没钱买ROS支持的机器人,不过ROS还是很Nice的考虑到了这一群体,提供了模拟器支持。(明明是为了更快速的软件开发,喂!)

本想从ROS网站的培训教程开始http://wiki.ros.org/urdf/Tutorials开始的,不过本着实践为本的目的,我们还是以《Learning ROS for Robostic Programming》为基础吧。

参考文献

1.ROSѧϰ֮URDF

2.ROS urdf教程

2. 《Learning ROS for Robostic Programming》

3.

软件环境

ubuntu 16.04 lts

ros kinetic full package

准备工作

安装urdf_tutorial包

 sudo apt-get install ros-kinetic-urdf-tutorial roscore rosrun rviz rviz 新建工作区和包 mkdir -p ~/catkin_ws/src                                  #创建catkin工作环境 cd ~/catkin_ws/src                                        #来到src目录 cd  ..                                                    #来到catkin_ws目录下 catkin_init_workspace catkin_make 更新环境配置 source devel/setup.bash 创建Rospackage命名为smartcar:在src目录下面执行以下操作 catkin_create_pkg smartcar std_msgs rospy roscpp urdf    #创建这些格式的目录 在smartcar文件夹中创建launch和urdf分别来存放.launch文件和.urdf文件

当然,没有运行roscore你的rviz也无法启动。不过如果错误显示你的rviz找不到执行文件的话

学习写urdf有几个地方需要注意

  • 一定要记住它使用的是右手坐标系。x正方向朝左, y 正方向向内, z轴正方向朝上
  • 构建树结构, 即写link和joint

建模使用参数

  1. <link> tag描述各个部件;

  1. <joint> tag描述各个关节;

eg:

  1. <parent>和<child>描述关节连接的部件;
  2. <visual>

  1. <inertial>
  2. <geometry>tag 用来描述模块的形状和大小;
  3. <origin>tag用来描述模块的位置;
  4. 使用<material> tag并且设置<color
  5. <material

代码示例:第一个部件必须是base_link非常重要

 <robot name="test_robot">     <link name="base_link">       <visual>          <geometry>            <box size="0.2 .3 .1"/>          </geometry>          <origin rpy="0 0 0" xyz="0 0 0.05"/>          <material name="white">            <color rgba="1 1 1 1"/>          </material>       </visual>     </link>        <link name="wheel_1">       <visual>         <geometry>           <cylinder length="0.05" radius="0.05"/>         </geometry>         <origin rpy="0 1.5 0" xyz="0.1 0.1 0"/>         <material name="black">           <color rgba="0 0 0 1"/>         </material>       </visual>     </link>        <link name="wheel_2">       <visual>         <geometry>           <cylinder length="0.05" radius="0.05"/>         </geometry>         <origin rpy="0 1.5 0" xyz="-0.1 0.1 0"/>         <material name="black"/>       </visual>     </link>        <link name="wheel_3">       <visual>         <geometry>           <cylinder length="0.05" radius="0.05"/>         </geometry>         <origin rpy="0 1.5 0" xyz="0.1 -0.1 0"/>         <material name="black"/>       </visual>     </link>        <link name="wheel_4">       <visual>         <geometry>           <cylinder length="0.05" radius="0.05"/>         </geometry>         <origin rpy="0 1.5 0" xyz="-0.1 -0.1 0"/>         <material name="black"/>       </visual>     </link>        <joint name="joint_base_wheel1" type="fixed">       <parent link="base_link"/>       <child link="wheel_1"/>     </joint>        <joint name="joint_base_wheel2" type="fixed">       <parent link="base_link"/>       <child link="wheel_2"/>     </joint>        <joint name="joint_base_wheel3" type="fixed">       <parent link="base_link"/>       <child link="wheel_3"/>     </joint>        <joint name="joint_base_wheel4" type="fixed">       <parent link="base_link"/>       <child link="wheel_4"/>     </joint>   </robot> 

 check_urdf 01_skeleton.urdf  

 robot name is: test_robot   ---------- Successfully Parsed XML ---------------   root Link: base_link has 4 child(ren)       child(1):  wheel_1       child(2):  wheel_2       child(3):  wheel_3       child(4):  wheel_4  

现在通过如下命令,你就通过rviz查看你的小车模型啦。

 roslaunch  smartcar_description  base.urdf.rviz.launch  gui:=true

文章来源: ROS之初学URDF
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!