ROS进阶——在ROS平台的搭建自己的机器人

本文介绍如何将SOLIDWORKS 3D模型转换为URDF格式,并导入RVIZ中预览。同时,详细阐述了使用Moveit提供的setup_assistant配置三轴机械臂的过程,包括安装Moveit、配置向导等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、将SOLIDWORKS中的3D模型转换为URDF导入RVIZ中

1.1 将3D模型转为URDF

安装sw_urdf_exporter

根据需求在3D模型上添加关节,建议将末端单独分出来 ,完成关节添加后,输出配置。

注意:需设置Limit的最大和最小值,此为关节运动限制,若后期发现关节限制设置错误,可以在生成URDF文件中进一步修改。

此项可以采用默认,根据需要可以修改Color参数,使各关节显示不同颜色。

生成URDF后,需要在ROS环境下进行修改,可参考URDF文件解析

注意1SolidWorks所有的零件都应该是浮动,并且根据机器人与地面接触及末端点实际状况进行设置,通常设置角度限制不能过大,需去掉配合,保证各关节能动,生成的坐标系与选中构件的坐标重合。

注意2:rviz内坐标系为右手系,如下图所示,若自动生成base坐标系与该坐标系不同,可进行修改,修改后需删除除base坐标系以外的坐标系然后重新生成。

 

1.2 修改package文件内容

(1) 修改package.xml文件

修改email部分为正确邮件格式

  <maintainer email="me@email.com" />

(2) 修改display.launch文件

将urdf文件夹的名字修改与robot_description一致

将display.launch里的gui参数改成“True”

<launch>
  <arg
    name="model" />
  <arg
    name="gui"
    default="True" />
  <param
    name="robot_description"
    textfile="$(find robothand)/robots/robothand.urdf" />
  <param
    name="use_gui"
    value="$(arg gui)" />
  <node
    name="joint_state_publisher"
    pkg="joint_state_publisher"
    type="joint_state_publisher" />
  <node
    name="robot_state_publisher"
    pkg="robot_state_publisher"
    type="state_publisher" />
  <node
    name="rviz"
    pkg="rviz"
    type="rviz"
    args="-d $(find robothand)/urdf.rviz" />
</launch>

1.3 测试

    将配置好的的URDF文件夹移动到工作空间的src目录下,打开终端,通过roslaunch 命令运行display.launch,若提示错误可通过source解决。

 

二、使用Moveit提供的setup_assistant配置三轴机械臂

 2.1 安装Moveit

sudo apt-get install ros-Kinetic-moveit
source /opt/ros/Kinetic/setup.bash

注意:Kinetic需换成当前ROS版本号 

2.2 配置向导

注意:若更新过moveit库,需重新配置生成config文件,否则会运行报错。

具体流程可参考官方流程

将配置好的的URDF文件夹移动到工作空间的src目录下,打开终端,运行下面命令,若提示错误可通过source解决

roslaunch moveit_setup_assistant setup_assistant.launch

配置项目概述:

  • start:启动,导入URDF
  • Generate Self-Collision Matrix:生成碰撞检测矩阵
  • Add Virtual Joints:添加虚拟关节
  • Add Planning Groups:添加运动规划组
  •  Add Robot Poses:添加机器人姿态
  • Label End Effectors:标记末端执行器
  • Add Passive Joints:添加从动关节
  • 3D Perception:添加3D传感器
  • Gazebo Simulation:Gazebo仿真配置
  • ROS Control:ROS Control配置
  • Add Author Information:添加作者信息
  • Generate Configuration Files:生成配置文件

(1)启动,导入URDF,有两个选项,的一个为新建,第二个为修改

../../_images/setup_assistant_start.png

(2)生成碰撞检测矩阵,点击生成即可,参数采用默认after

(3)添加虚拟关节,将机器人与世界连接,根据机器人类型(固定,移动或其他)选择连接方式,。

../../_images/setup_assistant_panda_virtual_joints.png

(4)添加运动规划组,后续编程时以组为单位进行控制

  • 机械臂规划组:chain包括base到末端,必须设置默认运动规划算法和逆解算法。
  • 末端规划组:Joint:末端;Links:末端Links;若无动作无需解算器。

../../_images/setup_assistant_panda_planning_groups_gripper.png

(5)添加机器人姿态,自定义的机器人基本位置,一般设置初始位置即可。

../../_images/setup_assistant_panda_saved_poses.png

(6)标记末端执行器,选取末端执行器组,若需将末端点于末端坐标重合,Parent Link需选末端的Link。

../../_images/setup_assistant_panda_end_effector_add.png

(7)添加从动关节,不带驱动器,在主动关节带动下移动,为可选项。

(8)添加3D传感器,生成sensors_3d.yaml文件,如无需要可以选择none,后续有需要也可以手动添加。

sensors_3d.yaml文件具体说明http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/perception_pipeline/perception_pipeline_tutorial.html

../../_images/setup_assistant_panda_3d_perception_point_cloud.png

