ROS学习(1)使用URDF创建机器人3D仿真模型
2015-04-10 21:53
751 查看
在一个真实的机器人上编程很让我们更好的理解机器人的控制方式,因为真实的机器人会给我们反馈。但是在没有真实机器人供我们实践的时候,ROS的仿真功能是一个不错的选择。
ROS通过URDF(UnifiedRobot
Description Format) 就是描述机器人硬件尺寸布局.
一,软件环境
OS:Ubuntu 14.04
ROS:Indigo Full package
因为建立的是一个非常简单的机器人,所以我们尽量使用简单的元素:使用长方体代替车模,使用圆柱代替车轮,具体尺寸如下:
catkin_create_pkgsmartcar std_msgs rospy roscpp urdf
2.建立文件夹launch和urdf分别用来存放.launch文件和.urdf文件
在smartcar文件夹下建立urdf文件夹,创建智能车的描述文件smartcar.urdf,描述代码如下:
该文件可以帮助启动RViz来观察机器人。其中有三个node,一个是rviz,另外两个joint_state_publisher robot_state_publisher是必须的node。
第一个输入参数 model 就是要启动的urdf文件路径。
第二个输入参数 gui 指定是否启用关节转动控制面板窗口。
四,创建display.launch文件
link可以指定许多属性:
<inertial> 定义惯性
<visual> 定义一个link的外观,大小,颜色和材质纹理贴图
[b]<collision>定义[/b]碰撞检测属性
我们详细看一下<visual>的定义:
<geometry> 定义了几何形状为一个立方体,三个参数分别为长宽高,单位是米(m). 这里我们指定下层小车板子的板的尺寸。<geometry>可以有好几个选项:<box> 立方体 <cylinder>圆柱体
<sphere>球体
<material> 指定颜色rgb和透明度a. 它们取值范围都是[0,1] 区间。
使用下面命令启动RViz来查看我们刚刚完成的机器人模型:
运行
roslaunch smartcar display.launch gui:=true
参考:
1.Learning ROS for Robotics Peogramming
2.ROS探索总结(五)——创建简单的机器人模型smartcar
3.ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察
之一 link使用
ROS通过URDF(UnifiedRobot
Description Format) 就是描述机器人硬件尺寸布局.
一,软件环境
OS:Ubuntu 14.04
ROS:Indigo Full package
二,智能车尺寸数据
因为建立的是一个非常简单的机器人,所以我们尽量使用简单的元素:使用长方体代替车模,使用圆柱代替车轮,具体尺寸如下:
准备:
1.创建Rospackage命名为smartcar
catkin_create_pkgsmartcar std_msgs rospy roscpp urdf 2.建立文件夹launch和urdf分别用来存放.launch文件和.urdf文件
三、建立urdf文件
在smartcar文件夹下建立urdf文件夹,创建智能车的描述文件smartcar.urdf,描述代码如下:<?xml version="1.0"?> <robot name="smartcar"> <link name="base_link"> <visual> <geometry> <box size="0.25 .16 .05"/> </geometry> <origin rpy="0 0 1.57075" xyz="0 0 0"/> <material name="blue"> <color rgba="0 0 .8 1"/> </material> </visual> </link> <link name="right_front_wheel"> <visual> <geometry> <cylinder length=".02" radius="0.025"/> </geometry> <material name="black"> <color rgba="0 0 0 1"/> </material> </visual> </link> <joint name="right_front_wheel_joint" type="continuous"> <axis xyz="0 0 1"/> <parent link="base_link"/> <child link="right_front_wheel"/> <origin rpy="0 1.57075 0" xyz="0.08 0.1 -0.03"/> <limit effort="100" velocity="100"/> <joint_properties damping="0.0" friction="0.0"/> </joint> <link name="right_back_wheel"> <visual> <geometry> <cylinder length=".02" radius="0.025"/> </geometry> <material name="black"> <color rgba="0 0 0 1"/> </material> </visual> </link> <joint name="right_back_wheel_joint" type="continuous"> <axis xyz="0 0 1"/> <parent link="base_link"/> <child link="right_back_wheel"/> <origin rpy="0 1.57075 0" xyz="0.08 -0.1 -0.03"/> <limit effort="100" velocity="100"/> <joint_properties damping="0.0" friction="0.0"/> </joint> <link name="left_front_wheel"> <visual> <geometry> <cylinder length=".02" radius="0.025"/> </geometry> <material name="black"> <color rgba="0 0 0 1"/> </material> </visual> </link> <joint name="left_front_wheel_joint" type="continuous"> <axis xyz="0 0 1"/> <parent link="base_link"/> <child link="left_front_wheel"/> <origin rpy="0 1.57075 0" xyz="-0.08 0.1 -0.03"/> <limit effort="100" velocity="100"/> <joint_properties damping="0.0" friction="0.0"/> </joint> <link name="left_back_wheel"> <visual> <geometry> <cylinder length=".02" radius="0.025"/> </geometry> <material name="black"> <color rgba="0 0 0 1"/> </material> </visual> </link> <joint name="left_back_wheel_joint" type="continuous"> <axis xyz="0 0 1"/> <parent link="base_link"/> <child link="left_back_wheel"/> <origin rpy="0 1.57075 0" xyz="-0.08 -0.1 -0.03"/> <limit effort="100" velocity="100"/> <joint_properties damping="0.0" friction="0.0"/> </joint> <link name="head"> <visual> <geometry> <box size=".02 .03 .03"/> </geometry> <material name="white"> <color rgba="1 1 1 1"/> </material> </visual> </link> <joint name="tobox" type="fixed"> <parent link="base_link"/> <child link="head"/> <origin xyz="0 0.08 0.025"/> </joint> </robot>
该文件可以帮助启动RViz来观察机器人。其中有三个node,一个是rviz,另外两个joint_state_publisher robot_state_publisher是必须的node。
第一个输入参数 model 就是要启动的urdf文件路径。
第二个输入参数 gui 指定是否启用关节转动控制面板窗口。
四,创建display.launch文件
<launch> <arg name="model" /> <arg name="gui" default="False" /> <param name="robot_description" textfile="($find smartcar)/urdf/smartcar.urdf)" /> <param name="use_gui" value="$(arg gui)"/> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" /> <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" /> <node name="rviz" pkg="rviz" type="rviz" args="-d $(find urdf_tutorial)/urdf.rviz" required="true" /> </launch>
link可以指定许多属性:
<inertial> 定义惯性
<visual> 定义一个link的外观,大小,颜色和材质纹理贴图
[b]<collision>定义[/b]碰撞检测属性
我们详细看一下<visual>的定义:
<geometry> 定义了几何形状为一个立方体,三个参数分别为长宽高,单位是米(m). 这里我们指定下层小车板子的板的尺寸。<geometry>可以有好几个选项:<box> 立方体 <cylinder>圆柱体
<sphere>球体
<material> 指定颜色rgb和透明度a. 它们取值范围都是[0,1] 区间。
使用下面命令启动RViz来查看我们刚刚完成的机器人模型:
运行
roslaunch smartcar display.launch gui:=true
参考:
1.Learning ROS for Robotics Peogramming
2.ROS探索总结(五)——创建简单的机器人模型smartcar
3.ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察
之一 link使用
相关文章推荐
- ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察 之一 link使用
- ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察 之一 link使用
- ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察 之二 joint 使用
- ROS探索总结(四)(五)(六)——简单的机器人仿真 创建简单的机器人模型smartcar 使用smartcar进行仿真
- 在ROS中开始自主机器人仿真 - 3 建立自己的自主机器人URDF模型
- 使用URDF创建机械臂仿真模型
- ROS Learning-033 (提高篇-011 URDF)如何使用SolidWorks软件导出URDF机器人模型文件 — 00 给SolidWorks软件安装 sw_urdf_exporte
- ROS中gazebo工具学习(使用gazebo加载机器人模型)
- ROS机器人Diego 1#制作(十六)创建机器人的urdf模型描述文件
- ROS学习系列---RViz中移动机器人来学习 URDF,TF,base_link, map,odom和odom 主题的关系
- PythonOCC 3D图形库学习—创建立方体模型
- ROS 学习系列 -- 使用Rviz 可视化调试9轴机器人姿态融合
- ROS 学习系列 -- RViz中移动机器人来学习 URDF,TF,base_link, map,odom和odom 主题的关系
- Open GL学习 (二) 3D模型的使用
- ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot
- Turtlebot学习指导第五篇_搭建自己的ROS机器人的核心,配置navigation包并创建基本的启动文件
- unity3d游戏开发学习之使用3dmax创建导弹模型
- ROS的学习(十八)使用rosserial创建一个publisher
- Imode平台下使用原生数据创建3D模型_旋转