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

相关文章

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.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是