(9)Gazebo仿真配置,生成兼容Gazebo的URDF文件,可选项,如需求可生成。

../../_images/setup_assistant_panda_simulation_screen.png

手动生成流程

启动gazebo

roslaunch gazebo_ros empty_world.launch paused:=true use_sim_time:=false gui:=true throttled:=false recording:=false debug:=true

生成模型

rosrun gazebo_ros spawn_model -file </path_to_new_urdf/file_name.urdf> -urdf -x 0 -y 0 -z 1 -model panda

(10)ROS_Control配置,设置机器人控制相关接口并自动生成相关文件,也可手动添加,此为新更新后添加选项。

ROS_Control:http://wiki.ros.org/ros_control

根据提示设置控制组的名字和控制器类型,然后将上面设置的规划组添加到控制器中。

../../_images/setup_assistant_panda_ros_control_create.png

../../_images/setup_assistant_panda_ros_control_add_joints.png

(11)添加作者信息,按照格式填写即可,不填会导致报错。

(12)生成配置文件,放置到对应工作空间内(需先新建存放用的文件夹然后选中),建议名字设置为<robot_name>_moveit_config

../../_images/setup_assistant_panda_done.png

2.3 测试

    将配置好的的config文件夹放置到工作空间的src目录下,打开终端,通过roslaunch 命令运行demo.launch,若提示错误可通过source解决。

 

参考

【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学

MoveIt! Setup Assistant

