ROS基础(13)——机器人建模之运动仿真

仿真步骤

  • 第一步:配置机器人模型
    • ros_control
    • 1、作用
    • 2、总体框架
    • 3、控制器数据流向
    • 4、安装
  • 第二步:创建仿真环境
    • 方法一:自己构建物理环境
    • 方法二:自己编辑物理环境
  • 第三步:开始仿真

第一步:配置机器人模型

link:添加运动学参数

惯性参数

物体的惯性和物体的质量,形状,以及质量分布有关,出于计算复杂性和刚体特征考虑,通常默认质量是均匀分布的。

目标:三个坐标轴的转动惯量

碰撞参数

link:添加gazebo标签

标签 功能
< gazebo > 设置Gazebo仿真的参数
< mu1 >,< mu2 > 设置摩擦系数
< material > 设置连杆颜色
< plugin > 传感器和机器人状态控制工具
< robotNamespace > 设置在Gazebo中使用的机器人名称
< robotSimType > 设置机器人仿真界面的插件名称

joint:转动装置

标签 功能
< transmission > 设置关节和舵机之间的变量
< type > 设置力的传递方式的形状
< joint > 设置关节信息设置
< hardwareInterface > 设置硬件接口
< actuator > 设置舵机信息
< mechanicalReduction > 设置舵机与关节之间的齿轮比

transmission

< transmission >(必须)唯一指定了一个传动的标签,名字自定义,方便起见可以使用与joint name相同的名字。

< type >(出现一次)定义了传动的类型,transmission_interface/SimpleTransmission,完成简单的传输

< joint >(可定义一个或多个)指定这个传动所依赖的关节,拥有如下标签hardwareInterface。
< hardwarelnterface>
在joint下,可定义一个或多个
指定支持的硬件接口空间
用于结合控制器使用硬件接口来向硬件接口发送和接受指令
此标签的值应为hardware_interface / XXX。

< actuator >(定义一个或多个)传动连接的致动器,名字自定义。
< mechanicalReduction >(可选)定义电机/关节减速比。
【减速比=输入转速÷输出转速】
< hardwarelnterface >指定支持的硬件接口空间。

ros_control

1、作用

ros_control就是ROS为用户提供的应用与机器人之间的中间件

包含一系列控制器接口、传动装置接口、硬件接口、控制器工具箱等

可以帮助机器人应用功能包快速落地,提高开发效率
ROS基础(13)——机器人建模之运动仿真_第1张图片

名称 作用
control_toolbox 包含PID控制器和sine控制器
controller_interface 包含控制机接口的基类
controller_manager 这个包能够加载,卸载,启动和停止控制器
controller_manager_msgs 为控制器管理器提供消息和服务的实现
hardware_interface 硬件接口的基类
transmission_interface 换能接口类,(差速,四杆机构,关节状态,位置,速度)

2、总体框架

ROS基础(13)——机器人建模之运动仿真_第2张图片
ROS基础(13)——机器人建模之运动仿真_第3张图片
一般使用的硬件接口是:
Joint Command Interface:发送关节信息给硬件
Effort Joint lnterface
Velocity Joint Interface
Position Joint Interface
Joint State lnterface:从激励器的编码器处获得传感信息

标准的ROS控制器有:
joint_position_controller:简单的关节位置控制器
joint_state_controller:控制器,发送joint state消息,监控机器人状态
joint_effort_controller:关节力矩控制器
joint_velocity_controller

3、控制器数据流向

ROS基础(13)——机器人建模之运动仿真_第4张图片

Controller Manager:每个机器人可能有多个controller,所以这里有一个控制器管理器的概念,提供一种通用的接口来管理不同的controller。controller manager的输入就是ROS上层应用的输出。

Controller:controller可以完成每个joint的控制,请求下层的硬件资源,并且提供了PID控制器,读取硬件资源接口中的状态,在发布控制命令。

Hardware Rescource:为上下两层提供硬件资源的接口。

RobotHW:硬件抽象层和硬件直接打交道,通过write和read方法来完成硬件的操作,这一层也包含关节限位、力矩转换、状态转换等功能。

Real Robot:实际的机器人上也需要有自己的嵌入式控制器,接收到命令后需要反映到执行器上,比如接收到位置1的命令后,那就需要让执行器快速、稳定的到达位置1。

4、安装

sudo apt-get install ros-kinetic-ros-control ros-kinetic-ros-controllers

ROS基础(13)——机器人建模之运动仿真_第5张图片

第二步:创建仿真环境

以下内容比较简单,具体的操作可以参照这个:
学习参考

根据之前章节已学习的包操作

启动:

roslaunch mbot_gazebo view_mbot_gazebo_empty_world.launch

ROS基础(13)——机器人建模之运动仿真_第6张图片

方法一:自己构建物理环境

自己可以根据下面的内容操作构建物理环境
ROS基础(13)——机器人建模之运动仿真_第7张图片
ROS基础(13)——机器人建模之运动仿真_第8张图片
ROS基础(13)——机器人建模之运动仿真_第9张图片
如果是自己下载的模型,将模型文件库下载并放置到~/.gazebo/models
被隐藏的文件夹按Ctrl+h可见

方法二:自己编辑物理环境

ROS基础(13)——机器人建模之运动仿真_第10张图片
ROS基础(13)——机器人建模之运动仿真_第11张图片

第三步:开始仿真

还是启动之前已经有的包,启动后可以操控gazebo里面的模型运动

roslaunch mbot_teleop mbot_teleop.launch

ROS基础(13)——机器人建模之运动仿真_第12张图片

你可能感兴趣的:(ROS,自动驾驶,ROS,gazebo,机器人建模与仿真)