机械臂全面学习---moveit和gazebo联合仿真

1、修改XXX.moveit_config/config/ros_controllers.yaml

# MoveIt-specific simulation settings
moveit_sim_hw_interface:joint_model_group: controllers_initial_group_joint_model_group_pose: controllers_initial_pose_
# Settings for ros_control control loop
generic_hw_control_loop:loop_hz: 300cycle_time_error_threshold: 0.01
# Settings for ros_control hardware interface
hardware_interface:joints:- magician_joint1- magician_joint2- magician_joint3sim_control_mode: 1  # 0: position, 1: velocity
# Publish all joint states
# Creates the /joint_states topic necessary in ROS
joint_state_controller:type: joint_state_controller/JointStateControllerpublish_rate: 50
controller_list:- name: magician_arm_controlleraction_ns: follow_joint_trajectorydefault: Truetype: FollowJointTrajectoryjoints:- magician_joint1- magician_joint2- magician_joint3

2、修改XXX.moveit_config/launch/ros_controllers.yaml

<?xml version="1.0"?>
<launch><!-- Load joint controller configurations from YAML file to parameter server --><rosparam file="$(find magician_moveit_config)/config/ros_controllers.yaml" command="load"/><!-- Load the controllers --><node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"output="screen" args=""/></launch>

3、修改XXX.moveit_config/launch/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="config" default="false" /><arg unless="$(arg config)" name="command_args" value="" /><arg     if="$(arg config)" name="command_args" value="-d $(find magician_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 magician_moveit_config)/config/kinematics.yaml"/></node></launch>

4、在XXX.moveit_config/launch/move_group.launch修改一点小细节

<launch><include file="$(find magician_moveit_config)/launch/planning_context.launch" /><!-- GDB Debug Option --><arg name="debug" default="false" /><arg unless="$(arg debug)" name="launch_prefix" value="" /><arg     if="$(arg debug)" name="launch_prefix"value="gdb -x $(find magician_moveit_config)/launch/gdb_settings.gdb --ex run --args" /><!-- Verbose Mode Option --><arg name="info" default="$(arg debug)" /><arg unless="$(arg info)" name="command_args" value="" /><arg     if="$(arg info)" name="command_args" value="--debug" /><!-- move_group settings --><arg name="allow_trajectory_execution" default="true"/><arg name="fake_execution" default="false"/><arg name="max_safe_path_cost" default="1"/><arg name="jiggle_fraction" default="0.05" /><arg name="publish_monitored_planning_scene" default="true"/><arg name="capabilities" default=""/><arg name="disable_capabilities" default=""/><!-- load these non-default MoveGroup capabilities (space seperated) --><!--<arg name="capabilities" value="a_package/AwsomeMotionPlanningCapabilityanother_package/GraspPlanningPipeline" />--><!-- inhibit these default MoveGroup capabilities (space seperated) --><!--<arg name="disable_capabilities" value="move_group/MoveGroupKinematicsServicemove_group/ClearOctomapService" />--><!-- Planning Functionality --><include ns="move_group" file="$(find magician_moveit_config)/launch/planning_pipeline.launch.xml"><arg name="pipeline" value="ompl" /></include><!-- Trajectory Execution Functionality --><include ns="move_group" file="$(find magician_moveit_config)/launch/trajectory_execution.launch.xml" if="$(arg allow_trajectory_execution)"><arg name="moveit_manage_controllers" value="true" /><arg name="moveit_controller_manager" value="magician" unless="$(arg fake_execution)"/><arg name="moveit_controller_manager" value="fake" if="$(arg fake_execution)"/></include><!-- Sensors Functionality --><include ns="move_group" file="$(find magician_moveit_config)/launch/sensor_manager.launch.xml" if="$(arg allow_trajectory_execution)"><arg name="moveit_sensor_manager" value="magician" /></include><!-- Start the actual move_group node/action server --><node name="move_group" launch-prefix="$(arg launch_prefix)" pkg="moveit_ros_move_group" type="move_group" respawn="false" output="screen" args="$(arg command_args)"><!-- Set the display variable, in case OpenGL code is used internally --><env name="DISPLAY" value="$(optenv DISPLAY :0)" /><param name="allow_trajectory_execution" value="$(arg allow_trajectory_execution)"/><param name="max_safe_path_cost" value="$(arg max_safe_path_cost)"/><param name="jiggle_fraction" value="$(arg jiggle_fraction)" /><param name="capabilities" value="$(arg capabilities)"/><param name="disable_capabilities" value="$(arg disable_capabilities)"/><!-- Publish the planning scene of the physical robot so that rviz plugin can know actual robot --><param name="planning_scene_monitor/publish_planning_scene" value="$(arg publish_monitored_planning_scene)" /><param name="planning_scene_monitor/publish_geometry_updates" value="$(arg publish_monitored_planning_scene)" /><param name="planning_scene_monitor/publish_state_updates" value="$(arg publish_monitored_planning_scene)" /><param name="planning_scene_monitor/publish_transforms_updates" value="$(arg publish_monitored_planning_scene)" /></node></launch>

