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

相关文章

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.