紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
ROS2--moveit2--ros2 run hello_moveit节点没反应
-
按照moveit2官方文档走的,在进行你的第一个c++项目时,按照步骤走,但是使用ros2 run hello_moveit hello_moveit终端没反应,打开rviz机械臂也没反应,其中cpp代码文件和官方给的一样:
#include <memory> #include <rclcpp/rclcpp.hpp> #include <moveit/move_group_interface/move_group_interface.h> int main(int argc, char * argv[]) { // Initialize ROS and create the Node rclcpp::init(argc, argv); auto const node = std::make_shared<rclcpp::Node>( "hello_moveit", rclcpp::NodeOptions().automatically_declare_parameters_from_overrides(true) ); // Create a ROS logger auto const logger = rclcpp::get_logger("hello_moveit"); // Next step goes here // Create the MoveIt MoveGroup Interface using moveit::planning_interface::MoveGroupInterface; auto move_group_interface = MoveGroupInterface(node, "panda_arm"); // Set a target Pose auto const target_pose = []{ geometry_msgs::msg::Pose msg; msg.orientation.w = 1.0; msg.position.x = 0.28; msg.position.y = -0.2; msg.position.z = 0.5; return msg; }(); move_group_interface.setPoseTarget(target_pose); // Create a plan to that target pose auto const [success, plan] = [&move_group_interface]{ moveit::planning_interface::MoveGroupInterface::Plan msg; auto const ok = static_cast<bool>(move_group_interface.plan(msg)); return std::make_pair(ok, msg); }(); // Execute the plan if(success) { move_group_interface.execute(plan); } else { RCLCPP_ERROR(logger, "Planning failed!"); } // Shutdown ROS rclcpp::shutdown(); return 0; }
运行效果:
没有任何反应链接文本 -
@1179210529 看不出来问题,先多加些打印看看,另外考虑适当加上spin
-
@小鱼 我加了RCLCPP_INFO,但是也没打印出东西,加了spin()也没有任何反应,
#include <memory> #include <rclcpp/rclcpp.hpp> #include <moveit/move_group_interface/move_group_interface.h> int main(int argc, char * argv[]) { // Initialize ROS and create the Node rclcpp::init(argc, argv); auto const node = std::make_shared<rclcpp::Node>( "hello_moveit", rclcpp::NodeOptions().automatically_declare_parameters_from_overrides(true) ); // Create a ROS logger auto const logger = rclcpp::get_logger("hello_moveit"); // Next step goes here // Create the MoveIt MoveGroup Interface using moveit::planning_interface::MoveGroupInterface; auto move_group_interface = MoveGroupInterface(node, "panda_arm"); // Set a target Pose auto const target_pose = []{ geometry_msgs::msg::Pose msg; msg.orientation.w = 1.0; msg.position.x = 0.28; msg.position.y = -0.2; msg.position.z = 0.5; return msg; }(); move_group_interface.setPoseTarget(target_pose); // Create a plan to that target pose auto const [success, plan] = [&move_group_interface]{ moveit::planning_interface::MoveGroupInterface::Plan msg; auto const ok = static_cast<bool>(move_group_interface.plan(msg)); return std::make_pair(ok, msg); }(); // Execute the plan if(success) { RCLCPP_INFO(logger,"planning sucess"); move_group_interface.execute(plan); } else { RCLCPP_ERROR(logger, "Planning failed!"); } rclcpp::spin(node); // Shutdown ROS rclcpp::shutdown(); return 0; }
会不会和编译有关系,我不是在ws_moveit下编译colcon build的,对于这个hello_moveit.cpp我直接在ws_moveit里面的hello_moveit文件下打开终端colcon build这个hello_moveit.cpp
-
-
@1179210529 后来解决了吗