5、修改trajectory_execution.launch.xml

<launch><!-- This file makes it easy to include the settings for trajectory execution  --><!-- Flag indicating whether MoveIt! is allowed to load/unload  or switch controllers --><arg name="moveit_manage_controllers" default="true"/><param name="moveit_manage_controllers" value="$(arg moveit_manage_controllers)"/><!-- When determining the expected duration of a trajectory, this multiplicative factor is applied to get the allowed duration of execution --><param name="trajectory_execution/allowed_execution_duration_scaling" value="2"/> <!-- default 1.2 --><!-- Allow more than the expected execution time before triggering a trajectory cancel (applied after scaling) --><param name="trajectory_execution/allowed_goal_duration_margin" value="0.5"/> <!-- default 0.5 --><!-- Allowed joint-value tolerance for validation that trajectory's first point matches current robot state --><param name="trajectory_execution/allowed_start_tolerance" value="0.01"/> <!-- default 0.01 --><!-- Load the robot specific controller manager; this sets the moveit_controller_manager ROS parameter --><arg name="moveit_controller_manager" default="magician" /><include file="$(find magician_moveit_config)/launch/$(arg moveit_controller_manager)_moveit_controller_manager.launch.xml" /></launch>

6、创建magician_moveit_controller_manager.launch.xml文件,并且启动ros_controllers.yaml

<launch><!-- loads moveit_controller_manager on the parameter server which is taken as argument if no argument is passed, moveit_simple_controller_manager will be set --><arg name="moveit_controller_manager" default="moveit_simple_controller_manager/MoveItSimpleControllerManager" /><param name="moveit_controller_manager" value="$(arg moveit_controller_manager)"/><!-- loads ros_controllers to the param server --><rosparam file="$(find magician_moveit_config)/config/ros_controllers.yaml"/>
</launch>

7、新建一个功能包,里面放置启动文件

<?xml version="1.0"?>
<launch><arg name="paused" default="true"/><arg name="gazebo_gui" default="true"/><arg name="urdf_path" default="$(find magician_description)/urdf/magician.urdf.xacro"/><!-- startup simulated world --><include file="$(find gazebo_ros)/launch/empty_world.launch"><arg name="world_name" default="worlds/empty.world"/><arg name="paused" value="$(arg paused)"/><arg name="gui" value="$(arg gazebo_gui)"/></include><!-- send robot urdf to param server --><param name="robot_description" command="$(find xacro)/xacro --inorder '$(find magician_description)/urdf/magician.urdf.xacro'" /><!-- push robot_description to factory and spawn robot in gazebo at the origin, change x,y,z arguments to spawn in a different position --><node name="spawn_model" pkg="gazebo_ros" type="spawn_model" respawn="false" output="screen" args="-urdf -model magician -param robot_description -x 0-y 0-z 0.14-J magician_joint1 0-J magician_joint2 0.785-J magician_joint3 0.785-unpause"/><rosparam file="$(find magician_description)/config/joint_state_controller.yaml" command="load"/><node name="joint_state_controller_spawner" pkg="controller_manager" type="controller_manager" args="spawn joint_state_controller" respawn="false" output="screen"/><rosparam file="$(find magician_description)/config/magician_arm_controller.yaml" command="load"/><node name="elfin_arm_controller_spawner" pkg="controller_manager" type="controller_manager" args="spawn magician_arm_controller" respawn="false" output="screen"/><!-- # 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 magician_moveit_config)/launch/move_group.launch"><arg name="publish_monitored_planning_scene" value="true" /></include><!-- # The visualization component of MoveIt! --><arg name="display" default="true"/><include file="$(find magician_moveit_config)/launch/moveit_rviz.launch" if="$(arg display)"><arg name="config" value="true"/></include></launch>

