官方文档上的教程,从moveit1的melodic到moveit2的foxy基本一致,但是从最新的humble开始有了很大的变化,其中之一便是 lambda表达式 的广泛使用。
本节为教程的第二节,会介绍一个工具(moveit_visual_tools),它能够通过在 rviz 中呈现可视化,从而帮助你更容易理解你的 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路径:
#include <moveit_visual_tools/moveit_visual_tools.h>
保存后打开一个新终端,编译看是否报错。
2 创建 ROS 执行器并在线程中循环节点
在初始化 MoveItVisualTools 之前,需要有一个执行器在 ROS 节点上不断循环。
这是必要的操作,来让MoveItVisualTools与 ROS服务和话题交互。
#include <thread> // <---- add this to the set of includes at the top
...
// 创建一个 ROS logger
auto const logger = rclcpp::get_logger("hello_moveit");
// 循环一个单线程执行器来让 MoveItTools 与 ROS 交互
rclcpp::executors::SingleThreadedExecutor executor;