ROS Industrial教程(七)_笛卡尔规划和执行2

2024-04-28 04:58

本文主要是介绍ROS Industrial教程(七)_笛卡尔规划和执行2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

加载参数

在本练习中,我们将加载一些ROS参数以初始化程序中的重要变量。

定位练习源文件

·转到位于plan_and_run/src/plan_and_run_node.cpp中的主应用程序源文件。

·在主程序中,找到对application.loadParameters()的函数调用。

·转到位于plan_and_run/src/tasks/load_parameters.cpp中的该函数的源文件。 另外,在Eclipse中,您可以单击函数的任何部分,然后按“ F2”以调出该文件。

·注释掉包含ROS_ERROR_STREAM ...条目的第一行,以使该函数不会立即退出。

 

完成代码

·查找以/* Fill Code:开头的注释块并按说明完成。

·相应地替换[ COMPLETE HERE ]的每个实例。

 

构建与运行

·cd进入catkin工作区并运行catkin build

catkin build --cmake-args -G 'CodeBlocks - Unix Makefiles'

source ./devel/setup.bash

 

·然后运行应用程序启动文件:

roslaunch plan_and_run demo_setup.launch

roslaunch plan_and_run demo_run.launch

 

 

API参考

ros::NodeHandle

NodeHandle::getParam()

 

 

初始化ROS

在本练习中,我们将初始化应用程序所需的ros组件,以便与MoveIt!及系统的其他部分通信。

定位练习源文件

·转到位于plan_and_run/src/plan_and_run_node.cpp中的主应用程序源文件。

·在主程序中,找到对application.initRos()的函数调用。

·转到位于plan_and_run/src/tasks/init_ros.cpp中的该函数的源文件。或者,在QTCreator中,单击函数的任何部分,然后按“ F2”以调出该文件。

·注释掉包含ROS_ERROR_STREAM ...条目的第一行,以使该函数不会立即退出。

 

完成代码

·观察ros Publisher的marker_publisher_变量是如何初始化的。 节点使用它来发布visualization_msgs::!MarkerArray消息,以可视化RViz中的轨迹。

·使用ExecuteTrajectoryAction类型初始化moveit_run_path_client_ptr_操作客户端。

·查找以/* Fill Code:开头的注释块并按说明完成。

·相应地替换[ COMPLETE HERE ]的每个实例。

 

构建与运行

·cd进入catkin工作区并运行catkin build

·然后运行应用程序启动文件:

roslaunch plan_and_run demo_run.launch

 

 

API参考

visualization_msgs::MarkerArray

NodeHandle::serviceClient()

 

 

初始化笛卡尔

此练习包括设置笛卡尔机器人模型和路径规划器,我们的节点将使用该模型和路径规划器来从工具的半约束轨迹规划路径。

定位练习源文件

·转到位于plan_and_run/src/plan_and_run_node.cpp中的主应用程序源文件。

·在主程序中,找到对application.initDescartes()的函数调用。

·转到位于plan_and_run/src/tasks/init_descartes.cpp中的该函数的源文件。或者,在QTCreator中,单击函数的任何部分,然后按“ F2”以调出该文件。

·注释掉包含ROS_ERROR_STREAM ...条目的第一行,以使该函数不会立即退出。

 

完成代码

·调用descartes_core :: RobotModel :: initialize()方法以正确初始化机器人。

·同样,通过将robot_model_变量传递到descartes_core::!DensePlanner::initialize()方法来初始化Descartes计划器。

·查找以/* Fill Code:开头的注释块并按说明完成。

·相应地替换[ COMPLETE HERE ]的每个实例。

 

构建与运行

·cd进入catkin工作区并运行catkin build

·然后运行应用程序启动文件:

roslaunch plan_and_run demo_run.launch

 

API参考

descartes_core::RobotModel descartes_planner::DensePlanner

 

移动到初始位姿

此练习将使用MoveIt!移动机械臂。

定位练习源文件

·转到位于plan_and_run/src/plan_and_run_node.cpp中的主应用程序源文件。

·在主程序中,找到对application.moveHome()的函数调用。

·转到位于plan_and_run/src/tasks/move_home.cpp中的该函数的源文件。或者,在QTCreator中,单击函数的任何部分,然后按“ F2”以调出该文件。

·注释掉包含ROS_ERROR_STREAM ...条目的第一行,以使该函数不会立即退出。

 

完成代码

·使用MoveGroupInterface :: move()方法将机器人移动到目标。

·moveit_msgs :: MoveItErrorCodes结构包含可在调用move()函数后用来检查结果的常量。

·查找以/* Fill Code:开头的注释块并按说明完成。

·相应地替换[ COMPLETE HERE ]的每个实例。

 

构建与运行

·cd进入catkin工作区并运行catkin build

·然后运行应用程序启动文件:

roslaunch plan_and_run demo_run.launch

 

API参考

setNamedTarget()

MoveGroupInterface class

 

 

生成半约束轨迹

在本练习中,我们将通过一系列笛卡尔姿势创建笛卡尔轨迹。 每个点将绕工具的z轴具有旋转自由度。

定位练习源文件

·转到位于plan_and_run/src/plan_and_run_node.cpp中的主应用程序源文件。

·在主程序中,找到对application.generateTrajectory()的函数调用。

·转到位于plan_and_run/src/tasks/generate_trajectory.cpp中的该函数的源文件。或者,在QTCreator中,单击函数的任何部分,然后按“ F2”以调出该文件。

·注释掉包含ROS_ERROR_STREAM ...条目的第一行,以使该函数不会立即退出。

 

完成代码

·观察如何调用“ createLemniscate()”以生成轨迹的工具的所有姿态。 然后使用其中的姿势创建笛卡尔轨迹。

·使用AxialSymmetric构造函数来指定一个绕z轴具有旋转自由度的点。

·AxialSymmetricPt :: FreeAxis :: Z_AXIS枚举常量允许您将Z指定为自由旋转轴

·查找以/* Fill Code:开头的注释块并按说明完成。

·相应地替换[ COMPLETE HERE ]的每个实例。

 

 

构建与运行

·cd进入catkin工作区并运行catkin build

·然后运行应用程序启动文件:

roslaunch plan_and_run demo_run.launch

 

API参考

descartes_trajectory::AxialSymmetricPt

 

规划机器人路径

在本练习中,我们会将轨迹传递给笛卡尔计划器,以计划机器人路径。

定位练习源文件

·转到位于plan_and_run/src/plan_and_run_node.cpp中的主应用程序源文件。

·在主程序中,找到对application.planPath()的函数调用。

·转到位于plan_and_run/src/tasks/plan_path.cpp中的该函数的源文件。或者,在Eclipse中,单击函数的任何部分,然后按“ F2”以调出该文件。

·注释掉包含ROS_ERROR_STREAM ...条目的第一行,以使该函数不会立即退出。

 

完成代码

·观察AxialSymmetricPt :: getClosestJointPose()的使用,以获取最接近某一关节姿态的机器人的关节值。 此外,此步骤允许我们为起点和终点选择单个关节姿势,而不是多个有效的关节配置。

·调用DensePlanner :: planPath()方法以计算运动计划。

·当规划成功时,请使用DensePlanner :: getPath()方法从规划器中检索路径并将其保存到output_path变量中。

·查找以/* Fill Code:开头的注释块并按说明完成。

·相应地替换[ COMPLETE HERE ]的每个实例。

 

构建与运行

·cd进入catkin工作区并运行catkin build

·然后运行应用程序启动文件:

roslaunch plan_and_run demo_run.launch

 

API参考

descartes_planner::DensePlanner

 

运行机器人路径

在本练习中,我们将笛卡尔路径转换为MoveIt!轨迹,然后将其发送给机器人。

定位练习源文件

·转到位于plan_and_run/src/plan_and_run_node.cpp中的主应用程序源文件。

·在主程序中,找到对application.runPath()的函数调用。

·转到位于plan_and_run/src/tasks/run_path.cpp中的该函数的源文件。或者,在QTCreator中,单击函数的任何部分,然后按“ F2”以调出该文件。

·注释掉包含ROS_ERROR_STREAM ...条目的第一行,以使该函数不会立即退出。

 

完成代码

·查找以/* Fill Code:开头的注释块并按说明完成。

·相应地替换[ COMPLETE HERE ]的每个实例。

 

构建与运行

·cd进入catkin工作区并运行catkin build

·然后运行应用程序启动文件:

roslaunch plan_and_run demo_run.launch

 

API参考

MoveGroupInterface::move()

这篇关于ROS Industrial教程(七)_笛卡尔规划和执行2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942370

相关文章

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee