【MoveIt 2】在RViz中可视化

Visualizing In RViz

本教程将向您介绍一个工具,该工具可以通过在RViz中渲染可视化效果,帮助您更容易地理解您的MoveIt应用程序正在做什么

前提条件 

如果您还没有完成,确保您已经完成了“您的第一个项目”中的步骤。本项目假设您是从hello_moveit项目开始的,这是之前教程的结束点。

步骤 

1 添加依赖项moveit_visual_tools 

在hello_moveit项目的package.xml文件中,在其他<depend>语句之后添加以下行:

<depend>moveit_visual_tools</depend>

然后在您的CMakeLists.txt文件中,在find_package语句部分添加以下行:

find_package(moveit_visual_tools REQUIRED)

在文件的更下方,扩展ament_target_dependencies宏调用以包含新依赖项,如下所示:

ament_target_dependencies(
  hello_moveit
  "moveit_ros_planning_interface"
  "moveit_visual_tools"
  "rclcpp"
)

为了验证您是否正确添加了依赖项,请在源文件hello_moveit.cpp中添加所需的包含:

#include <moveit_visual_tools/moveit_visual_tools.h>

为了测试这一切是否正常工作,请在工作区目录中打开终端(记得source您的ROS安装),然后使用colcon构建:

cd ~/ws_moveit
colcon build --mixin debug
cxy@cxy-Ubuntu2404:~/ws_moveit$ colcon build --packages-select hello_moveit --mixin debug
Starting >>> hello_moveit
Finished <<< hello_moveit [22.7s]                       


Summary: 1 package finished [23.1s]

2 创建一个ROS执行器并在线程上旋转节点

在我们初始化MoveItVisualTools之前,我们需要有一个执行器在我们的ROS节点上旋转。这是因为MoveItVisualTools与ROS服务和主题的交互方式。首先,在顶部添加线程库到您的包含中。

#include <thread>  // <---- add this to the set of includes at the top

通过创建和命名记录器,我们可以保持我们的程序日志组织。

 
 
// Create a ROS logger
auto const logger = rclcpp::get_logger("hello_moveit");

接下来,在创建MoveIt MoveGroup Interface之前添加您的执行器。

// Spin up a SingleThreadedExecutor for MoveItVisualTools to interact with ROS
  rclcpp::executors::SingleThreadedExecutor executor;
  executor.add_node(node);
  auto spinner = std::thread([&executor]() { executor.spin(); });


  // Create the MoveIt MoveGroup Interface


...

最后,在退出之前确保连接线程。

// Shutdown ROS
rclcpp::shutdown();  // <--- This will cause the spin function in the thread to return
spinner.join();  // <--- Join the thread before exiting
return 0;

在进行这些更改后,重新构建您的工作区以确保您没有任何语法错误。

3 创建并初始化MoveItVisualTools 

接下来,我们将在MoveGroupInterface构建之后构建并初始化MoveItVisualTools。

// Create the MoveIt MoveGroup Interface
using moveit::planning_interface::MoveGroupInterface;
auto move_group_interface = MoveGroupInterface(node, "manipulator");


// Construct and initialize MoveItVisualTools
auto moveit_vi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值