rviz中显示两个同样的机械臂

工具:ubuntu16.04  ros-kinetic  anno 机械臂 单个urdf(xacro)文件 
 1.仿照官网panda的程序,先给一个 world 根节点,并且给出一个长方体作为机械臂大底座,该大底座的父级坐标系为 world 子坐标系为 底座名称 support

<link name="world"/>
 
	
	<!-- box shaped table as base for the 2 arms -->
	
    <link name="support">
        <visual>
            <origin xyz="0 0 0.5" rpy="0 0 0" />
            <geometry>
                <box size="1 2 0.5" />
            </geometry>
            <material name="White">
                <color rgba="1.0 1.0 1.0 0.5" />
            </material>
        </visual>
        <collision>
            <origin xyz="0 0 0.5" rpy="0 0 0" />
            <geometry>
                <box size="1 2 1" />
            </geometry>
        </collision>
        <inertial>
            <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
            <mass value="10.0"/>
            <inertia ixx="0.001" ixy="0.0" ixz="0.001" iyy="0.0" iyz="0.0" izz="0.001"/>
        </inertial>
        
    </link>

    <joint name="support_to_world" type="fixed">
        <parent link="world"/>
        <child link="support"/>
        <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
    </joint>

2.对原来的机械臂连杆进行优化,编写xacro,以函数的方式封装重复实现(另一个机械臂的连杆和关节)。

<xacro:macro name="宏名称" params="参数列表(多参数之间使用空格分隔)">

    .....

    参数调用格式: ${参数名}

</xacro:macro>  

参照上述格式对机械臂关节和连杆重复命名的部分使用宏定义

<xacro:macro name="arm_robot" params="arm_id flag" >
</xacro:macro>
    <xacro:arm_robot arm_id="arm_left" flag="1" />
    <xacro:arm_robot arm_id="arm_right" flag="-1" />

 将 link  和  joint  中 需要重复用到的部分进行调用,提高代码复用率

<link
	    name="${arm_id}_base_link">

3.对机械臂自身的base_link部分的xyz 和 rpy中值进行设置,因为前面给出大底座的长为1,要得到两个机械臂在之前定义的大底座上,xyz中y的值有所偏移,故将y的偏移量设置为<1,(次处给0.5)并用flag来给它+0.5或者-0.5,并且将z设置为大于等于大底座的高,

        运行后发现两个机械臂是平行的方向,希望两个机械臂对着放置,故将rpy中的y(绕z轴旋转)设置为旋转90°或者-90°,可以根据自己的机械臂进行调整旋转角度,程序中要设置为弧度值(90°≈1.57)。

<joint name="${arm_id}_base_link_to_support" type="fixed">
        <parent link="support"/>
        <child link="${arm_id}_base_link"/>
        <origin xyz="0.0 ${0.5*flag} 0.5" rpy="0.0 0.0 ${(-1)*flag* M_PI / 2}"/>
    </joint>

 4.修改launch文件

find 后 为功能包名,/robot_description/urdf/double_probot_g602.xacro为.xacro的路径

<param name="robot_description" command="$(find xacro)/xacro --inorder $(find probot_g602_multiple_arms)/robot_description/urdf/double_probot_g602.xacro" />

launch中其他不需要改变 

5.运行相关launch文件查看rviz中是否正常显示两个机械臂
 

roslaunch probot_g602_multiple_arms view_double_probot_g602.launch

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值