Aubo机械臂初学(愁)——1、gazebo和Rviz联合仿真

news/2024/12/28 18:44:12/

安装vm-tools遇到的问题(没想到在这卡了我一下午)
vmtool安装

一、机械臂的环境搭建

首先按照这个教程安装机械臂仿真(有区别的是我在ubuntu20.04环境和noetic平台下装得)
aubo机械臂模型包下载和测试

遇到的各种问题和解决方案(上述博客讲了很多,但是我依然遇到了一些问题陈列如下)

1、fatal error :Eigen/Core: No such file or directory
Eigen

2、Undefined reference to google protobuf
protobuf

二、机械臂模型文件修改

1、为link添加惯性参数、碰撞属性(这两个属性模型已经有了故省略)

2、为joint添加传动装置
以aubo_i5为例在aubo_i5.urdf.xacro模型文件中添加如下代码

 <!-- Transmissions for ROS Control --><xacro:macro name="transmission_block" params="joint_name"><transmission name="tran1"><type>transmission_interface/SimpleTransmission</type><joint name="${joint_name}"><hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface></joint><actuator name="motor1"><hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface><mechanicalReduction>1</mechanicalReduction></actuator></transmission></xacro:macro><xacro:transmission_block joint_name="shoulder_joint"/><xacro:transmission_block joint_name="upperArm_joint"/><xacro:transmission_block joint_name="foreArm_joint"/><xacro:transmission_block joint_name="wrist1_joint"/><xacro:transmission_block joint_name="wrist2_joint"/><xacro:transmission_block joint_name="wrist3_joint"/>

2、添加gazebo 控制器插件
以aubo_i5为例在aubo_i5.urdf.xacro模型文件中添加如下代码

 <!-- <xacro:aubo_arm_transmission prefix="" /> --><!-- ros_control plugin --><gazebo><plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so"><robotNamespace>/aubo_i5</robotNamespace><robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType><legacyModeNS>true</legacyModeNS></plugin></gazebo>

3、放开joint速度和力度参数
以aubo_i5为例在aubo_i5.urdf.xacro模型文件中修改如下代码

<limit lower="-3.04" upper="3.04" effort="0" velocity="0" />(修改前)
<limit lower="-3.04" upper="3.04" effort="50" velocity="50" />(修改后)

4、提前下载模型文件库并放置于 ~/.gazebo/models目录下(之后下载会很慢)
gazebo模型

机械臂配置以及moveit!

可以按照下方教程直接创建moveit,但有时候不稳定因此大部分文件自己配置
moveit-assistant自动配置
1、参照上方链接,使用moveit-assistant,标红的模块不管
在这里插入图片描述
2、创建功能能包gazebo,在功能包下添加文件夹luanch和config
在这里插入图片描述
3、config文件夹下添加配置文件
aubo_i5_gazebo_joint_states.yaml

aubo_i5:# Publish all joint states -----------------------------------joint_state_controller:type: joint_state_controller/JointStateControllerpublish_rate: 50  

aubo_i5_trajectory_control.yaml

aubo_i5:arm_joint_controller:type: "position_controllers/JointTrajectoryController"joints:- shoulder_joint- upperArm_joint- foreArm_joint- wrist1_joint- wrist2_joint- wrist3_jointgains:shoulder_joint:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}upperArm_joint:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}foreArm_joint:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}wrist1_joint:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}wrist2_joint:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}wrist3_joint:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}

4、launch文件夹下添加aubo_i5文件夹,添加launch文件
aubo_i5_gazebo_states.launch

<launch><!-- 将关节控制器的配置参数加载到参数服务器中 --><rosparam file="$(find aubo_gazebo)/config/aubo_i5_gazebo_joint_states.yaml" command="load"/><node name="joint_controller_spawner" pkg="controller_manager" type="spawner" respawn="false"output="screen" ns="/aubo_i5" args="joint_state_controller" /><!-- 运行robot_state_publisher节点,发布tf  --><node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"respawn="false" output="screen"><remap from="/joint_states" to="/aubo_i5/joint_states" /></node></launch>

