基于ros的机器人运动控制相关学习(一)

本文介绍了基于ROS的机器人运动控制学习,涉及基础知识如控制分层,包括发动机、编码器等底层,movebase路径规划的中间层,以及SLAM和图像处理的高层。在实际操作中,重点讲解了如何编辑机器人模型的URDF和Xacro文件,加载Gazebo的控制驱动插件和ROS控制插件,以及使用键盘控制器让机器人动起来。在URDF文件的修改过程中,注意到SolidWorks导出的文件与参考博客中的差异,尤其是inertial部分,并尝试通过宏定义简化代码,但遇到问题。
摘要由CSDN通过智能技术生成

基础知识

机器人控制分层

底层包括三个级别:(1)发动机、编码器;(2)发动机控制器和驱动器;(3)驱动程序和pid控制器整合到一起的基控制器。
中间层:movebase级别,路径规划
高层:slam,语义,图像
在这里插入图片描述参考https://blog.csdn.net/ktigerhero3/article/details/65443920

具体操作过程如下:
可知机器人简单控制至少
(1)编辑机器人模型
(2)编辑gazebo属性,加载连接器控制驱动插件
(3)编辑gazebo属性,加载ros控制插件
(4)编辑.launch文件
(5)安装键盘控制器包
(6)运行.launch和键盘控制器程序,让小车动起来。

首先应进行urdf和xacro的相关学习:
参考:https://blog.csdn.net/sunbibei/article/details/52297524
和https://blog.csdn.net/qingdu007/article/details/97780621

进行xacro文件编写:
比较三篇参考博客发现,一个主要不同点就是宏定义的不同,ros控制机器人运动中,仅定义了惯性,而xacro文件编写学习笔记中定义了大段的重复代码,节省了时间。但有一个疑问,就是soloworks的urdf文件中没个link位置不一样,二参考博客中则相同,所以暂时先按参考博客中走。
本文拟将大段重复代码定义,从而节省时间。

修改过程中发现SolidWorks导出的urdf文件中包含:collision,inertial,visual三个部分,而参考博客中ros控制机器人运动中则无inertial。暂时按照有inertial进行修改。
先是定义了宏,然后描述了parent link,最后定义

<?xml version="1.0"?>

<robot xmlns:xacro="http://www.ros.org/wiki/xacro" 
       xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
       xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
       xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
    name="smallrobot_xacro">


    <xacro:macro name="default_leg" params="number">
               <link name="leg_${number}">
                 <visual>
                   <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
                   <geometry>
                     <mesh
                       filename="package://smallrobot/meshes/robot.STL"/>
                   </geometry>
                   <material name="black&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值