Quantcast
Channel: ROS Answers: Open Source Q&A Forum - RSS feed
Viewing all 1441 articles
Browse latest View live

Some errors occurred when package was compiling.(LINK ERROR)

$
0
0
Hey guys, i just copy the codes , in the Chapter 10 of book,' Mastering ROS for Robotics Programming', to my ros. The cmakelists file is written as followed, ---------- cmake_minimum_required(VERSION 2.8.3) project(seven_dof_arm_test) find_package(catkin REQUIRED COMPONENTS cmake_modules interactive_markers moveit_core moveit_ros_perception moveit_ros_planning_interface pluginlib** roscpp std_msgs ) find_package(Boost REQUIRED COMPONENTS system) catkin_package( ) include_directories( ${catkin_INCLUDE_DIRS} ) add_executable(test_random_node src/test_random.cpp) add_dependencies(test_random_node seven_dof_arm_test_generate_messages_cpp) target_link_libraries(test_random_node ${catkin_LIBRARIES} ) include_directories( ${catkin_INCLUDE_DIRS} ) ---------- And the cpp file is shown as followed, #include int main(int argc, char **argv) { ros::init(argc, argv, "move_group_interface_demo", ros::init_options::AnonymousName); // start a ROS spinning thread ros::AsyncSpinner spinner(1); spinner.start(); // this connecs to a running instance of the move_group node move_group_interface::MoveGroup group("arm"); // specify that our target will be a random one group.setRandomTarget(); // plan the motion and then move the group to the sampled target group.move(); ros::waitForShutdown(); } ---------- Now when the package is compiling, the error occured , Linking CXX executable /home/aicrobo/catkin_ws/devel/lib/seven_dof_arm_test/test_random_node /opt/ros/indigo/lib/libmoveit_planning_scene_monitor.so: undefined reference to `ros::WallTimer::setPeriod(ros::WallDuration const&, bool)' collect2: error: ld returned 1 exit status make[2]: *** [/home/aicrobo/catkin_ws/devel/lib/seven_dof_arm_test/test_random_node] Error 1 make[1]: *** [seven_dof_arm_test/CMakeFiles/test_random_node.dir/all] Error 2 make: *** [all] Error 2 Invoking "make -j1 -l1" failed ---------- So do you have any idea about the problem? Thank you

Applying velocity constraints during Cartesian space planning

$
0
0
Hi I am using ROS-Indigo on Ubuntu 14.04 and using a 7 axis robot. I want to implement velocity constraints during Cartesian space planning but unable to do so as Moveit! by default doesnot implement velocity constraints for Cartesian Planning. I also tried to use Iterative Parabolic Time Parameterization to adjust the timestamps but no use. Is there any workaround to implement velocity control in Cartesian space ?? My code is as follows: #include #include #include #include #include #include #include int main(int argc, char **argv) { ros::init(argc, argv, "line"); ros::NodeHandle node_handle; ros::AsyncSpinner spinner(1); spinner.start(); moveit::planning_interface::MoveGroup group("arm"); moveit::planning_interface::PlanningSceneInterface plannning_scene_interface ; tf::TransformListener listener; tf::StampedTransform transform; group.setGoalPositionTolerance(0.0001); group.setGoalOrientationTolerance(0.001); group.setPlannerId("RRTConnectkConfigDefault"); std::vector joint_positions; geometry_msgs::PoseStamped pose; group.getCurrentState()->copyJointGroupPositions(group.getCurrentState()->getRobotModel()->getJointModelGroup(group.getName()), joint_positions); joint_positions[0] = -2.277; joint_positions[1] = -1.0; joint_positions[2] = 0.0; joint_positions[3] = -0.80; joint_positions[4] = 0.0; joint_positions[5] = -0.8; joint_positions[6] = 0; group.setJointValueTarget(joint_positions); std::vector waypoints; group.move(); sleep(2.0); listener.lookupTransform ("world", group.getEndEffectorLink().c_str(), ros::Time(0), transform ); moveit::planning_interface::MoveGroup::Plan my_plan; pose.header.stamp = ros::Time::now(); pose.header.frame_id = "/world"; pose.pose.position.x = transform.getOrigin().getX(); pose.pose.position.y = transform.getOrigin().getY(); pose.pose.position.z = transform.getOrigin().getZ(); pose.pose.orientation.x = transform.getRotation().getX(); pose.pose.orientation.y = transform.getRotation().getY(); pose.pose.orientation.z = transform.getRotation().getZ(); pose.pose.orientation.w = transform.getRotation().getW(); geometry_msgs::Pose pose2 = pose.pose; group.setMaxVelocityScalingFactor(0.50); group.setMaxAccelerationScalingFactor(0.50); pose2.position.x -= 0.90; waypoints.clear(); waypoints.push_back(pose2); moveit_msgs::RobotTrajectory trajectory; const double jump_threshold = 0.0; const double eef_step = 0.001; double fraction = group.computeCartesianPath(waypoints, eef_step, jump_threshold, trajectory); robot_trajectory::RobotTrajectory rt(group.getCurrentState()->getRobotModel(), "arm"); // Second get a RobotTrajectory from trajectory rt.setRobotTrajectoryMsg(*group.getCurrentState(), trajectory); // Thrid create a IterativeParabolicTimeParameterization object trajectory_processing::IterativeParabolicTimeParameterization iptp; // Fourth compute computeTimeStamps bool success = iptp.computeTimeStamps(rt); ROS_INFO("Computed time stamp %s",success?"SUCCEDED":"FAILED"); // Get RobotTrajectory_msg from RobotTrajectory rt.getRobotTrajectoryMsg(trajectory); // Finally plan and execute the trajectory my_plan.trajectory_ = trajectory; ROS_INFO("Visualizing plan 4 (cartesian path) (%.2f%% acheived)",fraction * 100.0); sleep(5.0); group.execute(my_plan); sleep(2.0); ros::shutdown(); return 0; }

