二自由度机械臂软件系统(一)urdf和moveit2

一、urdf模型

参考链接:https://blog.csdn.net/weixin_45168199/article/details/105755388
这部分直接看参考链接就可以,主要思路如下
1、把sw中的零散零件按照机器人中连杆的分类整合成几个大零件
2、把几个大零件整合成装配体,并设置若干坐标系和旋转轴
3、安装sw的urdf插件,将零件输出为urdf软件包,注意包名要命名为英文

  • 这部分有一个要注意的地方,导出文件夹的时候要导出英文名字的文件,不然到ubuntu里面有可能乱码
  • 生成的文件夹就是一个独立的软件包,但是一般也不会启动这个节点,主要还是作为后面moveit和ros_control查找模型时比较方便。我这里删除了一些部分,只保留了会用到的。
    在这里插入图片描述* 这里对模型的urdf文件做了一点修改,去除了碰撞体。可能是因为模型本身出现了干涉,到后来使用moveit的时候,会认为一支有碰撞。

二、使用moveit的生成ui

参考链接:https://blog.csdn.net/qq_44940689/article/details/138214260

1、先创建工作空间并编译

  • 实际上,导入urdf的软件包时,已经创建了工作空间和src文件夹了,这里直接编译一下即可
colcon build
  • 编译完成后引入环境变量
. ./install/setup.bash
  • 创建一个等一下要存放moveit生成代码的文件夹moveit_test
    在这里插入图片描述

2、使用moveit图形界面开始生成代码

ros2 run moveit_setup_assistant moveit_setup_assistant

这部分也是跟着上面的参考链接走就行,需要注意以下几点:

  • 一定要设置初始位置,否则规划器无法解算
  • 要设置moveit_controller,这个东西联系了moveit的规划输出和ros_conrol的控制输入
  • 写邮箱的时候格式要对,否则代码不能用

3、具体效果

  • 编译之后直接运行即可
ros2 launch moveit_test demo.launch.py
  • 我这里发现这个末端没法直接拖动,可能是因为自由度不够导致的,所以直接在joints中修改角度进行测试
    在这里插入图片描述

三、moveit_test软件包分析

在这里插入图片描述* 这个软件包中只有两个文件夹,一个是启动文件夹,一个是配置文件夹

1、启动文件

from moveit_configs_utils import MoveItConfigsBuilder
from moveit_configs_utils.launches import generate_demo_launch


def generate_launch_description():
    moveit_config = MoveItConfigsBuilder("erobot", package_name="moveit_test").to_moveit_configs()
    return generate_demo_launch(moveit_config)

  • 这是demo那个启动文件,整体逻辑是读取config文件夹的配置,然后这个启动文件返回一个启动描述对象的实例
  • 这个实例本身并没有启动的代码,只是返回一个类似于launch文件的东西。可能是ros2的launch命令也可以接收这种类型了。

2、配置文件

  • 配置文件相对复杂一点,以erobot.urdf.xacro文件为入口,调用了其他配置和资源文件。配置文件是以xacro的语言写的,这种xml语言,大概知道意思就行,一般不会有太复杂的东西。
    在这里插入图片描述

(1)erobot.urdf.xacro

<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="erobot">
    <xacro:arg name="initial_positions_file" default="initial_positions.yaml" />

    <!-- Import erobot urdf file -->
    <xacro:include filename="$(find erobot)/urdf/motor_robot.urdf" />

    <!-- Import control_xacro -->
    <xacro:include filename="erobot.ros2_control.xacro" />


    <xacro:erobot_ros2_control name="FakeSystem" initial_positions_file="$(arg initial_positions_file)"/>

</robot>
  • 这个文件首先定义了一个初始位置文件地址变量initial_positions_file,然后引入了两个xacro描述文件,分别是机器人模型和控制器,最终宏定义了一个控制器。

(2)erobot.ros2_control.xacro

<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
    <xacro:macro name="erobot_ros2_control" params="name initial_positions_file">
        <xacro:property name="initial_positions" value="${load_yaml(initial_positions_file)['initial_positions']}"/>

        <ros2_control name="${name}" type="system">
            <hardware>
                <!-- By default, set up controllers for simulation. This won't work on real hardware -->
                <plugin>mock_components/GenericSystem</plugin>
            </hardware>
            <joint name="link1_joint">
                <command_interface name="position"/>
                <state_interface name="position">
                  <param name="initial_value">${initial_positions['link1_joint']}</param>
                </state_interface>
                <state_interface name="velocity"/>
            </joint>
            <joint name="link2_joint">
                <command_interface name="position"/>
                <state_interface name="position">
                  <param name="initial_value">${initial_positions['link2_joint']}</param>
                </state_interface>
                <state_interface name="velocity"/>
            </joint>

        </ros2_control>
    </xacro:macro>
</robot>
  • 这个文件就是描述erobot_ros2_control的,代码中引入了控制器插件,并定义了控制器的关节接口,也就是一个位置命令和两个位置和速度状态接口。
  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com
MoveIt是一个功能强大的机器人操作系统(ROS)插件,用于规划和控制机械臂运动。它为机械臂提供了运动规划、逆运动学解算、碰撞检测等功能,使得机械臂能够在复杂的环境中进行精确和安全的移动。MoveIt使用了先进的运动规划算法,包括RRT、OMPL等,能够快速找到机械臂的运动轨迹。 Gazebo是一个用于仿真机器人和环境的开源物理仿真器。它模拟了机器人在现实世界中的动力学和物理特性,包括重力、摩擦力等。使用Gazebo,我们可以在虚拟环境中进行机器人的开发、测试和验证。Gazebo将机器人的模型和控制器与MoveIt集成,可以实现机械臂的运动仿真和控制。 MoveIt和Gazebo的结合可以提供一个完整的机械臂开发和仿真环境。首先,我们可以使用MoveIt规划机械臂的运动轨迹,并将其发送给Gazebo进行仿真。在仿真中,我们可以观察机械臂在不同环境中的运动情况,并进行调试和优化。同时,Gazebo还可以提供机器人周围环境的传感器数据,用于机械臂的感知和决策。 此外,MoveIt还支持与真实物理机械臂的集成。我们可以将规划好的轨迹发送给真实机械臂控制器,实现机械臂的精确控制。通过在实际环境中运行和测试机械臂,我们可以验证算法的正确性和鲁棒性。 综上所述,MoveIt和Gazebo机械臂提供了一个全面而强大的解决方案,用于机械臂的规划、运动仿真和控制。它们的结合使得机械臂的开发过程更加高效和可靠,并为机器人研究和应用提供了强大的工具。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值