精华内容
下载资源
问答
  • MATLAB机器人工具箱2-机器人模型建立
    2021-10-18 17:47:00

    机器人模型建立

    轨迹规划的第一步是建立机器人模型,这里我们建立一个6自由度的转动机器人模型。

    clc;
    clear;
    
    %%轨迹规划的第一步是建立机器人模型,我们建立一个6R机器人
    %定义机器人的D-H参数
    %  a--连杆长度;alpha--连杆扭角;d--连杆偏距;theta--关节转角
    a2=0.4318; a3=0.02032;
    d2=0.14909; d4=0.43307;
    %            thetai     di      ai-1     alphai-1
    L1 = Link([pi/2        0        0           0], 'modified');
    L2 = Link([0           d2       0      -pi/2], 'modified');
    L3 = Link([-pi/2       0       a2          0], 'modified');
    L4 = Link([0           d4      a3     -pi/2], 'modified');
    L5 = Link([0            0        0       pi/2], 'modified');
    L6 = Link([0            0        0      -pi/2], 'modified');
    %连接连杆,为机器人命名
    robot=SerialLink([L1 L2 L3 L4 L5 L6], 'name', 'Tuesday');     %另一种命名方式robot.name = 'Tuesday'
    robot.display();
    %robot.plot([-pi/2 -pi/2 0 0 0 0]);
    robot.teach();
    

     

    DH参数介绍:

    以下PPT内容来自中国大学MOOC课程:东北大学《机器人基础原理》

     

     

    DH参数建模步骤:

     

    更多相关内容
  • 发那科工业机器人,ABB六轴工业机器人IRB120 IRB4400 solidwork模型下载资源,并提供模型下载地址
  • unity机器人模型

    2018-07-16 13:57:48
    unity5.6.1 -机器人模型包 可以直接拿出来用 包含法线贴图 细节贴图
  • #资源达人分享计划#
  • 发那科机器人模型

    2018-01-04 12:27:35
    发那科所有机器人的3D模型,可以直接导入使用,有兴趣的可以下载,后续有什么需要可以给留言,免费相送
  • 码垛机器人模型.rar

    2021-06-23 10:48:51
    码垛机器人模型-solidworks
  • 内部包含各种各样gazebo机器人模型,环境模型等。使用方法: https://blog.csdn.net/allenhsu6/article/details/113884240
  • #资源达人分享计划#
  • 一、聊天机器人根据对话的产生方式 1.基于检索的模型 a.有明确的问答对数据库 b.使用语句匹配的形式查找答案 C.答案相对固定,且很少出现语法错误 d....a....b....c....二、聊天机器人模型 作者:玛丽有只小绵羊
  • 机器人模型设计网页模板
  • ros的urdf机器人模型

    2018-07-20 12:04:59
    ros机器人小车,加载urdf示例程序 在机器人操作系统(ROS)中,经常需要模拟机器人运动,那么首先...创建简单的机器人模型的步骤如下: (1)创建硬件描述包 (2)建立urdf文件 (3)建立launch命令文件 (4)效果演示
  • 四足仿生机器人模型soildworks
  • ROS学习(八)通过xacro自定义移动机器人模型,对应源码。博客地址:https://blog.csdn.net/u011832219/article/details/114991807
  • 四足机器人模型sw.rar

    2021-06-23 11:00:57
    四足机器人模型sw.rar-solidworks模型
  • 自学习循路的移动机器人模型设计与实现 [日期:2005-8-8] 来源:国外电子元器件 作者:李亚明 罗 进 王百鸣 [字体:大 中 小]    摘要:介绍了一种具有自学习循路功能的轮式移动机器人模型的设计方法...
  • 机器人模型仿真(turtlebot3)

    千次阅读 2021-11-04 21:12:32
    文章详细记录了如何将turtlebot3的机器人模型文件集成到自己的项目中,并使用该模型文件在Rviz和Gzebo下进行数据可视化和运动仿真。

    简述

    机器人仿真环境与物理世界环境已高度相似,在没有真实的机器人和硬件时,这是一个很好的替代工具。另外,我们可以将算法应用到实际机器人之前在仿真环境中进行验证和测试。机器人建模可以使用urdf文件或者xacro文件,复杂的机器人对应的模型文件也比较复杂,实际项目中可以使用solidworks来自动生成。这里,我们使用turtlebot3元包中已经创建好的模型文件来进行仿真。

    turtlebot3功能包下载

    turtlebot3功能包中包含了TurtleBot3的机器人模型、SLAM和导航功能包、遥控功能包和bringup功能包等,另一个功能包turtlebot3_simulations中包含了更丰富的仿真文件。后面将从这两个包中复制出我们需要的文件来集成,并进行仿真。

    turtlebot3包下载地址:https://github.com/ROBOTIS-GIT/turtlebot3

    turtlebot3_simulations包下载地址:https://github.com/ROBOTIS-GIT/turtlebot3_simulations

    PS:后面步骤是从turtlebot3包中只提取需要的文件来进行集成,如果不想麻烦,也可以直接安装完整的turtlebot3功能包来使用:

    1. 二进制文件方式安装

    使用下面命令来安装:

    $ sudo apt install ros-noetic-turtlebot3

    使用下面的命令来运行:

    $ roscore
    $ export TURTLEBOT3_MODEL=waffle_pi
    $ roslaunch turtlebot3_gazebo turtlebot3_world.launch

    如果运行时出现下面的错误:

    libcurl: (51) SSL: no alternative certificate subject name matches target host name 'api.ignitionfuel.org'
    

    修改~/.ignition/fuel/config.yaml文件,将其中的 https://api.ignitionfuel.org 更改为 https://api.ignitionrobotics.org即可。

    1. 源代码方式安装

    进入到自己工作空间的src目录下,然后下载源代码,进行编译:

    $ cd ~/catkin_ws/src
    $ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
    $ git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
    $ git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
    $ cd ~/catkin_ws/
    $ catkin_make

    turtlebot3模型文件集成

    turtlebot3有三个版本,burger、waffle和waffle_pi,其中waffle_pi版本中配备的传感器最全面,下面使用的模型文件均为此版本。
    在这里插入图片描述
    这里在项目中创建一个功能包turtlebot3_sim_test,创建时注意添加urdf、xacro、gazebo_ros依赖
    在这里插入图片描述

    PS:关于urdf的介绍,参考:http://wiki.ros.org/urdf
            关于xacro的介绍,参考:http://wiki.ros.org/xacro

    在turtlebot3_sim_test功能包下创建几个目录:

    1. urdf:用来存储urdf 文件
      将下载的包中turtlebot3-master/turtlebot3_description/urdf目录下turtlebot3_waffle_pi.urdf.xacro文件拷贝到robot_test_ws/src/turtlebot3_sim_test/urdf目录下,这是waffle_pi机器人的模型文件
      在这里插入图片描述

    2. meshes:用来存储机器人模型的渲染文件
      将下载的包中turtlebot3-master/turtlebot3_description/meshes目录下的全部文件拷贝到robot_test_ws/src/turtlebot3_sim_test/meshes目录下,这是waffle_pi机器人的模型渲染文件
      在这里插入图片描述

    3. worlds:用来存储gazebo仿真环境文件
      将下载的包中turtlebot3_simulations-master/turtlebot3_gazebo/worlds目录下的turtlebot3_house.worldturtlebot3_world.world文件拷贝到robot_test_ws/src/turtlebot3_sim_test/worlds目录下,这是已经创建好的仿真环境,如果目前电脑的配置不高或者想快速体验的话可以集成turtlebot3_world.world文件,否则建议使用turtlebot3_house.world文件,这个文件与物理环境比较相似,不过在第一次加载时需要几分钟的时间
      在这里插入图片描述

    4. models:用来存储gazebo仿真环境配置文件
      将下载的包中turtlebot3_simulations-master/turtlebot3_gazebo/models目录下的turtlebot3_houseturtlebot3_world两个文件夹拷贝到robot_test_ws/src/turtlebot3_sim_test/models目录下,这是已经创建好的仿真环境配置文件,其中包含了gazebo中的仿真道具
      在这里插入图片描述

    5. rviz:用来存储rviz环境下机器人配置文件
      后面使用到时再进行记录

    6. launch:用来存储启动文件
      后面使用到时再进行记录

    创建完之后的完整目录如下图所示,后面仿真时会用到这些目录下的文件:
    在这里插入图片描述


    在Rviz中显示机器人模型

    下面在turtlebot3_sim_test包中添加turtlebot3_sim_rviz.launch文件来在rviz中显示机器人模型

    <launch>
        <arg name="model" default="waffle_pi" />
        
        <!-- 在参数服务器载入xacro文件 -->
        <param name="robot_description" command="$(find xacro)/xacro $(find turtlebot3_sim_test)/urdf/turtlebot3_$(arg model).urdf.xacro" />
    
        <!-- 启动rviz -->
        <node name="rviz" pkg="rviz" type="rviz" />
    
        <!-- 启动机器人状态和关节状态发布节点 -->
        <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
        <node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher" />
    
    </launch>
    

    这里加载的机器人模型文件为turtlebot3_waffle_pi.urdf.xacro,在这个xacro文件中多处引用下载的turtlebot3功能包中的turtlebot3_description目录下的文件,这里要修改成我们自己的文件路径(turtlebot3_sim_test),否则会找不到依赖文件。如果感觉麻烦的话,也可以直接将下载的turtlebot3包下的turtlebot3_description包整个复制到我们的项目中
    在这里插入图片描述

    启动launch文件

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_rviz.launch

    启动之后rviz并没有显示机器人模型
    在这里插入图片描述
    将左上角的map更改为base_link,点击左下角的Add按钮,添加RobotModel选项后即会显示机器人模型,还可以添加TF坐标关系等
    在这里插入图片描述
    可以将已设置好的配置保存为文件,下次启动launch文件时即可自动加载配置信息,在turtlebot3_sim_test包中添加rviz文件夹,点击左上角的File->Save Config As,然后选择保存的目录,输入文件名称后,点右上角的Save按钮即可保存配置文件。上面下载的功能包turtlebot3-master/turtlebot3_description/rviz目录下有一个model.rviz的配置文件,也可以直接复制到我们的robot_test_ws/src/turtlebot3_sim_test/rviz目录下来使用
    在这里插入图片描述
    再来修改下launch文件,将启动rviz的代码修改为下面的代码,修改完之后,再次启动launch文件即可自动加载配置信息

    <node name="rviz" pkg="rviz" type="rviz" args="-d $(find turtlebot3_sim_test)/rviz/model.rviz" />
    

    在Gazebo中显示机器人模型

    注意:在执行后面的操作之前先来修改下package.xml文件,否则会出现:waitForService: Service [/gazebo_gui/set_physics_properties] has not been advertised, waiting... Error Code 12 Msg: Unable to find uri[model://turtlebot3_house]错误

    在package.xml文件中添加下面这行代码,添加的原因:打开turtlebot3_house.world文件后可以看到,其中加载仿真环境配置文件的地址默认为gazebo下的地址(/usr/share/gazebo-11/models),而并非我们项目中存放仿真环境配置文件的models目录,所以会找不到文件,报上面的错误。另外一种解决办法是,将turtlebot3_sim_test包中models下的turtlebot3_house文件夹复制到/usr/share/gazebo-11/models下

    <gazebo_ros gazebo_model_path="${prefix}/models"/>
    

    在这里插入图片描述

    下面在turtlebot3_sim_test包中添加turtlebot3_sim_gazebo.launch文件来在gazebo中显示机器人模型

    <launch>
      <arg name="model" default="waffle_pi"/>
      <arg name="x_pos" default="-2.0"/>
      <arg name="y_pos" default="-0.5"/>
      <arg name="z_pos" default="0.0"/>
    
      <include file="$(find gazebo_ros)/launch/empty_world.launch">
        <arg name="world_name" value="$(find turtlebot3_sim_test)/worlds/turtlebot3_house.world"/>
        <arg name="paused" value="false"/>
        <arg name="use_sim_time" value="true"/>
        <arg name="gui" value="true"/>
        <arg name="headless" value="false"/>
        <arg name="debug" value="false"/>
      </include>
    
      <param name="robot_description" command="$(find xacro)/xacro $(find turtlebot3_sim_test)/urdf/turtlebot3_$(arg model).urdf.xacro" />
    
      <node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf"  args="-urdf -model turtlebot3_$(arg model) -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -param robot_description" />
    </launch>
    

    启动launch文件

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_gazebo.launch

    这里使用的gazebo仿真文件为turtlebot3_house.world,在第一次加载时非常慢,需要几分钟的时间,此时并不是gazebo软件卡死了,后面再加载时就可以秒开了,打开后如下图所示,这里模拟的是室内环境,其中有门、桌子等仿真物
    在这里插入图片描述


    在Gazebo中控制机器人模型运动

    在这里插入图片描述
    使用roslaunch命令启动turtlebot3_sim_gazebo.launch文件之后,使用rostopic list命令来看下当前发布的话题,可以看到有一个/cmd_vel的话题,这个话题已经比较熟悉了,之前再小乌龟的示例中用到过
    在这里插入图片描述
    再来使用rostopic info /cmd_vel命令来看下话题的详细信息,可以看到gazebo订阅了这个话题,下面我们在这个话题上发布速度指令即可操作机器人模型运动
    在这里插入图片描述

    使用键盘进行控制

    这里使用ROS提供的通用键盘控制包来操作机器人模型,如果之前没有下载的话使用下面的命令先下载安装

    $ sudo apt-get install ros-noetic-teleop-twist-keyboard

    参考:http://wiki.ros.org/teleop_twist_keyboard

    安装完成后,使用下面的命令启动键盘控制节点,然后按照按键说明就可以控制机器人模型运动了,这个节点会在/cmd_vel话题上发布速度指令

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_gazebo.launch
    $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

    还可以通过修改配置参数来调整运动速度或停止方式,详细内容参考:https://github.com/ros-teleop/teleop_twist_keyboard

    使用手柄进行控制

    这里通过简单的修改《ROS之手柄控制》中手柄控制小乌龟运动的示例代码,来实现手柄控制机器人模型在gazebo中运动

    这里手柄控制机器人模型运动和之前手柄控制小乌龟运动只有一个简单的区别,这里发布的话题名称为/cmd_vel,小乌龟示例中发布的话题为/turtle1/cmd_vel,把小乌龟示例中发布的话题名称改为/cmd_vel,其它代码无需修改,再来分别启动下turtlebot3_sim_gazebo.launch文件和teleop_turtle.launch文件即可使用手柄控制机器人模型运动了
    在这里插入图片描述

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_gazebo.launch
    $ roslaunch teleop teleop_turtle.launch


    使用Rviz+Gazebo进行仿真

    Rviz和Gazebo的区别

    Rviz是ROS的三维可视化工具,它的主要目的是以三维方式显示ROS消息,可以将数据进行可视化表达。例如,可以无需编程就能表达激光测距仪(LRF)传感器中的传感器到障碍物的距离,RealSense、Kinect或Xtion等三维距离传感器的点云数据(PCD,Point Cloud Data),从相机获取的图像值等。

    Gazebo是一个仿真系统,可以模拟真实的物理环境,快速测试机器人设计、执行回归测试以及训练AI系统等相关算法的可用性。Gazebo提供了在复杂的室内和室外环境中,准确地模拟多个数量机器人的功能。Gazebo支持 ODE、Bullet、Simbody等强大的物理引擎,具备高质量的图形以及便捷的图形编程界面。

    总结来说,Rviz主要用来显示数据,Gazebo用来仿真,使用实际机器人的话,Gazebo就可以不使用了,但还是需要Rviz来进行调试。

    查看里程计、雷达、摄像头信息

    先启动下gazebo仿真环境

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_gazebo.launch

    接着启动下rviz

    $ roslaunch turtlebot3_sim_test turtlebot3_sim_rviz.launch

    rviz启动后,依次加入RobotModel(机器人模型)、Odometry(里程计)、LaserScan(激光雷达)、Image(摄像头),并选择对应的话题,可以通过更改子选项来调整显示效果,这里Odometry中的Covariance选项不要勾选,否则画面会很模糊
    在这里插入图片描述
    再来运行下键盘控制节点,此时,使用键盘控制机器人模型运动即可看到里程计、雷达、摄像头数据的变化

    $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py _key_timeout:=0.2

    在这里插入图片描述

    在Rviz+Gazebo中控制机器人模型运动

    依次启动gazebo和rviz,再来启动上面记录的键盘或手柄节点即可操作机器人模型在gazebo和rviz环境下的运动
    在这里插入图片描述
    再来进一步分析下,gazebo和rviz下的运动是不同的,单独启动rviz然后运行键盘控制节点,是无法控制机器人模型运动的。gazebo仿真环境下,机器人有驱动器,其依赖/cmd_vel上的速度信息。rviz环境下,机器人运动实际上是坐标变换,依赖的是/joint_states。单独启动gazebo和rviz来看下两者发布的话题
    在这里插入图片描述
    再来看下计算图,会更清晰,单独启动gazebo
    在这里插入图片描述
    单独启动rviz
    在这里插入图片描述
    rviz中机器人模型的运动依赖turtlebot3_sim_rviz.launch文件中的一行代码,robot_state_publisher节点将机器人的状态发布到tf2

    <node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher" />
    

    参考:http://wiki.ros.org/robot_state_publisherhttp://wiki.ros.org/joint_state_publisher?distro=noetic

    分别启动gazebo和rviz
    在这里插入图片描述
    ☝ ★★★ — 返回 《ROS机器人开发笔记汇总》总目录 — ★★★ ☝

    展开全文
  • 采用UGNX4。0系统对日本安川电机株式会社生产的MOTOMAN-HP6型弧焊机器人进行了整体的模型装配,...阐述了弧焊机器人模型的建立方法、装配方式以及运动仿真,从而为Unigraphics(UG)环境下的离线编程技术打下了良好的基础。
  • KR5工业机器人模型.zip

    2022-03-17 20:01:51
    KR5工业机器人模型
  • YASKAWA多功能通用型机器人MOTOMAN-MH12 6轴垂直多关机型机器人3D模型,step、prt格式;
  • 此仓库包含一系列串行机器人模型。 这些模型包含符号生成的机器人运动学和动力学。 现有机器人的参数数据集也可用。 莫里茨·施帕特(Moritz Schappler),2018-08 (C)汉诺威大学机电系统研究所 用 要使用存储...
  • 机器人模型组成,它在 Matlab 中构建了机器人模型,并在 Simulink 中实现了不同的控制。 在这里我们可以找到项目组成的所有文件。 这是一个混合文件,其中最重要的是“rob_sic”,这是重新统一项目所有要点的主要...
  • UR5e机器人三维模型

    2022-01-21 17:41:12
    UR5e机器人三维模型
  • 机器人模型

    2014-01-19 11:23:45
    机器人的整体进行模拟,各个部分能自主的控制,通过键盘控制,r键改变整体的旋转方向,缺点是对光源,列表没有使用,效果有点单调。
  • ROS学习(九)自定义移动机器人模型Gazebo仿真,对应源码。博客地址:https://blog.csdn.net/u011832219/article/details/115035134
  • 基于python的使用TensorFlow实现的Sequence to Sequence的聊天机器人模型项目源码
  • 机器人模型文件(xacro) <p style="text-align:center"><img alt="" height="853" src="https://img-ask.csdnimg.cn/upload/1615511655372.png" width="1165" /></p> <p style="text-align:center">...
  • 创客教育背景下基于Arduino的安保机器人模型设计.pdf
  • 履带机器人模型
  • kuka 库卡 kr6机器人外壳模型3D图纸3D模型,Inventor 2015设计,附STEP格式。kuka 库卡 kr6机器人外壳模型,无内部结构。
  •    1、建立机器人模型   (1)Link类函数,基于DH法建模,建立其相关关系,DH法建模分改进型和标准型,Link类函数的一种用法是 R = Link([theta,d,a, alpha]),其中参数theta代表DH建模的关节角、参数d代表DH...

      本篇文章主要与大家分享一下如何使用MATLAB中的机器人工具箱建立机器人模型(机械臂),文章内容处于更新和补充中,(我同时安装了机器人工具箱9.10版本和10.4版本)

       一、先来看一下本文要介绍的例子

       1、本文以如下的比较简单的三轴机械臂模型为例(三轴的明白了,其他的也就会了),如下图所示该模型具有三个转动关节

    在这里插入图片描述


       2、利用机器人学中的相关知识,使用改进型DH法建立连杆坐标系如下:

    在这里插入图片描述


       3、根据上图写出其DH参数表如下:

    在这里插入图片描述


       二、在介绍如何使用机器人工具箱建立如上的机械臂模型前,我们需要先了解如下的两个我们需要用到的类函数 (本部分内容可根据自己的情况跳过)

       1、Link类函数

      Link类函数,基于DH法建模,建立其相关关系,DH法建模分改进型和标准型,Link类函数的一种用法是 R = Link([theta,d,a, alpha]),其中参数theta代表DH建模的关节角、参数d代表DH建模的连杆偏距、参数a代表DH建模的连杆长度、参数alpha代表DH建模的连杆转角。例如:L(1)=Link([1,2,3,4],‘modified’),其中modified表示用改进型DH法建模

      ①我们在命令行窗口输入上面的例子

    L(1)=Link([1,2,3,4],'modified')
    

       运行结果如下:

    L = 
     theta=q, d=          2, a=          3, alpha=          4, offset=          0 (R,modDH) 
    

       ②Link类函数中包含一些属性,我们可以用像调用c/c++语言里面的结构体成员类似的方法去调用它,如下所示:

       R.RP:可以用来获取连杆关节类型,如下所示我们可以知道我们建立的L(1)是转动关节 (若为P则为移动关节)

    L(1).RP
    
    ans =
    
        'R'
    

       R. theta:可以用来获取连杆关节角:,如下所示我们可以知道我们建立的L(1)的关节角为 1

    L(1).theta
    
    ans =
    
       1
    

       R. d:可以用来获取连杆偏距:,如下所示我们可以知道我们建立的L(1)的连杆偏距为 2

    L(1).d
    
    ans =
    
       2
    

       R. a:可以用来获取连杆长度:,如下所示我们可以知道我们建立的L(1)的连杆长度为 3

    L(1).a
    
    ans =
    
       3
    

       R.alpha:可以用来获取连杆扭转角:,如下所示我们可以知道我们建立的L(1)的连杆扭转角为 4

    L(1).alpha
    
    ans =
    
      4
    

       R.sigma:也可以用来查询我们建立的是转动关节还是移动关节,默认0是转动关节; 1是移动关节,如下所示我们可以知道我们建立的L(1)为转动关节

     L(1).sigma
    
    ans =
    
      0
    

       R.mdh:可以用来查询我们是按照标准DH法建立的还是按改进型DH法建立的模型,默认0为标准D.H法,1为改进D-H法,如下所示我们可以知道我们是按照改进型DH法建立的L(1)

     L(1).mdh
    
    ans =
    
      1
    

       2、Seriallink类函数

      Seriallink类函数可以把我们使用Link函数建立的连杆连成一个整体,生成一个串联机械臂,比如下面这个例子,我们已经使用Link函数建立好了L (1) ~ L(6)这六个关节模型,然后我们只需要使用Six_Link=SerialLink ([L(1),L(2),L(3),L(4),L(5),L(6)]);就可以将其连成一个整体生成一个六周的串联机械臂,并取名为Six_Link(名字可以任意取)

    L(1)=Link([0,0,0,0],'modified');
    L(2)=Link([1.25,pi/2,0,pi/2],'modified');
    L(3)=Link([10.5,0,0,pi/2],'modified');
    L(4)=Link([0,pi/2,13,-pi],'modified');
    L(5)=Link([0,pi/2,0,-pi],'modified');
    L(6)=Link([0,pi/2,10,-pi],'modified');
    Six_Link=SerialLink ([L(1),L(2),L(3),L(4),L(5),L(6)]);
    

      在命令行窗口输入 help Seriallink 会发现Seriallink类函数有很多可以设置的参数,在这里只针对一小部分进行介绍

      ①只读参数:关节自由度n 、机械臂配置字符串config、DH约定形式布尔值mdh 、DH参数 theta、d、a、 alpha

    Properties (read only)::
     
       n           number of joints
       config      joint configuration string, eg. 'RRRRRR'
       mdh         kinematic convention boolean (0=DH, 1=MDH)
       theta       kinematic: joint angles (1xN)
       d           kinematic: link offsets (1xN)
       a           kinematic: link lengths (1xN)
       alpha       kinematic: link twists (1xN)
    

      他们的使用方法很简单,比如我们已经按上面建立好了一个机械臂模型Six_Link,要查看当前关节的自由度,只需要使用Six_Link.n就可以了,如下所示:

    在这里插入图片描述

      要查看当前各个关节的类型,只需要使用Six_Link.config就可以了,如下所示,可以知道我们建立的六轴机械臂各个关节均为转动关节

    在这里插入图片描述

      以此类推…

      ②可读可写参数:连杆对象的矢量links 、重力方向gravity 、机器人基座的姿态base 、 机器人工具坐标系转换 tool 、关节极限qlim 、运动关节坐标偏移 offset、机器人的名称(用于图形显示)name 、 注释manuf和comment 、plot()方法的选项(单元格数组)plotopt 、使用MEX版本的RNE(只有当mex文件存在时才能设置为true。默认为true)fast

    Properties (read/write)::
     
       links      vector of Link objects (1xN)
       gravity    direction of gravity [gx gy gz]
       base       pose of robot's base (4x4 homog xform)
       tool       robot's tool transform, T6 to tool tip (4x4 homog xform)
       qlim       joint limits, [qmin qmax] (Nx2)
       offset     kinematic joint coordinate offsets (Nx1)
       name       name of robot, used for graphical display
       manuf      annotation, manufacturer's name
       comment    annotation, general comment
       plotopt    options for plot() method (cell array)
       fast       use MEX version of RNE.  Can only be set true if the mex
                  file exists.  Default is true.
    

      比如要查看当前各个关节连杆情况,只需要使用Six_Link.links就可以了,如下所示:

    在这里插入图片描述

      比如要查看当前机器人基座的姿态,只需要使用Six_Link.base就可以了,如下所示:

    在这里插入图片描述

      以此类推…

      ③Seriallink类函数中的一些方法或者函数,本部分不做详细介绍,有兴趣的可自行研究,比如显示机器人的图形表示的plot(在文章第三部分会进行介绍) 、 显示机器人的三维图形模型plot3d (只能用于标准DH建模)、 teach(在文章第三部分会进行介绍)、 关节空间轨迹jtraj 等

    SerialLink Serial-link robot class
     
      A concrete class that represents a serial-link arm-type robot.  The
      mechanism is described using Denavit-Hartenberg parameters, one set
      per joint.
     
      Methods::
     
       plot          display graphical representation of robot
       plot3d        display 3D graphical model of robot
       teach         drive the graphical robot
       getpos        get position of graphical robot
     -
       jtraj         a joint space trajectory
     -
       edit          display and edit kinematic and dynamic parameters
     -
       isspherical   test if robot has spherical wrist
       islimit       test if robot at joint limit
       isconfig      test robot joint configuration
     -
       fkine         forward kinematics
       A             link transforms
       trchain       forward kinematics as a chain of elementary transforms
     -
       ikine6s       inverse kinematics for 6-axis spherical wrist revolute robot
       ikine         inverse kinematics using iterative numerical method
       ikunc         inverse kinematics using optimisation
       ikcon         inverse kinematics using optimisation with joint limits
       ikine_sym     analytic inverse kinematics obtained symbolically
     -
       jacob0        Jacobian matrix in world frame
       jacobn        Jacobian matrix in tool frame
       jacob_dot     Jacobian derivative
       maniplty      manipulability
       vellipse      display velocity ellipsoid
       fellipse      display force ellipsoid
       qmincon       null space motion to centre joints between limits
     -
       accel         joint acceleration
       coriolis      Coriolis joint force
       dyn           show dynamic properties of links
       friction      friction force
       gravload      gravity joint force
       inertia       joint inertia matrix
       cinertia      Cartesian inertia matrix
       nofriction    set friction parameters to zero
       rne           inverse dynamics
       fdyn          forward dynamics
     -
       payload       add a payload in end-effector frame
       perturb       randomly perturb link dynamic parameters
       gravjac       gravity load and Jacobian
       paycap        payload capacity
       pay           payload effect
     -
       sym           a symbolic version of the object
       gencoords     symbolic generalized coordinates
       genforces     symbolic generalized forces
       issym         test if object is symbolic
    

       三、在了解了以上两个类函数后,我们就可以利用这两个类函数创建如上的机械臂模型了

       1、进行参数的设定,如图所示,我们需要设定的参数有a0、a1、d、θ1、θ2、θ3 在这些参数中a0、a1、d是机器臂的结构参数,在机械臂运动中是不变的,大家可以按照自己的需要自主设定,在这里我取a0=10, a1=20,d=30; 参数θ1、θ2、θ3 是这个机械臂模型的关节变量,随着机械臂运动中它们也发生变化,如图所示他们的初始值均为0

    在这里插入图片描述


       本部分的matlab程序如下:

    %参数的设定
    a0=10;
    a1=20;
    d=30;
    Theta1=0;
    Theta2=0;
    Theta3=0;
    

       2、根据我们已经写好的DH参数表,使用上文介绍的Link类函数,来建立各个各个关节模型,在上文中已经介绍过了,Link类函数的一种用法是 R = Link([theta,d,a, alpha]),其中参数theta代表DH建模的关节角也就是对应下表中的第四列(θi列)、参数d代表DH建模的连杆偏距也就是对应下表中的第三列、参数a代表DH建模的连杆长度也就是对应下表中的第一列、参数alpha代表DH建模的连杆转角也就是对应下表中的第二列,我们将这三个关节分别取名为L(1)、L(2)、L(3)

    在这里插入图片描述


       本部分的matlab程序如下:

    %使用Link类函数,基于DH法建模(改进型)
    L(1)=Link([0,a0,0,0],'modified');
    L(2)=Link([0,d,0,-pi/2],'modified');
    L(3)=Link([0,a1,0,pi/2],'modified');
    

       3、使用Seriallink类函数把我们上面使用Link函数建立的连杆连成一个整体,生成一个串联机械臂模型,把这个机械臂模型取名为Three_Link

    在这里插入图片描述


       本部分的matlab程序如下:

    %使用Seriallink类函数把我们上面使用Link函数建立的连杆连成一个整体,生成一个串联机械臂模型
    Three_Link=SerialLink ([L(1),L(2),L(3)]);
    


       4、建立完成后,我们可以使用.display显示出我们建立的这个机械臂模型的信息,如下所示:

    在这里插入图片描述


       本部分的matlab程序如下:

    %使用.display显示出我们建立的这个机械臂模型的信息
    Three_Link.display
    

       5、我们使用.teach查看我们建立机械臂三维模型,在figure的左侧的上方显示的XYZ是机械臂末端相对于基坐标系的位置,RPY显示的是末端坐标系相对于定点坐标系的姿态(RPY角),在figure的左侧的下方显示关节变量的值,我们可以对关节变量的值进行修改,并查看随着关节变量值的改变,机械臂的位姿的变化,如下所示:

    在这里插入图片描述


    在这里插入图片描述


       本部分的matlab程序如下:

    %使用.teach查看我们建立机械臂三维模型,可以对关节变量的值进行修改
    Three_Link.teach
    

       6、除了使用.teach查看我们建立机械臂三维模型,我们也可以使用.plot来查看在指定某组关节变量的机械臂三维模型,在使用.plot时,需要指定各关节变量的值,如下所示为各关节变量均为0时的位姿:

    在这里插入图片描述


       本部分的matlab程序如下:

    %使用.plot绘制出某组关节变量的机械臂三维模型
    Three_Link.plot([0,0,0])
    

       7、本文介绍的例子的完整代码:

    
    %参数的设定
    a0=10;
    a1=20;
    d=30;
    Theta1=0;
    Theta2=0;
    Theta3=0;
    
    %使用Link类函数,基于DH法建模(改进型)
    L(1)=Link([0,a0,0,0],'modified');
    L(2)=Link([0,d,0,-pi/2],'modified');
    L(3)=Link([0,a1,0,pi/2],'modified');
    
    %使用Seriallink类函数把我们上面使用Link函数建立的连杆连成一个整体,生成一个串联机械臂模型
    Three_Link=SerialLink ([L(1),L(2),L(3)]);
    
    
    %使用.plot绘制出某组关节变量的机械臂三维模型
    % Three_Link.plot([0,0,0])
    
    %使用.display显示出我们建立的这个机械臂模型的信息
    Three_Link.display
    
    %使用.teach查看我们建立机械臂三维模型,可以对关节变量的值进行修改
    Three_Link.teach
    
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,433
精华内容 35,773
关键字:

机器人模型

友情链接: QCustomPlot.tar.gz