Is STOMP and CHOMP benchmarking in moveit possible?

$
0
0
Is it possible to benchmark STOMP and CHOMP planners in Moveit! using benchmark suite on PlannerArena?

Problem of setting value of arm joint by moveit setJointPositions

$
0
0
When we request a pose to moveit api, we can get the plan result, As following: group_->setPoseTarget(start_pose_); my_plan= evaluate_plan(*group_); I modified the evaluate_plan function so that i can let plan result return. Then i print part information of the plan result, as following: int joint_name_size, plan_point_size; joint_name_size = my_plan.trajectory_.joint_trajectory.joint_names.size(); plan_point_size = my_plan.trajectory_.joint_trajectory.points.size(); std::cout <<"joint_name size:"<< joint_name_size <&joint_value, geometry_msgs::Pose &m) { ROS_INFO("Forward Kinematic test"); robot_state::RobotStatePtr kinematic_state(new robot_state::RobotState(robot_model_)); kinematic_state->setToDefaultValues(); const robot_state::JointModelGroup* joint_model_group = robot_model_->getJointModelGroup("arm"); const std::vector&joint_names = joint_model_group->getJointModelNames(); // for(std::size_t i = 0; i < joint_names.size(); i++) // { // ROS_INFO("Write Size: %dJoint i:%d %s: %f", joint_names.size(), i, joint_names[i].c_str(), joint_value[i]); // } // kinematic_state->setToRandomPositions(joint_model_group); for(char i=0;isetJointPositions(joint_names[i+1], &joint_value[i]); } //ROS_INFO("Joint i:%d %s: %f", i, joint_names[i].c_str(), joint_value[i]); // std::vector joint_values_(7, 0.0); // //j2n6s300_joint_1 joint_values_[0] ; //j2n6s300_joint_2 joint_values_[1] ; //j2n6s300_joint_3 joint_values_[2] ; //j2n6s300_joint_4 joint_values_[3] ; //j2n6s300_joint_5 joint_values_[4] ; //j2n6s300_joint_6 joint_values_[5] ; // kinematic_state->setJointGroupPositions(joint_model_group,joint_values_); // kinematic_state->setJointPositions(joint_names[0],angle); // kinematic_state->setToRandomPositions(joint_model_group); std::vector joint_values; kinematic_state->copyJointGroupPositions(joint_model_group, joint_values); for(std::size_t i = 0; i < joint_names.size(); i++) { ROS_INFO("Read Joint i:%d %s: %f", i, joint_names[i].c_str(), joint_values[i]); } const Eigen::Affine3d &end_effector_state = kinematic_state->getGlobalLinkTransform("j2n6s300_end_effector"); /* Print end-effector pose. Remember that this is in the model frame */ //ROS_INFO_STREAM("Translation: " << end_effector_state.translation()); //ROS_INFO_STREAM("Rotation: " << end_effector_state.rotation()); tf::poseEigenToMsg(end_effector_state,m); ROS_INFO_STREAM("Pose Computed:"<getJointModelNames() has 8 members which is j2n6s300_joint_base, j2n6s300_joint_1, ... , j2n6s300_joint_6, j2n6s300_joint_end_effector. Then, when i tried to set joint value according joint name, like the follow method(p.s. i set a std::vector forKJointValue(6,0.0) as the getForK() input variable): for(char i=0;isetJointPositions(joint_names[i+1], &joint_value[i]); } Ideally, i would only set joint value of j2n6s300_joint_1, ... , j2n6s300_joint_6. But, i got follow results [ INFO] [1529633314.430620000]: Read Joint i:0 j2n6s300_joint_base: -1.478416 [ INFO] [1529633314.430661300]: Read Joint i:1 j2n6s300_joint_1: 2.924741 [ INFO] [1529633314.430705143]: Read Joint i:2 j2n6s300_joint_2: 1.001931 [ INFO] [1529633314.430739710]: Read Joint i:3 j2n6s300_joint_3: -2.080089 [ INFO] [1529633314.430767370]: Read Joint i:4 j2n6s300_joint_4: 1.445890 [ INFO] [1529633314.430795050]: Read Joint i:5 j2n6s300_joint_5: 1.323290 [ INFO] [1529633314.430823610]: Read Joint i:6 j2n6s300_joint_6: 0.000000 [ INFO] [1529633314.430857823]: Read Joint i:7 j2n6s300_joint_end_effector: 0.000000 Although i tried different methods, but i can not solve this problem. But when i ignore this problem, the position of distal joint seems right, because i displayed point computed by getForK() using rviz marker. While i am confused about all of this. Looking forward your advice! Thanks a lot!

MoveIt Forward kinematics

$
0
0
Hi there, does someone know how the forward kinematics is solved in MoveIt? I know it is done with the getGlobalLinkTransform, but I don't know if this function solve it with a transformation matrix or in a otherwise. Or is it only a measurement in the simulation model? I need it for my Bachelor-Thesis to explain it a little bit. Would be great if someone can help me out. Best regards, Jonas

In what space does MoveIT plans paths?

$
0
0
I have two questions about how does MoveIT plan paths: 1. If my target is defined in a task space, does MoveIT convert the target into c-space by solving IK and then plans in configuration space or does it look for a plan in task space and then converts trajectory into c-space? 2. If my target define as joint values does in convert it to corresponding task space pose using forward kinematics and looks for a path in a task space? I am worried about it because if planning is always performed in task space then collision detection requires to solve IK on each planning iteration which can work quite slow when IK is solved using Jacobian based solvers.

Dynamixel MX-64 Issue

$
0
0
Hello, I am experiencing peculiar behavior with a couple of MX-64 motors that I am currently using for a robotic arm. The issue is that when executing motion planning movement for the arm through ‘ROS and Move-It’, the motors periodically give-up then slowly go back to moving to their required position. A video of this happening is seen at: https://vimeo.com/278070661. The specifications of the arm I am using and what version the motors are is below: **Robotic Arm** • Crustcrawler Pro-Series Robotic Arm (http://www.crustcrawler.com/products/ProRoboticArm/) • Motor layout from bottom (table #1) to top (gripper #8): o Turntable Motor #1 - MX-64 o Dual Motors #2 and #3 - Both are MX-64 o ****Long Arm Motor #4**** - This MX-64 is giving the issue o ***Short Arm Motor #5*** - This MX-64 is giving the issue also o Wrist Rotate Joint Motor #6 - AX-12A o Gripper Motors Left #7 and Right #8 – Both are AX-18A **Motor Specifications** • MX-64T Protocol 1.0 Firmware Version 36 (http://support.robotis.com/en/product/actuator/dynamixel/mx_series/mx-64at_ar.htm) I am trying to figure out why this issue occurs and how to stop it. Some areas that could potentially be the problem that I have discovered through troubleshooting are the following: • Serial daisy chain wiring configuration is touchy meaning sometimes motors flicker on and off just by moving the wiring of the previous motor’s connection in the chain. • URDF file description for setting revolute joint limits. What exactly do the effort and velocity attributes set?? Any help would be appreciated!

Moveit All supplied grasps failed

$
0
0
I'm working to get moveit setup on a UR10 and I'm trying to work on pick and place. I'm following the pr2 pick and place tutorial [here](https://github.com/ros-planning/moveit_pr2/blob/hydro-devel/pr2_moveit_tutorials/pick_place/src/pick_place_tutorial.cpp) and I'm running into an issue. Pick functionality works, but I get a warn message about the grasps failing [ INFO] [1530625344.776785768]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline. [ INFO] [1530625344.777060921]: Planning attempt 1 of at most 1 [ INFO] [1530625344.778425236]: Planner configuration 'manipulator' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed. [ INFO] [1530625344.779079174]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.779107022]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.779145149]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.779181016]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.791244874]: RRTConnect: Created 4 states (2 start + 2 goal) [ INFO] [1530625344.791313155]: RRTConnect: Created 5 states (2 start + 3 goal) [ INFO] [1530625344.792481685]: RRTConnect: Created 5 states (2 start + 3 goal) [ INFO] [1530625344.792657659]: RRTConnect: Created 4 states (2 start + 2 goal) [ INFO] [1530625344.792799171]: ParallelPlan::solve(): Solution found by one or more threads in 0.013949 seconds [ INFO] [1530625344.793057560]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.793114487]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.793148962]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.793234726]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.796124866]: RRTConnect: Created 5 states (2 start + 3 goal) [ INFO] [1530625344.796161945]: RRTConnect: Created 5 states (2 start + 3 goal) [ INFO] [1530625344.796253756]: RRTConnect: Created 5 states (2 start + 3 goal) [ INFO] [1530625344.796473144]: RRTConnect: Created 5 states (2 start + 3 goal) [ INFO] [1530625344.796578141]: ParallelPlan::solve(): Solution found by one or more threads in 0.003578 seconds [ INFO] [1530625344.796718168]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.796763959]: RRTConnect: Starting planning with 1 states already in datastructure [ INFO] [1530625344.798829562]: RRTConnect: Created 5 states (2 start + 3 goal) [ INFO] [1530625344.798859756]: RRTConnect: Created 5 states (2 start + 3 goal) [ INFO] [1530625344.798965625]: ParallelPlan::solve(): Solution found by one or more threads in 0.002279 seconds [ INFO] [1530625344.810021116]: SimpleSetup: Path simplification took 0.010913 seconds and changed from 3 to 2 states [ INFO] [1530625344.817039423]: on_goal [ INFO] [1530625349.873396896]: Completed trajectory execution with status SUCCEEDED ... [ INFO] [1530625365.026701757]: Planning attempt 1 of at most 1 [ INFO] [1530625365.034736334]: Added plan for pipeline 'pick'. Queue is now of size 1 [ INFO] [1530625365.053365691]: Manipulation plan 0 failed at stage 'reachable & valid pose filter' on thread 2 [ WARN] [1530625365.053636379]: All supplied grasps failed. Retrying last grasp in verbose mode. Since the pick is successfully executing, clearly moveit thinks there's an issue with the grasp but it works in verbose mode. What could be causing this error?

