您的第一个 C++ MoveIt 项目
本教程将指导你编写第一个使用 MoveIt 的 C++ 应用程序。
警告:由于需要额外的参数才能实现完整的 Move Group 功能,MoveIt 中的大多数功能将无法正常工作。要进行完整设置,请继续学习 Move Group C++ 接口教程。
先决条件
如果您还没有这样做,请确保您已完成入门中的步骤。
本教程假设您了解 ROS 2 的基础知识。为了为此做好准备,请完成官方 ROS 2 教程,直到“编写一个简单的发布者和订阅者(C++)”。
步骤
1 创建一个包
打开终端并设置你的 ROS 2 安装,以便 ros2 命令可以工作。
导航到你在“入门”教程中创建的 ws_moveit 目录。
进入 src 目录,因为我们将源代码放在那里。
使用 ROS 2 命令行工具创建一个新包:
ros2 pkg create \
--build-type ament_cmake \
--dependencies moveit_ros_planning_interface rclcpp \
--node-name hello_moveit hello_moveit
此输出将显示它在新目录中创建了一些文件。
请注意,我们添加了 moveit_ros_planning_interface
和 rclcpp
作为依赖项。这将在 package.xml
和 CMakeLists.txt
文件中创建必要的更改,以便我们可以依赖这两个包。
在您喜欢的编辑器中打开为您在 ws_moveit/src/hello_moveit/src/hello_moveit.cpp
创建的新源文件。
2 创建一个 ROS 节点和执行器
这第一段代码有点样板,但你应该已经习惯在 ROS 2 教程中看到这个。
#include <memory>
#include <rclcpp/rclcpp.hpp>
#include <moveit/move_group_interface/move_group_interface.h>
int main(int argc, char * argv[])
{
// 初始化 ROS 并创建节点
rclcpp::init(argc, argv);
auto const node = std::make_shared<rclcpp::Node>(
"hello_moveit",
rclcpp::NodeOptions().automatically_declare_parameters_from_overrides(true)
);
// 创建 ROS 日志记录器
auto const logger = rclcpp::get_logger("hello_moveit");
// 下一步代码在这里
// 关闭 ROS
rclcpp::shutdown();
return 0;
}
2.1 构建和运行
我们将在继续之前构建并运行程序以确保一切正常。
将目录更改回工作区目录 ws_moveit
并运行此命令