Open slavenpetkovic opened 3 years ago
Hi @slavenpetkovic How are you controlling the OM-X? Is it mounted on TB3 and connected to the OpenCR? Which ROS package are you using to control the OM-X? If you are implementing your code directly using the move group interface, you can inquire to the moveit repository below. https://github.com/ros-planning/moveit
Yes, I use OpenCR to control TB3 with OM-X. And yes, I use moveit so i'll ask there. Thanks
ISSUE TEMPLATE ver. 0.4.0
Which TurtleBot3 platform do you use?
Which ROS is working with TurtleBot3?
Which SBC(Single Board Computer) is working on TurtleBot3?
Which OS you installed on SBC?
Which OS you installed on Remote PC?
Specify the software and firmware version(Can be found from Bringup messages)
Specify the commands or instructions to reproduce the issue.
Copy and Paste the error messages on terminal.
Please describe the issue in detail.
//Move to valid NAMED pose (used for arm) void move_arm(moveit::planning_interface::MoveGroupInterface& move_group_interface, const std::string &name){ ros::NodeHandle node_handle; move_group_interface.setNamedTarget(name); moveit::planning_interface::MoveGroupInterface::Plan my_plan; bool success = (move_group_interface.plan(my_plan) == moveit::planning_interface::MoveItErrorCode::SUCCESS); ROS_INFO_NAMED("tutorial", "Planning (pose goal) %s", success ? "OK" : "FAILED"); bool result = (move_group_interface.execute(my_plan) == moveit::planning_interface::MoveItErrorCode::SUCCESS); ROS_INFO_NAMED("tutorial", "MOVE_GROUP_RESULT : %s", result ? "SUCCESS" : "FAILED"); }
In main is something like this
ros::AsyncSpinner spinner(1); spinner.start();
...
static const std::string PLANNING_GROUP_ARM = "arm"; moveit::planning_interface::MoveGroupInterface move_group_interface_arm(PLANNING_GROUP_ARM); move_group_interface_arm.setPlannerId("RRTConnect"); move_group_interface_arm.setPlanningTime(5); move_group_interface_arm.setNumPlanningAttempts(10);
const moveit::core::JointModelGroup* joint_model_group = move_group_interface_arm.getCurrentState()->getJointModelGroup(PLANNING_GROUP_ARM);
move_arm(move_group_interface_arm, "position1"); move_arm(move_group_interface_arm, "position2"); ...
When i add ros::WallDuration(5.0).sleep(); line in between these two move_arm calls, it works, but that is not the right way to do it.
Any idea why this happes or suggestion how to solve this problem? Is there anything else I should pass to MoveGroupInterface constructor except that planning group name string?