Generated Schunk .urdf has incorrect orientations

$
0
0
Hello, I am working with a Schunk LWA 3 (dof 7) arm and controlling it through MoveIt! I use the below schunk.urdf.xacro and ` $rosrun xacro xacro.py schunk.urdf.xacro > lwa.urdf ` to generate a "high-level" urdf file. The attached file calls the lwa.urdf.xacro from [Schunk Description](https://github.com/ipa320/schunk_modular_robotics/tree/indigo_dev/schunk_description/urdf/lwa) When I use the resulting urdf in MoveIt! setup assistant everything is fine except that the gripper is inverted and the arm is orientated along the -Z axis. My question is where do I fix the issue? All the values seem to be positive and correct in the urdf's I am using. Where does this change in orientation come from ? Thank you for your time. I APOLOGIZE for the sloppiness of the below code...unsure how to format xml here and cant attach files yet Schunk.urdf.xacro:

pos_based_controller fails in execution

$
0
0
Hi all, I'm trying to move my UR5 with the pos_based_controller from ur_modern_driver package. I set up everything in order to make my robot reach the desired position through MoveIt!. However, I have a problem in executing the trajectories I plan. If I plan a certain trajectory in order to make the robot avoid the obstacles, the execution starts but interpolates the planned trajectory, making it collide with the obstacles! The error message is the following in the rviz terminal: ABORTED: Solution found but controller failed during execution and in ur5_moveit_planning_execution.launch terminal: [ WARN] [1530629395.996768981]: Controller /pos_based_pos_traj_controller failed with error code PATH_TOLERANCE_VIOLATED [ WARN] [1530629395.996872138]: Controller handle /pos_based_pos_traj_controller reports status ABORTED [ INFO] [1530629396.013969937]: Completed trajectory execution with status ABORTED ... I am using the ros_control based approach. I noticed that there is a "servoj" parameter in the ur5_ros_control.launch file that i can play with. For example I added the line: in order to make the robot reach the desired position without oscillations. And I tried to change that parameter and the gain parameter, but with negative results. Does anyone have any suggestion? Thanks in advance for the help. Ros version: kinetic ubuntu 16.04

Changing Orientation of manipulator arm in steps

$
0
0
Hi I am working on a 6 DOF manipulator arm with ROS Indigo and Ubuntu 14.04. I have been trying to change the end-effector's orientation (roll , pitch, yaw) in steps to see the continuous change in end-effector orientation values, but the robot often distracts fro the path and follows another trajectory. I tried to increase the planning time but still no use. CAn anyone explain how to achieve this ?? Below is my code : > #include > #include > #include > #include > #include > #include >>int main(int argc, char **argv) { >ros::init(argc, argv,"tool"); >ros::NodeHandle nh; >ros::AsyncSpinner spinner(2); >spinner.start();>>moveit::planning_interface::MoveGroup group("arm"); >moveit::planning_interface::PlanningSceneInterface ps; >moveit::planning_interface::MoveGroup::Plan my_plan;>>group.setGoalTolerance(0.0001); >group.setGoalOrientationTolerance(0.001);>group.setPlannerId("RRTConnectkConfigDefault");>>>tf::TransformListener listener;>>tf::StampedTransform transform;>> std::vector joint_positions; > joint_positions.resize(6);> joint_positions[0] = -1.112672; joint_positions[1] = 0.543184; > joint_positions[2] = 0.149478; > joint_positions[3] = -1.548138; > joint_positions[4] = -3.057866; > joint_positions[5] = -1.020237; > joint_positions[6] = -2.201550;>>>group.setJointValueTarget(joint_positions);>group.move();>sleep(5.0); geometry_msgs::PoseStamped pose;>pose.header.stamp = ros::Time::now();>>listener.lookupTransform ("world",>group.getEndEffectorLink().c_str(),>ros::Time(0), transform );>>pose.header.frame_id = "/world";> // Getting Quaternion values>pose.pose.position.x =transform.getOrigin().getX();>>pose.pose.position.y =transform.getOrigin().getY();>>pose.pose.position.z = transform.getOrigin().getZ();>>pose.pose.orientation.x =transform.getRotation().getX();>>pose.pose.orientation.y =transform.getRotation().getY();>>pose.pose.orientation.z = transform.getRotation().getZ();> pose.pose.orientation.w =transform.getRotation().getW();>> // Quaternion to roll, pitch , yaw>tf::Quaternion q(pose.pose.orientation.x,pose.pose.orientation.y, pose.pose.orientation.z, pose.pose.orientation.w ); >tf::Matrix3x3 m(q);>double r, p, y, step; m.getRPY(r, p, y); step = 0.1; for(int i =1; i<= 50; i++) { > r = r + 0.01; // changing the roll value> pose.pose.orientation = tf::createQuaternionMsgFromRollPitchYaw(r,p,y); // updating the quaternion> group.setPoseTarget(pose,"end_eff_link"); // giving the updated goal moveit> group.setPlanningTime(500.0);> group.move();> //group.plan(my_plan);> }>>> ros::shutdown();>> return 0;>> }

Custom state sampler in MoveIt!

$
0
0
Hello everyone, I'm using MoveIt! with ROS Kinetic on Ubuntu 16.04 Xenial to plan the motion of a climbing legged robot. I want to try using sample-based planners to produce a feasible complete joint path/trajectory. To do that I need to create a custom state sampler, because in my application I can't rely on rejection-sampling to find suitable new states. I have read the [MoveIt! custom constraint sampler tutorial page](http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/custom_constraint_samplers/custom_constraint_samplers_tutorial.html), but I guess it is still incomplete, because I can't find the > ROBOT_moveit_plugins/ROBOT_moveit_constraint_sampler_plugin template that they talk about. I have also taken a look at the [MoveIt! planning with approximated constraint manifolds](http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/planning_with_approximated_constraint_manifolds/planning_with_approximated_constraint_manifolds_tutorial.html) but, from what I understand, that is not what I want. I wish to program in C++. I am not unfamiliar with the OMPL library (so [such a thing](https://ompl.kavrakilab.org/samplers.html) doesn't scare me), but I'm very far from being an expert. My guess is that I need to repeat the procedure provided in the last link, and somehow make it so MoveIt! knows to use this sampler instead of the default one. So my question is: how can I implement a custom sampler to use in the MoveIt! framework? I say "custom" in the sense that my sampler will use a specific method to produce valid new states without having to rely extensively on rejection-sampling. Any input is appreciated. Best, Maxens

