Gazebo仿真aubo机械臂和启动aubo_demo例程

本文详细介绍了在ROS环境下配置Gazebo与RVIZ的过程,包括解决启动闪退、界面空白等问题的方法,以及如何确保两者同步显示机械臂状态。此外,还提供了启动示例程序的具体步骤。

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

由于研究时间不长,暂时不是很清楚ROS系统、rviz、和gazebo之间的内部联系,不过,先将如何搭建环境过程记录一下,先知其然,随着后面的学习,知其所以然后,在进行补充。

Gazebo仿真aubo机械臂

1.运行下面的指令,发现启动就闪退,或者在gazebo界面里没有任何东西。

$ roslaunch aubo_gazebo aubo_i5_gazebo_control.launch

解决办法

关闭硬件加速

$ echo " export SVGA_VGPU10=0" >> ~/.bashrc
$ source ~/.bashrc

关闭虚拟机的3D图形加速(需要关闭虚拟机后操作)

在这里插入图片描述
2.操作完上面的解决方法后,继续启动gazebo,发现虽然没有异常,但是界面还是一片空白,没有仿真的界面出现,后来才发现,需要先启动按照上一篇的内容先启动rviz。
在这里插入图片描述
需要按照这个顺序启动后,才能正常使用,所以运行下面的命令(需要说明的是,两条指令要在不同的终端运行)

$ roslaunch aubo_i5_moveit_config moveit_planning_execution.launch robot_ip:=127.0.0.1
$ roslaunch aubo_gazebo aubo_i5_gazebo_control.launch

3.gazebo启动后发现和rviz里机械臂的状态不一样,控制rviz内的机械臂,gazebo也不能改变,向人请教后,发现缺少相应的包支持,如下图所示,如果有人遇到相似的问题,可以检查一下下面的包是否安装。在这里插入图片描述
安装ros-kinetic-gazebo-ros-control

sudo apt-get install ros-kinetic-gazebo-ros-control

好的,再次启动就可以通过rviz控制gazebo环境中的仿真机器人了。
在这里插入图片描述
在这里插入图片描述

启动aubo demo中的例程

这一部分没有太多问题,基本按照git中的内容进行才做就可以了,如下图所示
在这里插入图片描述
输入下列命令即可

roslaunch aubo_i5_moveit_config moveit_planning_execution.launch robot_ip:=127.0.0.1
roslaunch aubo_demo MoveGroupInterface_To_Kinetic.launch

然后按照提示点击rviz界面中的next进行规划路径的仿真
在这里插入图片描述
在这里插入图片描述
同时,也可以按照前面打开gazebo步骤打开仿真界面,查看仿真结果。

注意:

原来git的中源码在aubo_demo中的MoveGroupInterface_To_Kinetic.launch存在问题,git中已更新,如使用的是旧源码,修改为如下。
在这里插入图片描述

### Aubo机器人与MoveItGazebo集成 #### 准备工作 为了实现Aubo机械与MoveIt以及Gazebo的成功集成,需先准备好必要的软硬件环境。对于i7系列机器人而言,除了机器人本身外,还需配备控制柜、示教器及PC机等设备,并通过以太网线或其他通信方式连接这些组件[^2]。 #### 安装依赖包 在Linux环境下配置ROS时,应确保已安装好最新的ROS版本及相关工具链。针对Aubo机械的操作需求,重点在于设置MoveIt!框架及其关联插件。完成ROS基础环境搭建之后,可通过命令行获取官方提供的Aubo支持库: ```bash sudo apt-get install ros-noetic-moveit ros-noetic-aubo-i7-moveit-config ``` 上述指令会自动下载并安装适用于Noetic发行版的MoveIt!套件连同特定于Aubo i7型号的支持文件[^1]。 #### 创建启动脚本 接下来创建一个新的launch文件来加载所有必需的服务节点。此过程涉及定义场景中的物理属性参数(如质量分布)、视觉表现形式以及交互逻辑等内容。下面给出了一段简化后的XML模板作为参考: ```xml <launch> <!-- 加载gazebo世界 --> <include file="$(find gazebo_ros)/launch/empty_world.launch"/> <!-- 插入aubo模型到环境中 --> <param name="robot_description" command="$(find xacro)/xacro '$(find aubo_i7_support)/urdf/aubo_i7.urdf.xacro'" /> <!-- 启动rviz显示 --> <node pkg="rviz" type="rviz" respawn="false" output="screen"/> <!-- 初始化move_group接口 --> <include file="$(find moveit_ros_move_group)/launch/move_group.launch"> <arg name="allow_trajectory_execution" value="true"/> </include> </launch> ``` 这段代码片段展示了如何组合使用`gazebo_ros`, `xacro`, `moveit_ros_move_group`等多个核心模块,从而构建起完整的模拟运行平台[^3]。 #### 编写运动规划任务 最后一步是在Python或C++中调用MoveIt API执行具体的动作序列。这里提供了一个简单的例子说明怎样让末端执行器移动至指定位置: ```cpp // C++ code snippet using ROS and MoveIt APIs to control the end-effector of an Aubo robot arm. #include <ros/ros.h> #include <moveit/move_group_interface/move_group_interface.h> int main(int argc, char **argv){ ros::init(argc, argv, "motion_planning_example"); // Initialize the move group interface with predefined planning groups moveit::planning_interface::MoveGroupInterface move_group("manipulator"); geometry_msgs::Pose target_pose; target_pose.position.x = 0.5; target_pose.position.y = -0.2; target_pose.position.z = 0.8; // Set pose goal and plan execution move_group.setPoseTarget(target_pose); auto success = (move_group.plan() == moveit::planning_interface::MoveItErrorCode::SUCCESS); if(success) { move_group.move(); } return 0; } ``` 以上程序利用了MoveIt所提供的高级抽象层——`MoveGroupInterface`类来进行路径规划计算,并最终驱动真实的或是虚拟化的Aubo机械按照预定轨迹运作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值