ROS中使用URDF
来源:互联网 发布:nba骑士vs公牛数据 编辑:程序博客网 时间:2024/05/21 12:51
在没有机器人实物的情况下,ROS里面的机器人仿真软件是个不错的选择。
1.软件环境:
ubuntu 16.04 lts
ros kinetic full package
2.准备:
在终端输入以下内容,
mkdir -p ~/catkin_ws/src#创建catkin工作环境
cd ~/catkin_ws/src#来到src目录
初始化一下,
cd ..#来到catkin_ws目录下
catkin_init_workspace
初始化之后我们编译一下我们的工作空间,
catkin_make
更新环境配置,
source devel/setup.bash
3.创建Rospackage命名为smartcar
在src目录下面执行以下操作,
catkin_create_pkg smartcar std_msgs rospy roscpp urdf#创建这些格式的目录
4.在smartcar文件夹launch和urdf分别来存放.launch文件和.urdf文件
在smartcar文件夹下建立urdf文件夹,创建智能车的描述文件smart.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>在urdf文目录下我们检查描述文件:
check_urdf smartcar.urdf
然后在终端可以
看到
robot name is:smartcar
-------------successfully parsed xml-------------
robot link: base-link has 5 child(ren)
child(1): left_back_wheel
child(2): left_front_wheel
chlid(3): right_back_wheel
child(4): right_front_wheel
child(5): head
5.创建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>这个文件可以帮助启动Rviz来观察机器人。其中有三个node,一个是rviz,另外两个是joint_state-publisher robot_state_publisher是必须的node。
第一个输入参数model就是要启动的urdf的文件路径。
第二个输入参数gui是指定是否启动urdf关节转动控制面板窗口。
link可以指定许多属性:
- <inertial> 定义惯性
- <visual> 定义一个link的外观,大小,颜色和材质纹理贴图
- <collision>定义碰撞检测属性
我们详细看一下<visual>的定义:
- <geometry> 定义了几何形状为一个立方体,三个参数分别为长宽高,单位是米(m). 这里我们指定下层小车板子的板的尺寸。<geometry>可以有好几个选项:<box> 立方体 <cylinder>圆柱体 <sphere>球体
- <material> 指定颜色rgb和透明度a. 它们取值范围都是[0,1] 区间。
roslaunch urdf_tutorial display,launch model:=urdf/smartcar.urdf
- ROS中使用URDF
- ROS中URDF仿真
- ROS --urdf
- ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察 之一 link使用
- ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察 之二 joint 使用
- ROS 学习系列 -- 使用urdf创建机器人模型在Rviz中3D观察 之一 link使用
- ROS中URDF文件详解(重点讲解mesh属性)
- ROS中rviz添加urdf文件显示机器人模型
- ros 安装 urdf 包
- Ros学习之---URDF
- ROS知识点-URDF
- ROS urdf学习笔记
- ROS之URDF模型
- 在GAZEBO中使用URDF模型
- ROS学习-URDF学习纪要
- ROS学习(八):ROS URDF->transmission
- ROS学习(九):ROS URDF->link
- ROS学习(十):ROS URDF->joint
- C# SemaphoreSlim 实现
- 在java中使用数组实现stack [译]
- Intellij idea 非Maven项目导出War包
- POJ2528-Mayor's posters(线段树+离散化)
- EditText金额输入(限制输入金额大小和小数点后两位)
- ROS中使用URDF
- shiro框架总结二
- Android无网络状态下使用GPS定位到省市县的一种简单实现方式
- HDU_2011多项式求和
- 二叉树统计单词个数
- 90后维密超模放弃500万美元年薪去当程序媛,实力演绎超模的开挂人生~
- Facebook 最热门的开源项目推荐!
- 一图看懂,安卓开发编程语言之间的对决:Kotlin Vs Java
- 添加了点击事件之后原本的hover属性就不运行了