Moveit joint state not publishing for Drone

$
0
0
I created a drone model that is cuboid and represented it as a floating joint with 6DOF using the moveit setup assistant. I cannot seem to get joint_state readings or any data that is able to transform the drone's position within moveit. I tried publishing to the tf2 topic the drone IMU data with modified parent/child link, but the drone still does not follow. Based on my understanding, the /move_group node processes sensor_msgs/JointState from rostopic /joint_state and updates the position states of joints in moveit. However, since the drone's joint has 6DOF, we are using sensor_msgs/MultiDofJointState to represent the joint state. ![image description](https://preview.ibb.co/mVQeCJ/rosgraph_drone.png) Using moveit commander get_current_state() method, it reports "Joint values for monitored state are requested but the full state is not known" joint_state is empty while multi_dof_joint_state has the drone joint as expected. Attempting to do execute any planning results in Error. ![image description](https://image.ibb.co/iAPHzy/image.png) My guess is that the multi dof joint state of "drone" is not updating and hence, moveit rejects planning. Is there a way which (assuming I have IMU data) I can update the multi dof joint state of "drone" such that it shows the drone's position being updated with IMU data?

Moveit Group not found: issues executing a plan via cpp

$
0
0
I have created a standard MoveIt! package. I want to control this package "sia5d_cmd" using a node. There are lots of examples of code for this, but no explicit information as to how to get a custom made node to talk with a MoveIt! package. I have my MoveIt! package (sia5d_cmd) and the package that contains the node (test_moveit) I want to run in the same catkin workspace. I demo.launch the MoveIt! package which contains a group called "sia5d". I then launch my node test_moveit_node.cpp as normal. This is my code for that: #include #include int main(int argc, char **argv) { ros::init(argc, argv, "MoveGroupInterface"); //ros::init_options::AnonymousName // start a ROS spinning thread ros::AsyncSpinner spinner(1); spinner.start(); // this connects to a running instance of the move_group node move_group_interface::MoveGroup group("sia5d"); // specify that our target will be a random one group.setRandomTarget(); // plan the motion and then move the group to the sampled target group.move(); ros::waitForShutdown(); } This is the error I get: [FATAL] [1530796096.618661297]: Group 'sia5d' was not found. terminate called after throwing an instance of 'std::runtime_error' what(): Group 'sia5d' was not found. I am sure there is some issue with how I am connecting these things together. I am a bit newer to ROS than most, but information online about this is surprisingly sparse and poorly documented and I have been trying for a week to be able to plan/move the robot in RViz using a node. Any help would be much appreciated. Thanks!

MoveIt! RViz display plugin does not show the robot correctly (Melodic)

$
0
0
Hello! I recently upgraded my system to Ubuntu 18.04 and Melodic, installing both ROS and MoveIt! from deb. I have some issues with MoveIt!'s display plugin, as shown in the picture below. I generated the config package for this Kuka LWR from scratch by running the setup assistant, but the same problem appears with "pre-existing" configuration packages. ![image description](https://i.imgur.com/rci0sD4.png?1) - bottom left: the robot as shown by MoveIt!'s MotionPlanning display (current state + goal state in violet) - top: robot shown via the "standard" RViz RobotModel display When running the demo.launch, I can set the goal state to a random configuration, plan and execute using the MotionPlanning panel. The interactive marker does not work instead (but I guess it is just a side effect). The only warning I get on the terminal is the following (I run the demo.launch with the _debug_ option enabled): [ WARN] [1530806517.103186724]: Interactive marker 'EE:goal_p3r3_link_6' contains unnormalized quaternions. This warning will only be output once but may be true for others; enable DEBUG messages for ros.rviz.quaternions to see more details. Since I just switched to Melodic and I don't trust myself, my guess is that I missed something from the [migration guide](https://github.com/ros-planning/moveit/blob/melodic-devel/MIGRATION.md) (or elsewhere), but I cannot figure out what. Thanks in advance! Has anyone experienced the same issue already? The only warning I get when starting

MoveIt! execution of joint group trajectories with "all joints controller"

$
0
0
I have a robot with a couple of joint groups configured. The controller, however, serves a JointTrajectoryAction for the whole robot (there are no individual controllers for each joint group). My question now is: Is there a simple way for converting a trajectory that has been planned for a joint group to a trajectory for the whole robot, containing all joints? The resulting trajectory should just keep all joints that are not part of the planning group fixed. I know I can easily program that myself but it seems to me that this is a useful feature and might be implemented somewhere.

The weight on position constraint for link is near zero. Setting to 1.0.

$
0
0
Hi, While trying to move a robotic manipulator to a new pose (using MoveIt!), in order to move to the Next Best View of the manipulator's workspace using the [YAK package](https://github.com/AustinDeric/yak), I repeatedly get this warning which states that > The weight on position constraint for > link 'camera_depth_optical_frame' is > near zero. Setting to 1.0. Is this the reason why I am getting the following error? > Position constraint violated on link > 'camera_depth_optical_frame'. Desired: > -0.300000, -0.300000, 0.800000, current: -0.187025, 0.287808, 0.549807 [ WARN] [1530986530.323626313, 426.508000000]: Failed to fetch current robot state. [ INFO] [1530986530.324177460, 426.508000000]: Combined planning and execution request received for MoveGroup action. Forwarding to planning and execution pipeline. [ WARN] [1530986530.324308021, 426.508000000]: The weight on position constraint for link 'camera_depth_optical_frame' is near zero. Setting to 1.0. [ INFO] [1530986530.324483190, 426.508000000]: Planning attempt 1 of at most 1 [ WARN] [1530986530.325945894, 426.508000000]: The weight on position constraint for link 'camera_depth_optical_frame' is near zero. Setting to 1.0. [ INFO] [1530986530.326051436, 426.508000000]: Path constraints not satisfied for start state... [ WARN] [1530986530.326549565, 426.508000000]: The weight on position constraint for link 'camera_depth_optical_frame' is near zero. Setting to 1.0. [ INFO] [1530986530.326762763, 426.508000000]: Position constraint violated on link 'camera_depth_optical_frame'. Desired: -0.300000, -0.300000, 0.800000, current: 0.816647, 0.204373, 0.491472 [ INFO] [1530986530.326923292, 426.508000000]: Differences -1.11665 -0.504373 0.308528 [ INFO] [1530986530.327083872, 426.508000000]: Planning to path constraints... [ WARN] [1530986530.327393233, 426.508000000]: The weight on position constraint for link 'camera_depth_optical_frame' is near zero. Setting to 1.0. [ WARN] [1530986530.327645776, 426.508000000]: The weight on position constraint for link 'camera_depth_optical_frame' is near zero. Setting to 1.0. Debug: Starting goal sampling thread [ INFO] [1530986530.328125348, 426.508000000]: Planner configuration 'manipulator' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed. Debug: The value of parameter 'longest_valid_segment_fraction' is now: '0.0050000000000000001' Debug: RRTConnect: Planner range detected to be 7.539822 Info: RRTConnect: Starting planning with 1 states already in datastructure Debug: RRTConnect: Waiting for goal region samples ... Debug: Beginning sampling thread computation Debug: RRTConnect: Waited 0.431969 seconds for the first goal sample. Info: RRTConnect: Created 4 states (2 start + 2 goal) Info: Solution found in 0.475992 seconds Debug: Attempting to stop goal sampling thread... Debug: Stopped goal sampling thread after 2 sampling attempts Info: SimpleSetup: Path simplification took 0.026644 seconds and changed from 3 to 2 states [ INFO] [1530986530.925958530, 426.765000000]: Planned to path constraints. Resuming original planning request. [ WARN] [1530986530.926477926, 426.765000000]: The weight on position constraint for link 'camera_depth_optical_frame' is near zero. Setting to 1.0. [ WARN] [1530986530.926728899, 426.765000000]: The weight on position constraint for link 'camera_depth_optical_frame' is near zero. Setting to 1.0. [ WARN] [1530986530.927186930, 426.765000000]: The weight on position constraint for link 'camera_depth_optical_frame' is near zero. Setting to 1.0. Debug: Starting goal sampling thread Debug: Waiting for space information to be set up before the sampling thread can begin computation... [ INFO] [1530986530.927598462, 426.765000000]: Planner configuration 'manipulator' will use planner 'geometric::RRTConnect'. Additional configuration parameters will be set when the planner is constructed. Debug: The value of parameter 'longest_valid_segment_fraction' is now: '0.0050000000000000001' Debug: RRTConnect: Planner range detected to be 3.778261 [ WARN] [1530986530.928493559, 426.765000000]: The weight on position constraint for link 'camera_depth_optical_frame' is near zero. Setting to 1.0. [ INFO] [1530986530.928766280, 426.765000000]: Allocating specialized state sampler for state space Info: RRTConnect: Starting planning with 1 states already in datastructure Debug: RRTConnect: Waiting for goal region samples ... Debug: Beginning sampling thread computation [ INFO] [1530986559.116059745, 439.999000000]: Position constraint violated on link 'camera_depth_optical_frame'. Desired: -0.300000, -0.300000, 0.800000, current: -0.187025, 0.287808, 0.549807 [ INFO] [1530986559.116579113, 439.999000000]: Differences -0.112975 -0.587808 0.250193 [ INFO] [1530986559.162846369, 440.015000000]: Position constraint violated on link 'camera_depth_optical_frame'. Desired: -0.300000, -0.300000, 0.800000, current: -0.187081, 0.287793, 0.549915 [ INFO] [1530986559.167912790, 440.017000000]: Differences -0.112919 -0.587793 0.250085 Error: RRTConnect: Unable to sample any valid states for goal tree at line 215 in /tmp/binarydeb/ros-kinetic-ompl-1.2.1/src/ompl/geometric/planners/rrt/src/RRTConnect.cpp Any hints on the reason of this problem will be valuable. Thanks in advance.

How to constrain movement on z.axis in Moveit!

$
0
0
I want my end effector to stay above the table and not higher than 50cm. How can I do this? I tried this, but it's not working: moveit_msgs::Constraints constraints; moveit_msgs::PositionConstraint pcm; pcm.link_name = move_group_interface_.getEndEffectorLink(); pcm.header.frame_id = TABLE_FRAME_STRING; pcm.target_point_offset.z = 0.5; pcm.weight = 1.0; constraints.position_constraints.push_back(pcm); move_group_interface_.setPathConstraints(constraints); I already read through all documentation but I really don't get it. I just need a real code example.

MoveIt! Setup links are red

$
0
0
Hi, i created a robot model with xacro and added properties with MoveIt!. While configuring my robot in the MoveIt! Setup some links were in a light red. Does anyone see a problem with this rails (they are connected with the plate) ![image description](https://farm1.staticflickr.com/839/42379975805_891e7b99b5_b.jpg)

undefined reference to moveit core api

$
0
0
### Description When I compile my program which uses moveit, I got following error msgs: undefined reference to `robot_model_loader::RobotModelLoader::RobotModelLoader(std::__cxx11::basic_string, std::allocator> const&, bool)' undefined reference to `robot_model_loader::RobotModelLoader::~RobotModelLoader()' undefin ed reference to `robot_model_loader::RobotModelLoader::~RobotModelLoader()' ### Your environment * ROS Distro: Kinetic * OS Version: Ubuntu 16.04 * Binary build * release version: 0.9.12
Viewing all 1441 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>