Robot Operating System (ROS)学习笔记---创建简单的机器人模型smartcar

搭建环境:XMWare  Ubuntu14.04  ROS(indigo)

转载自古月居  转载连接:http://www.guyuehome.com/243

一、创建硬件描述包

    1. 已创建catkin_ws
    2. 打开终端(Ctrl + Alt + T)输入:cd ~/catkin_ws/src
    3. 输入:catkin_create_pkg smartcar_description urdf (indigo版)

二、智能车尺寸数据

三、建立urdf文件

  1. 在smartcar_description文件夹下创建urdf文件:先定位到smartcar_description(cd ~/catkin_ws/src/smartcar_description),然后输入:mkdir urdf //创建urdf文件夹
  2. 定位到urdf(cd urdf)文件夹,创建smartcar.urdf(touch smartcar.urdf),在smartcar.urdf中插入下列代码
  1 <?xml version="1.0"?>
  2 <robot name="smartcar">
  3   <link name="base_link">
  4     <visual>
  5       <geometry>
  6         <box size="0.25 .16 .05"/>
  7     </geometry>
  8     <origin rpy="0 0 1.57075" xyz="0 0 0"/>
  9     <material name="blue">
 10         <color rgba="0 0 .8 1"/>
 11     </material>
 12     </visual>
 13 </link>
 14
 15 <link name="right_front_wheel">
 16     <visual>
 17       <geometry>
 18         <cylinder length=".02" radius="0.025"/>
 19       </geometry>
 20       <material name="black">
 21         <color rgba="0 0 0 1"/>
 22       </material>
 23     </visual>
 24   </link>
 25
 26   <joint name="right_front_wheel_joint" type="continuous">
 27     <axis xyz="0 0 1"/>
 28     <parent link="base_link"/>
 29     <child link="right_front_wheel"/>
 30     <origin rpy="0 1.57075 0" xyz="0.08 0.1 -0.03"/>
 31     <limit effort="100" velocity="100"/>
 32     <joint_properties damping="0.0" friction="0.0"/>
 33   </joint>
 34
 35   <link name="right_back_wheel">
 36     <visual>
 37       <geometry>
 38         <cylinder length=".02" radius="0.025"/>
 39       </geometry>
 40       <material name="black">
 41         <color rgba="0 0 0 1"/>
 42       </material>
 43     </visual>
 44   </link>
 45
 46   <joint name="right_back_wheel_joint" type="continuous">
 47     <axis xyz="0 0 1"/>
 48     <parent link="base_link"/>
 49     <child link="right_back_wheel"/>
 50     <origin rpy="0 1.57075 0" xyz="0.08 -0.1 -0.03"/>
 51     <limit effort="100" velocity="100"/>
 52     <joint_properties damping="0.0" friction="0.0"/>
 53 </joint>
 54
 55 <link name="left_front_wheel">
 56     <visual>
 57       <geometry>
 58         <cylinder length=".02" radius="0.025"/>
 59       </geometry>
 60       <material name="black">
 61         <color rgba="0 0 0 1"/>
 62       </material>
 63     </visual>
 64   </link>
 65
 66   <joint name="left_front_wheel_joint" type="continuous">
 67     <axis xyz="0 0 1"/>
 68     <parent link="base_link"/>
 69     <child link="left_front_wheel"/>
 70     <origin rpy="0 1.57075 0" xyz="-0.08 0.1 -0.03"/>
 71     <limit effort="100" velocity="100"/>
 72     <joint_properties damping="0.0" friction="0.0"/>
 73   </joint>
 74
 75   <link name="left_back_wheel">
 76     <visual>
 77       <geometry>
 78         <cylinder length=".02" radius="0.025"/>
 79       </geometry>
 80       <material name="black">
 81         <color rgba="0 0 0 1"/>
 82       </material>
 83     </visual>
 84   </link>
 85
 86   <joint name="left_back_wheel_joint" type="continuous">
 87     <axis xyz="0 0 1"/>
 88     <parent link="base_link"/>
 89     <child link="left_back_wheel"/>
 90     <origin rpy="0 1.57075 0" xyz="-0.08 -0.1 -0.03"/>
 91     <limit effort="100" velocity="100"/>
 92     <joint_properties damping="0.0" friction="0.0"/>
 93   </joint>
 94
 95   <link name="head">
 96     <visual>
 97       <geometry>
 98         <box size=".02 .03 .03"/>
 99       </geometry>
100       <material name="white">
101           <color rgba="1 1 1 1"/>
102       </material>
103     </visual>
104   </link>
105
106   <joint name="tobox" type="fixed">
107     <parent link="base_link"/>
108     <child link="head"/>
109     <origin xyz="0 0.08 0.025"/>
110   </joint>
111 </robot>

四、建立launch命令文件