最后编译一下,启动launch文件。

 

 到这里moveit和gazebo的联动到此结束。

我们通过以上部分举一反三,其他的机械臂在moveit和gazebo联动时也是这样配置的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/52558.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机械原理课程设计 洗瓶机机构设计(设计说明书+3张CAD图纸+连杆机构设计软件)

目 录 一 前 言 1 二 设计任务书 1 1、设计题目 1 2、设计任务 2 三 工艺动作分解和工作原理 2 1、工艺动作分解 2 2、原始数据 3 四 机械运动方案设计 3 1、分析设计要求 3 2、推瓶机构方案的设计 4 &#xff08;1&#xff09; 推瓶机构方案的选择 4 &#xff08;2&#xff09…

机械搬运手结构设计

目录…1 文摘…3 Abstract…3 第一章 绪论 1.1机械手概述…4 1.2机械手的组成和分类…4 1.2.1机械手的组成. 1.2.2机械手的分类 1.3国内外发展状况… …7 1.4课题的提出及主要任务………………………………………………8 1.4.1课题的提出 1.4.2课题的主要任务 第二章 机械手的设…

测试底妆的软件,一天一款粉底液,实测7款“网红”粉底液的妆感、遮瑕、持妆效果...

每次在入手粉底液前&#xff0c;各位会关注她的什么效果呢&#xff1f;是持妆度&#xff1f;还是妆感&#xff1f;还是遮瑕效果&#xff1f;其实&#xff0c;一款粉底液不可能兼顾我们的所有皮肤需求&#xff0c;有的粉底可能侧重遮瑕&#xff0c;有个侧重保湿&#xff0c;有的…

测试底妆的软件,你最想看的粉底液测评,我一次性测了12款!!

正文开始前&#xff0c;提醒大家不要忘记我们的【为你老公/老婆打call】征集还在 进行中哦 &#xff0c;每天抽2个留言幸运鹅送现金红包也在火热开展中哟~ 仙女萌好呀~这里是放假超开心哒狗砸&#xff01; 十一的第三天&#xff0c;没想到我就勤勤恳恳来更文啦&#xff0c;毕竟…

ChatGPT爆火!“风险”还是“风口”?数据分析师会被取代吗?

近日&#xff0c;据财联社报道&#xff0c;ChatGPT背后的开发商OpenAI发话&#xff0c;该公司首席技术官Mira Murati在采访中警告道&#xff1a;现在需要监管机构进行介入&#xff0c;以防止ChatGPT等生成式AI系统对社会产生潜在负面影响。 当问及监管机构现在介入是否为时过早…

【支付】第三方支付收单机构

简要概述 现在&#xff0c;在银行卡收单市场里&#xff0c;第三方收单机构在全国范围类极速发展。 收单牌照的第三方支付机构&#xff0c;即通过线下布放POS&#xff0c;替商户收单&#xff0c;第三方支付机构一般是找一个合作的收单银行&#xff0c;对于收单银行自己的持卡人…

使用银联商务实现微信小程序支付

最近公司的小程序需要使用到支付功能&#xff0c;我们使用的是银联商务的支付&#xff0c;那么如何在微信小程序中对接银联商务的微信小程序支付呢&#xff1f;这里我记录下我在微信小程序中实现银联商务的微信小程序支付流程 一&#xff1a;接口部分&#xff1a; 这里注意银…

Android支付宝,微信,银联支付支付的集成

移动支付 用户使用移动的终端完成对所购买商品或者服务的支付功能;分为近场支付(蓝牙支付,刷卡,滴卡),和远程支付(网上支付,短信支付) app支付模块 常见的支付厂商-->常见的支付方式 支付宝:阿里公司微信:腾讯公司银联:联合起来的结构财付通:腾讯公司支付宝钱包:阿里公司百…

1.Java接入银联支付(chinapay)教程及避坑点

一、背景及效果展示 现如今&#xff0c;诸多的供应链系统需要使用电子钱包功能&#xff0c;所以接入银联B2B无卡支付&#xff0c;是很多系统应用需要做的事情。银联支付的类型分很多种&#xff1a;网关支付&#xff08;带token请求实现&#xff0c;下次有空再分享&#xff09;…