aubo_i5_gazebo_world.launch

<launch><!-- these are the arguments you can pass this launch file, for example paused:=true --><arg name="paused" default="false"/><arg name="use_sim_time" default="true"/><arg name="gui" default="true"/><arg name="headless" default="false"/><arg name="debug" default="false"/><!-- We resume the logic in empty_world.launch --><include file="$(find gazebo_ros)/launch/empty_world.launch"><arg name="debug" value="$(arg debug)" /><arg name="gui" value="$(arg gui)" /><arg name="paused" value="$(arg paused)"/><arg name="use_sim_time" value="$(arg use_sim_time)"/><arg name="headless" value="$(arg headless)"/></include><!-- Load the URDF into the ROS Parameter Server --><param name="robot_description" command="$(find xacro)/xacro --inorder '$(find aubo_description)/urdf/aubo_i5.urdf.xacro'" /> <!-- Run a python script to the send a service call to gazebo_ros to spawn a URDF robot --><node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen"args="-urdf -model aubo_i5 -param robot_description"/> </launch>

aubo_i5_trajectory_controller.launch

<launch><rosparam file="$(find aubo_gazebo)/config/aubo_i5_trajectory_control.yaml" command="load"/><node name="arm_controller_spawner" pkg="controller_manager" type="spawner" respawn="false"output="screen" ns="/aubo_i5" args="arm_joint_controller"/></launch>

aubo_i5_bringup_moveit.launch

<launch><!-- Launch Gazebo  --><include file="$(find aubo_gazebo)/launch/aubo_i5/aubo_i5_gazebo_world.launch" /><!-- ros_control arm launch file --><include file="$(find aubo_gazebo)/launch/aubo_i5/aubo_i5_gazebo_states.launch" />   <!-- ros_control trajectory control dof arm launch file --><include file="$(find aubo_gazebo)/launch/aubo_i5/aubo_i5_trajectory_controller.launch" /><!-- moveit launch file --><include file="$(find aubo_i5_moveit_config)/launch/moveit_planning_execution.launch" /></launch>

5、/src/aubo_i5_moveit_config/config文件夹下添加
controllers_gazebo.yaml

controller_manager_ns: controller_manager
controller_list:- name: aubo_i5/arm_joint_controlleraction_ns: follow_joint_trajectorytype: FollowJointTrajectorydefault: truejoints:- shoulder_joint- upperArm_joint- foreArm_joint- wrist1_joint- wrist2_joint- wrist3_joint

6、/src/aubo_i5_moveit_config/launch文件夹下
添加moveit_planning_execution.launch

<launch># The planning and execution components of MoveIt! configured to # publish the current configuration of the robot (simulated or real)# and the current state of the world as seen by the planner<include file="$(find aubo_i5_moveit_config)/launch/move_group.launch"><arg name="publish_monitored_planning_scene" value="true" /></include># The visualization component of MoveIt!<include file="$(find aubo_i5_moveit_config)/launch/moveit_rviz.launch"><arg name="rviz_config" value="true" /></include><!-- We do not have a robot connected, so publish fake joint states --><node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher"><param name="/use_gui" value="false"/> <rosparam param="/source_list">[/aubo_i5/joint_states]</rosparam></node></launch>

aubo_i5_moveit_controller_manager.launch.xml下添加gazebo控制

<!-- gazebo Controller --><rosparam file="$(find aubo_i5_moveit_config)/config/controllers_gazebo.yaml"/>

moveit_rviz.launch文件修改如下

<launch><arg name="debug" default="false" /><arg unless="$(arg debug)" name="launch_prefix" value="" /><arg     if="$(arg debug)" name="launch_prefix" value="gdb --ex run --args" /><arg name="rviz_config" default="false" /><arg unless="$(arg rviz_config)" name="command_args" default="" /><arg     if="$(arg rviz_config)" name="command_args" default="-d $(find aubo_i5_moveit_config)/launch/moveit.rviz" /><node name="$(anon rviz)" launch-prefix="$(arg launch_prefix)" pkg="rviz" type="rviz" respawn="false"args="$(arg command_args)" output="screen"><rosparam command="load" file="$(find aubo_i5_moveit_config)/config/kinematics.yaml"/></node></launch>

