关于Github上项目ros_car_control_laser_scan一些问题的解决方式

一、背景

        由于任务需要,需要利用ros进行四轮小车的设计。在github上面进行寻找,查询到一个项目十分符合我的任务需求。但是在ubuntu20.04上面ros-noetic版本难以运行这个项目。遇到许多的报错。ros_car_control_laser_scanicon-default.png?t=N7T8https://github.com/prath1996/ros_car_control_laser_scan        针对其中几个报错,已经查询到解决方式。因为能力有限,这些解决方式,不足以完全解决剩下所有问题。期待能解决剩余问题。

        在查询过程中,发现了一个针对此项目的一个问题讨论帖。希望可以有所帮助。

https://github.com/richardw05/mybot_ws/issues/4icon-default.png?t=N7T8https://github.com/richardw05/mybot_ws/issues/4

二、问题解决

(一)针对xacro.py报错

        这里解决方法是找到mybot_description功能包下的mybot.xacro文件,找到下面这行代码。

"$(find xacro)/xacro.py $(find mybot_description)/urdf/mybot.xacro'"

        出现问题的原因在于前半句xacro.py的问题,需要将其更改为xacro,即可解决此报错。

"$(find xacro)/xacro $(find mybot_description)/urdf/mybot.xacro'"

(二)针对惯性矩阵报错

        在运行文件过程中,会发现查找不到一些变量。解决方法为:

        在\ros_car_control_laser_scan-master\mybot_description\urdf文件夹下macros.xacro文件。

<macro name="cylinder_inertia" params="m r h">
    <inertia  ixx="${m*(3*r*r+h*h)/12}" ixy = "0" ixz = "0"
                  iyy="${m*(3*r*r+h*h)/12}" iyz = "0"
                  izz="${m*r*r/2}" /> 
    </macro>

<macro name="box_inertia" params="m x y z">
    <inertia  ixx="${m*(y*y+z*z)/12}" ixy = "0" ixz = "0"
                  iyy="${m*(x*x+z*z)/12}" iyz = "0"
                  izz="${m*(x*x+z*z)/12}" /> 
    </macro>

<macro name="sphere_inertia" params="m r">
    <inertia  ixx="${2*m*r*r/5}" ixy = "0" ixz = "0"
                  iyy="${2*m*r*r/5}" iyz = "0"
                  izz="${2*m*r*r/5}" /> 
    </macro>

        将上面的代码更改为下面,可以解决问题。

<macro name="cylinder_inertia" params="m r h">
    <inertial>
            <mass value="${m}" />
            <inertia ixx="${m*(3*r*r+h*h)/12}" ixy = "0" ixz = "0"
                iyy="${m*(3*r*r+h*h)/12}" iyz = "0"
                izz="${m*r*r/2}" /> 
    </inertial>
</macro>

<macro name="box_inertia" params="m x y z">
    <inertial>
               <mass value="${m}" />
               <inertia ixx="${m*(h*h + l*l)/12}" ixy = "0" ixz = "0"
                   iyy="${m*(w*w + l*l)/12}" iyz= "0"
                   izz="${m*(w*w + h*h)/12}" />
    </inertial> 
</macro>

<macro name="sphere_inertia" params="m r">
    <inertial>
            <mass value="${m}" />
            <inertia ixx="${2*m*r*r/5}" ixy="0" ixz="0"
                iyy="${2*m*r*r/5}" iyz="0" 
                izz="${2*m*r*r/5}" />
    </inertial>
</macro>

(三)针对xacro:的问题

        除上面之外,还有一些变量也可能会找不到,需要在其标签前添加,即可全部查询到。

xacro:

三、说明

        因为能力有限,其余报错仍然无法解决。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GFCGUO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值