前端直接调用银联支付接口,使用form表单访问银联

直接调转到银联页面 银联支付 <template> <div class"pay"> <form action"https://gateway.95516.com/gateway/api/frontTransReq.do" method"post" id"payUniconSubmit"> <div v-show"false…

PHP接入银联在线网关支付

网站支付&#xff1a;一般接入微信支付、支付宝支付、银联支付&#xff0c;本文介绍的是如何接入中国银联在线网关支付 银联介绍 银联在线支付网关是中国银联联合各商业银行为持卡人提供的集成化、综合性互联网支付工具&#xff0c;主要支持输入卡号付款、用户登录支付、网银支…

移动支付--银联,支付宝,微信(android)

在这个移动互联网高速发展的时代,手机已经成为人们生活或者出行之中不可缺少的设备了&#xff0c;现在很多城市的商户都可以采用支付宝&#xff0c;微信支付了&#xff0c;人们出门只需要随身携带带手机&#xff0c;不用带大量现金就可以放心购物了。现在的很多移动互联网产品都…

微信APP支付之IJpay的使用

写在开始:一个搬砖程序员的随缘记录微信支付相对其他支付&#xff0c;比如支付宝支付坑比较多。一直报签名失败。签名参数顺序、数据类型&#xff0c;加密类型这些都需要注意&#xff0c;用第三方的比较省心。 IJpay介绍&#xff1a; 聚合支付&#xff0c;IJPay 让支付触手可及…

滥用 GPT,被抓了.....

点击上方“Java基基”&#xff0c;选择“设为星标” 做积极的人&#xff0c;而不是积极废人&#xff01; 每天 14:00 更新文章&#xff0c;每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路&#xff0c;很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应…

沉浸式学习

沉浸式就是利用系统状态栏&#xff0c;将背景图片延伸至系统状态栏区域内&#xff0c;效果就是和游戏应用画面那样。 Action1 隐藏状态栏和ActionBar 仅仅是隐藏状态栏和ActionBar&#xff0c;只是粗暴的隐藏了而已 //获取当前界面的DecorViewView decorView getWindow().g…

最全整理反面角色谁更适合饰演老大角色,你认识多少?(已收藏)

https://www.toutiao.com/a6662589985889190412/ 2019-02-27 16:11:54 这些演艺界的大佬&#xff0c;哪位更适合饰演反面角色的老大&#xff0c;你觉得的呢&#xff1f; 排名不分前后 【万梓良】 香港娱乐圈内有很多自带大哥气质的演员&#xff0c;万梓良就是其中之一。 他在…

“引进来,走出去”,锦江国际集团多重创新力引领绿色新发展

2022年12月13日&#xff0c;由南方财经全媒体集团指导&#xff0c;21世纪经济报道主办的“21世纪住宿业高峰论坛&#xff08;2022&#xff09;暨2022&#xff08;第十九届&#xff09;【金枕头】酒店大赏发布典礼”在上海如期举行。锦江国际集团副总裁周维应邀出席并发表“创新…

PDF文档翻译中文的方法

1.如果你的文档容量不大&#xff0c;可以尝试使用谷歌翻译进行文档翻译&#xff0c;可以看到谷歌翻译支持的文档类型有 .doc、.docx、.odf、.pdf、.ppt、.pptx、.ps、.rtf、.txt、.xls 和 .xlsx 不过值得注意的是&#xff0c;谷歌翻译支持的文档容量仅为1MB 2.同样是基于谷歌…

如何将英文PDF翻译成中文且格式不变?(PDF免费翻译攻略)

如何将英文PDF翻译成中文且格式不变 方法1&#xff1a;转换成HTML后再使用谷歌浏览器翻译保存为PDF方法2&#xff1a;使用一些第三方PDF翻译网站最后博主采用了福昕翻译网站在线翻译的方法。 Hello&#xff0c;小伙伴们&#xff01; 博主最近想要将一份英文的pdf帮助文档转换成…

用python写一个PDF翻译软件

前期工作&#xff1a; 注册 百度翻译api的账户&#xff08;个人-高级版&#xff09;&#xff0c;注册后&#xff0c;每个月有2百万的免费翻译字符数。 安装pdfminer3k 一、UI界面设计 点击路径按钮时弹出文件目录选择窗口&#xff0c;参考文章&#xff1a; PYQT5实现文件目…