7、启动

source devel/setup.bashroslaunch aubo_gazebo aubo_i5_bringup_moveit.launch 

在这里插入图片描述如果gazebo闪退可以试着执行下面这个代码

export SVGA_VGPU10=0

更改SVGA_VGPU10变量时,其实只是在告诉系统OpenGL版本,尝试两种选择,然后看看哪个更适合
还有就算要注意依赖包要装全,不然也会报错比如

sudo apt install ros-melodic-ros-controllers

moveit配置笔记


http://www.ppmy.cn/news/235829.html

相关文章

奥西400服务器维修,奥西tds400驱动

奥西tds400驱动是一款适用于奥西tds400型号工程复印机采用的驱动程序&#xff0c;该驱动主要帮助用户解决奥西tds400无法连接服务器或者打印机无法打印、键位失效等驱动丢失的问题&#xff0c;这里小编为大家体用过的驱动来自官网&#xff0c;可被用户安装在32位或64位的win7、…

奥西450的服务器系统,奥西TDS450驱动

奥西TDS450驱动是奥西官方针对同名复合机推出的驱动程序&#xff0c;是复合机正常工作的必备程序&#xff0c;也是复合机与电脑之间建立通信的重要桥梁&#xff0c;若您的复合机在使用过程中出现不能被电脑识别或者无法正常工作等问题&#xff0c;欢迎您来欧普园下载该驱动来解…

华为OD机试题 - 基站维修工程师(JavaScript)| 机考必刷

更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜 梦想橡皮擦华为OD 👑👑👑 最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为…

奥西450的服务器系统,奥西TDS450

目录 重要参数 详细参数 重要参数 产品类型&#xff1a;工程机 (黑白) 涵盖功能&#xff1a;复印/打印/扫描 最大原稿尺寸&#xff1a;A0 复印速度&#xff1a;黑白&#xff1a;3米/分钟&#xff0c;灰度和彩色(选... 连续复印页数&#xff1a;1-999页 进纸盘容量&#xff1a;每…

奥西400服务器维修,奥西TDS400故障代码

奥西tds-400工程图纸打印、复印、扫描系统 打印机 分辨率&#xff1a;600dpi 品质模块&#xff1a;标准和海报 速度&#xff1a;每分钟3米或2张a0 供纸系统&#xff1a;单纸卷手动送纸、双纸卷手动送纸、双纸卷手动送纸100页接纸架 预热时间&#xff1a;开机即用 oc power logi…

奥西300工程机服务器装系统,奥西pw300驱动

奥西pw300工程机驱动是奥西旗下工程机pw300的驱动程序,pw300是一台功能非常强大的工程机,无需预热,一般是车间用的,可能没有驱动程序,出现问题无法解决,您可以来本站下载这个驱动程序,解决各种问题。 奥西pw300工程机驱动安装教程 1、下载并解压文件,将打印机连接到计算…

奥西工程机服务器系统安装,Lotus Notes程序安装配置及奥西工程机手册.doc

Lotus Notes程序安装配置及奥西工程机手册 Lotus Notes程序安装设置及奥西工程机手册 下载步骤 注意 在Lotus Notes 应用程序中,所使用的Oce文件,所存放的目录,均不支持中文! Windows的配置: Microsoft xp service pack 2 IE 版本:6.0 首先将Lotus Notes的安装程序的压缩…

奥西300工程机服务器装系统,奥西工程机ftp服务器登录

奥西工程机ftp服务器登录 内容精选 换一换 例如main.cpp中所需输入数据如下所示:rank:输出结果的维度。dim:表示有1000行推理结果。label:表示数据标签序号。value:表示每个结果下的置信度。 已成功登录系统性能分析。打开“创建工程”页面。端口、用户名、安装路径为空的…