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

本文介绍了如何使用ros_control进行机器人模型配置,包括设置惯性参数、碰撞参数和gazebo参数,以及控制器的数据流向。步骤详细讲解了ros_control的作用、安装方法,并指导如何构建物理环境和开始机器人仿真。
摘要由CSDN通过智能技术生成

第一步:配置机器人模型

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为用户提供的应用与机器人之间的中间件

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

可以帮助机器人应用功能包快速落地,提高开发效率
在这里插入图片描述

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

2、总体框架

在这里插入图片描述
在这里插入图片描述
一般使用的硬件接口是:
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、控制器数据流向

在这里插入图片描述

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

在这里插入图片描述

第二步:创建仿真环境

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

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

启动:

roslaunch mbot_gazebo view_mbot_gazebo_empty_world.launch

在这里插入图片描述

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

自己可以根据下面的内容操作构建物理环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果是自己下载的模型,将模型文件库下载并放置到~/.gazebo/models
被隐藏的文件夹按Ctrl+h可见

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

在这里插入图片描述
在这里插入图片描述

第三步:开始仿真

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

roslaunch mbot_teleop mbot_teleop.launch

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值