目录

1.solidworks建立模型

2.solidworks的模型导出urdf文件

3.urdf文件转成xacro文件

4.为模型添加运动控制插件、雷达插件

5.使用gmapping建图



1.solidworks建立模型

教程:

此处根据自己的需要建立模型,如果不会solidworks的使用可以去b站看教程,推荐:https://www.bilibili.com/video/BV1iw411Z7HZ/?spm_id_from=333.337.search-card.all.click&vd_source=37c974e2dbe4c38b0a56386961efe9bb

注意事项:

模型最好与水平的基准面平行,详细注意事项及解决参看2中的教程1^v67^js_top,201^v3^control_2,213^v2^t3_esquery_v1&spm=1018.2226.3001.4187

2.solidworks的模型导出urdf文件

教程:

此处参考

教程1:

教程2:

注意事项:

1.导出后要检查雷达的关节是否是固定的(fixed),不能是continues,应该是:(注意看type后面是fixed,不然雷达会乱晃)

<joint
    name="sensor_joint"
    type="fixed">
    <origin
      xyz="0 0 0.2"
      rpy="0 0 0" />
    <parent
      link="base_link" />
    <child
      link="sensor_link" />
    <axis
      xyz="0 0 0" />
  </joint>

3.urdf文件转成xacro文件

教程:

此处参考

^v67^js_top,201^v3^control_2,213^v2^t3_esquery_v1&spm=1018.2226.3001.4187

其实就是按照教程加一句xmlns:xacro="http://www.ros.org/wiki/xacro" 并修改该文件的后缀为xacro,比如原来叫car.urdf,现在改成car.urdf.xacro

4.为模型添加运动控制插件、雷达插件

(首先得有个工作空间,可以网上搜一搜如何建立,如果想详细了解可以看b站up主:机器人工匠阿杰 的ros入门教程)

教程:

此处参考b站赵虚左老师的教程的第六章运动控制和雷达仿真部分,也就是p282-284,指路:

https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=282&vd_source=37c974e2dbe4c38b0a56386961efe9bb

注意事项:

1.运动控制部分,写move.xacro的时候,在复制完第一段代码以后,跟着赵老师改动二段代码,如果我们是四轮的则要设置四个轮子,例如我的是:

<xacro:joint_trans joint_name="wheel1_joint" />
    <xacro:joint_trans joint_name="wheel2_joint" />
    <xacro:joint_trans joint_name="wheel3_joint" />   
    <xacro:joint_trans joint_name="wheel4_joint" />

2.赵老师的平台是2轮的,如果我们是使用的四轮的,则运动控制部分写move.xacro的时候,第三段代码应该使用skid那一个(赵老师视频里提到了,在官网直接复制),复制完以后根据自己的模型,设置各个位置车轮关节对应哪个关节的名字,例如我的是:

<leftFrontJoint>wheel1_joint</leftFrontJoint>
    <rightFrontJoint>wheel3_joint</rightFrontJoint>
    <leftRearJoint>wheel2_joint</leftRearJoint>
    <rightRearJoint>wheel4_joint</rightRearJoint>

根据自己的模型的轮距和车轮直径改动:

<wheelSeparation>0.65</wheelSeparation>
    <wheelDiameter>0.1</wheelDiameter>

3.如果你导出urdf的时候参照的是我前面列出的教程,那么你平台的坐标系可能是叫base_link,而赵老师教程里平台的坐标系是base_footprint,记得也要修改成自己对应的名字。

4.复制完官网的四轮的运动控制代码以后,对比赵老师的代码发现还少了三句,所以要自己加上:

<commandTopic>cmd_vel</commandTopic> 
    <odometryFrame>odom</odometryFrame> 
    <odometryTopic>odom</odometryTopic>

这样之后打开rviz才有odom这个选项

5.这里还有一个比较玄学的东西是,你做完上述步骤以后发现一运行就有问题,可以试试把代码里的注释都删了。我就是这么解决了打开rviz然后坐标系选项里没有odom这个问题,感觉很玄学,请有知道为什么的uu可以告诉我

5.使用gmapping建图

教程:

参考b站赵虚左老师的教程的第七章导航实现部分

https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=298&vd_source=37c974e2dbe4c38b0a56386961efe9bb

前后历时五天多,试了三个版本的教程,终于成功了,感动呜呜呜

感谢各位前辈无私的经验分享,以及夸一夸赵虚左老师真的强!