在smartcar_description文件夹下建立launch文件夹,创建智能车的描述文件 base.urdf.rviz.launch(输入:touch base.urdf.rviz.launch创建),对其最后一行进行更改(更改内容:(find urdf_tutorial)/urdf.vcg 改为 (find urdf_tutorial)/urdf.rviz)描述代码如下:

 1 <launch>
 2     <arg name="model" />
 3     <arg name="gui" default="False" />
 4     <param name="robot_description" textfile="$(find smartcar_description)/urdf/smartcar.urdf" />
 5     <param name="use_gui" value="$(arg gui)"/>
 6     <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" >
 7     </node>
 8     <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
 9     <node name="rviz" pkg="rviz" type="rviz" args="-d $(find urdf_tutorial)/urdf.rviz" />
10 </launch>

五、效果演示

在终端中输入显示命令:

roslaunch smartcar_description base.urdf.rviz.launch gui:=true
时间: 2024-10-13 12:18:26

Robot Operating System (ROS)学习笔记---创建简单的机器人模型smartcar的相关文章

Robot Operating System (ROS)学习笔记2---使用smartcar进行仿真

搭建环境:XMWare  Ubuntu14.04  ROS(indigo) 转载自古月居  转载连接:http://www.guyuehome.com/248 一.模型完善 文件夹urdf下,创建gazebo.urdf.xacro.smartcar.urdf.xacro.smartcar_body.urdf.xacro三个文件 1.机器人主体smartcar_body.urdf.xacro文件 1 <?xml version="1.0"?> 2 <robot name

Robot Operating System (ROS)学习笔记4---语音控制

搭建环境:XMWare  Ubuntu14.04  ROS(indigo) 转载自古月居  转载连接:http://www.guyuehome.com/260 一.语音识别包 1.安装 安装很简单,直接使用ubuntu命令即可,首先安装依赖库: 1 $ sudo apt-get install gstreamer0.10-pocketsphinx 2 $ sudo apt-get install ros-indigo-audio-common 3 $ sudo apt-get install l

ROS是Robot Operating System

ROS是Robot Operating System 机器人操作系统ROS | 简介篇 同样,从个人微信公众号Nao(ID:qRobotics)搬运. 前言 先放一个ROS Industrial一周年剪辑视频. ROS已经发布八周年了,在国外科研机构中非常受欢迎.目前,以美国西南研究院为首的几位大佬开始尝试将ROS应用在工业机器人中,上面这个视频就是ROS-I项目一周年的进展情况. 为了说明讲清楚ROS,我就从ROS是什么,为什么使用ROS,如何使用ROS三个方面展开. △出自今年<机器人视觉与

Linux System Programming 学习笔记(九) 内存管理

1. 进程地址空间 Linux中,进程并不是直接操作物理内存地址,而是每个进程关联一个虚拟地址空间 内存页是memory management unit (MMU) 可以管理的最小地址单元 机器的体系结构决定了内存页大小,32位系统通常是 4KB, 64位系统通常是 8KB 内存页分为 valid or invalid: A valid page is associated with an actual page of data,例如RAM或者磁盘上的文件 An invalid page is

Linux System Programming 学习笔记(七) 线程

1. Threading is the creation and management of multiple units of execution within a single process 二进制文件是驻留在存储介质上,已被编译成操作系统可以使用,准备执行但没有正运行的休眠程序 进程是操作系统对 正在执行中的二进制文件的抽象:已加载的二进制.虚拟内存.内核资源 线程是进程内的执行单元 processes are running binaries, threads are the smal

Linux System Programming 学习笔记(四) 高级I/O

1. Scatter/Gather I/O a single system call  to  read or write data between single data stream and multiple buffers This type of I/O is so named because the data is scattered into or gathered from the given vector of buffers Scatter/Gather I/O 相比于 C标准

Learning Roadmap of Robotic Operating System (ROS)

ROS Wiki: http://wiki.ros.org/ Robots Using ROS Textbooks: A Gentle Introduction to ROS Learning ROS for Robotics Programming 1st Edition [pdf] [code] [ros wiki] 2nd Edition [code] [wiki] [online reading] Blog / Tutorial ROS 101: INTRO TO THE ROBOT O

Linux System Programming 学习笔记(五) 进程管理

1. 进程是unix系统中两个最重要的基础抽象之一(另一个是文件) A process is a running program A thread is the unit of activity inside of a process the virtualization of memory is associated with the process, the threads all share the same memory address space 2. pid The idle pro

Linux System Programming 学习笔记(十一) 时间

1. 内核提供三种不同的方式来记录时间: Wall time (or real time):actual time and date in the real world Process time:the time that a process spends executing on a processor 包括用户时间user time 和 系统时间system time Monotonic time:use the system's uptime (time since boot) for t