Exbot易科机器人实验维护书籍,提供学习镜像包括indigo和kinetic等,努力为ROS爱好者和开发人员提供力所能及的服务。, 本书第2版概括性地介绍了ROS系统的各种工具。ROS是一个先进的机器人操作系统框架,现今已有数百个研究团体和公司将其应用在机器人行业中。对于机器人技术的非专业人士来说,它也相对容易上手。在本书中,你将了解如何安装ROS,如何开始使用ROS的基本工具,以及最终如何应用先进的计算机视觉和导航工具。, 在阅读本书的过程中无需使用任何特殊的设备。书中每一章都附带了一系列的源代码示例和教程,你可以在自己的计算机上运行。这是你唯一需要做的事情。, 当然,我们还会告诉你如何使用硬件,这样你可以将你的算法应用到现实环境中。我们在选择设备时特意选择一些业余用户负担得起的设备,同时涵盖了在机器人研究中最典型的传感器或执行器。, 最后,由于ROS系统的存在使得整个机器人具备在虚拟环境中工作的能力。你将学习如何创建自己的机器人并结合功能强大的导航功能包集。此外如果使用Gazebo仿真环境,你将能够在虚拟环境中运行一切。第2版在最后增加了一章,讲如何使用“Move it!”包控制机械臂执行抓取任务。读完本书后,你会发现已经可以使用ROS机器人进行工作了,并理解其背后的原理。, 主要内容, 第1章介绍安装ROS系统最简单的方法,以及如何在不同平台上安装ROS,本书使用的版本是ROS Hydro。这一章还会说明如何从Debian软件包安装或从源代码进行编译安装,以及在虚拟机和ARM CPU中安装。, 第2章涉及ROS框架及相关的概念和工具。该章介绍节点、主题和服务,以及如何使用它们,还将通过一系列示例说明如何调试一个节点或利用可视化方法直观地查看通过主题发布的消息。, 第3章进一步展示ROS强大的调试工具,以及通过对节点主题的图形化将节点间的通信数据可视化。ROS提供了一个日志记录API来轻松地诊断节点的问题。事实上,在使用过程中,我们会看到一些功能强大的图形化工具(如rqt_console和rqt_graph),以及可视化接口(如rqt_plot和rviz)。最后介绍如何使用rosbag和rqt_bag记录并回放消息。, 第4章介绍ROS系统与真实世界如何连接。这一章介绍在ROS下使用的一些常见传感器和执行器,如激光雷达、伺服电动机、摄像头、RGB-D传感器、GPS等。此外,还会解释如何使用嵌入式系统与微控制器(例如非常流行的Arduino开发板)。, 第5章介绍ROS对摄像头和计算机视觉任务的支持。首先使用FireWire和USB摄像头驱动程序将摄像头连接到计算机并采集图像。然后,你就可以使用ROS的标定工具标定你的摄像头。我们会详细介绍和说明什么是图像管道,学习如何使用集成了OpenCV的多个机器视觉API。最后,安装并使用一个视觉里程计软件。, 第6章将展示如何在ROS节点中使用点云库。该章从基本功能入手,如读或写PCL数据片段以及发布或订阅这些消息所必需的转换。然后,将在不同节点间创建一个管道来处理3D数据,以及使用PCL进行缩减采样、过滤和搜索特征点。, 第7章介绍在ROS系统中实现机器人的第一步是创建一个机器人模型,包括在Gazebo仿真环境中如何从头开始对一个机器人进行建模和仿真,并使其在仿真环境中运行。你也可以仿真摄像头和激光测距传感器,为后续学习如何使用ROS的导航功能包集和其他工具奠定基础。, 第8章是两章关于ROS导航功能包集中的第1章。该章介绍如何对你的机器人进行使用导航功能包集所需的初始化配置。然后用几个例子对导航功能包集进行说明。, 第9章延续第8章的内容,介绍如何使用导航功能包集使机器人有效地自主导航。该章介绍使用ROS的Gazebo仿真环境和rviz创建一个虚拟环境,在其中构建地图、定位机器人并用障碍回避做路径规划。, 第10章讨论ROS中移动机器人机械臂的一个工具包。该章包含安装这个包所需要的文档,以及使用MoveIt!操作机械臂进行抓取、放置,简单的运动规划等任务的演示示例。, 预备知识, 我们写作本书的目的是让每位读者都可以完成本书的学习并运行示例代码。基本上,你只需要在计算机上安装一个Linux发行版。虽然每个Linux发行版应该都能使用,但还是建议你使用Ubuntu 12.04 LTS。这样你可以根据第1章的内容安装ROS Hydro。, 对于ROS的这一版本,你将需要Ubuntu 14.04之前的版本,因为之后的版本已经不再支持Hydro了。, 对于硬件要求,一般来说,任何台式计算机或笔记本电脑都满足。但是,最好使用独立显卡来运行Gazebo仿真环境。此外,如果有足够的外围接口将会更好,因为这样你可以连接几个传感器和执行器,包括摄像头和Arduino开发板。, 你还需要Git(g
### 关于 ROSROS 2 的学习资源与项目示例 #### ROS 2 学习教程 ROS2Learn 是一个专注于 ROS 2 中机器学习算法的开源项目,提供了丰富的文档和代码示例来帮助开发者理解如何将现代机器学习技术集成到机器人应用中[^1]。该项目不仅涵盖了基础概念,还深入探讨了高级主题,例如强化学习、神经网络模型部署以及数据处理管道的设计。 对于初学者来说,可以从官方提供的入门指南入手,逐步探索更复杂的场景实现方法。此外,在其 GitHub 页面上还有详细的 README 文件说明各个模块的功能及其依赖关系。 ```bash # 安装依赖项并克隆仓库 sudo apt update && sudo apt install git python3-pip -y pip3 install --upgrade pip setuptools wheel git clone https://gitcode.com/gh_mirrors/ro/ros2learn.git cd ros2learn/ colcon build source ~/ros2_ws/install/local_setup.bash ``` --- #### 经典 ROS 教程 如果目标是掌握传统版本即 ROS Noetic 或 Melodic,则可以参考另一个全面覆盖基础知识至进阶技巧的教学资料集——《ROS 开源项目教程》[^2]。此书由经验丰富的工程师编写而成,适合不同层次的学习者阅读,并附带大量实际操作练习以便巩固理论知识点。 书中提到的一些核心组件包括但不限于消息传递机制、服务调用方式、动作服务器设计原则等方面的内容均被细致剖析出来供读者查阅学习之便。 --- #### ROS 2 Demo 示例 为了进一步加深对整个框架的理解程度,《ROS2 Demos 项目教程》提供了一系列精心挑选出来的演示程序作为教学辅助工具[^3]。这些例子展示了从简单运动控制命令发送直到复杂导航规划执行等多个方面的功能特性展示给用户观看体验效果的同时也教会他们如何去构建类似的解决方案自己动手尝试制作属于自己的作品吧! 以下是启动其中一个 demo 节点的方法: ```bash # 启动 turtlesim 模拟器 ros2 run turtlesim turtlesim_node & sleep 2 ros2 run turtlesim turtle_teleop_key ``` --- #### 工业级应用实例 —— KUKA IIWA 控制接口开发包(iiwa_ros) 针对工业领域内的具体需求,“iiwa_ros” 提供了一套完整的 API 来简化与 KUKA LBR iiwa 系列协作型机械臂之间的交互过程[^4]。它支持多种编程语言绑定形式(如 C++ / Python),允许程序员快速搭建原型测试环境或者直接投入生产环境中使用。 当完成软件栈设置之后即可按照如下指令序列开启默认样例验证当前配置状态是否正常工作: ```bash # 执行基本功能性检测流程 roscore & rosrun iiwa_ros iiwa_example ``` --- #### 计算机视觉方向拓展 —— Intel RealSense 集成方案(realsense_samples_ros) 最后值得一提的是有关三维感知硬件设备的支持情况。“realsense_samples_ros” 就是用来指导大家怎样利用英特尔实感系列摄像头(ZR300型号为代表)来进行物体识别跟踪定位地图创建等一系列任务的最佳实践手册之一[^5]。其中包含了多个专题讨论环节分别对应不同的应用场景需求分析解决办法分享交流心得等等重要内容值得每一位对此感兴趣的朋友们深入了解一番哦! ```cpp // 加载相机驱动插件 #include <realsense_camera.h> ... int main(int argc, char **argv){ ... } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值