Hi,
I intend to raise a a question similar to a previous question I had, see: [link](http://answers.ros.org/question/194761/biped-dual-arm-planning-in-moveit-how-to/)
We have a biped system that consists of two grippers. One gripper is locked whilst the over maneuvers into position to grasp a target. Once grasped, the first gripper is then released and can move to a new location. This is how locomotion occurs. See here for more details: [Conf Paper](http://dx.doi.org/10.1109/CoASE.2014.6899446)
In the image below we term the gripper on the left "Gripper 1" whilst the gripper on the right is termed "Gripper 2".

We desire to use ROS to compute the joint trajectories and execute these on the machine.
The machine can be broken into two serial, kinematic chains with a resultant URDF for each of the chains Gripper 1 -> Gripper 2 and Gripper 2 -> Gripper 1.
Using this methodology the paths can be computed for each side **INDIVIDUALLY**. The URDF is manually loaded depending what side should be planned. Therein is the problem.
Our problem seems very close to that of a humanoid biped in which foot placement is considered, rather than our grippers.
----------
How would users suggest that ROS be used in order to calculate the motion plan for either side?
We have already had some concepts, but would appreciate input from the larger ROS audience:
1. Could the URDF be changed dynamically depending what kinematic chain should be planned?
2. Can this simply be done with different move groups?
----------
A note regarding move groups: Our previous attempt to use this was halted since it appeared that the specifying the chain to be from a child to a parent would not work. Chains specified from parent to child, as usual, worked fine but this can only be used for one side (Eg Gripper 1 -> Gripper 2)
Thanks in advance.
↧
Bipedal planning in MoveIt
↧
Moveit PlanningSceneInterface addBox not showing in Rviz
My goal is to be able to add and remove object dynamically then do path planning. Even moving objects should be nice but I don't know if it's possible
I want to add box or meshes to my Planning scene to do path planning avoiding some object. The problem is that after adding object to the scene interface I don't have any visual feedback in RViz. Later I would like to spawn this object in gazebo as well to be able to have physics.
This is what I do.
rospy.init_node('scene_test', anonymous=True)
scene = moveit_commander.PlanningSceneInterface()
p = PoseStamped()
p.pose.position.x = 0.
p.pose.position.y = 0.
p.pose.position.z = 0.
scene.add_box("table", p, (1, 1, 1))
rospy.sleep(10)
I don't know how to check the scene because the interface doesn't provide any method to do so, but nothing appear in RViz. I suspect something is missing to notice Rviz a new object is here but I can't find anything related to this issue.
Thank you for reading, any help will be much appreciated
↧
↧
Segmentation fault at MoveIt python tutorial
I am trying to follow the python tutorial, but this simple file already crashes:
#!/usr/bin/python
import sys
import copy
import rospy
import moveit_commander
import moveit_msgs.msg
import geometry_msgs.msg
print "============ Starting tutorial setup"
moveit_commander.roscpp_initialize(sys.argv)
rospy.init_node('move_group_python_interface_tutorial',
anonymous=True)
robot = moveit_commander.RobotCommander()
And the result in a segmentation fault.
Here is a backtrace: http://pastebin.com/3bftAaaj
I am trying to get MoveIt to work with Amigo (https://github.com/tue-robotics/amigo_moveit_config). But I get the same error if I only have a roscore running. (No parameters loaded).
↧
(MoveIt) PlanningSceneInterface does not add collision object
The following code is mainly the same as in this MoveIt tutorial: http://docs.ros.org/hydro/api/pr2_moveit_tutorials/html/planning/src/doc/move_group_interface_tutorial.html
The code should print the name of the added collision object, but it does not print it and the object does not show up in Rviz. However, if collision objects are added by using the GUI in Rviz, they do show up and they do get printed.
moveit::planning_interface::PlanningSceneInterface planning_scene_interface;
moveit_msgs::CollisionObject collision_object;
collision_object.header.frame_id = range_sensor_frame;
collision_object.id = "sensor_mount";
shape_msgs::SolidPrimitive primitive;
primitive.type = primitive.BOX;
primitive.dimensions.resize(3);
primitive.dimensions[0] = 0.05;
primitive.dimensions[1] = 0.8;
primitive.dimensions[2] = 0.11;
geometry_msgs::Pose box_pose;
box_pose.orientation.w = 1.0;
box_pose.position.x = 0.21;
box_pose.position.y = 0.0;
box_pose.position.z = 0.2;
collision_object.primitives.push_back(primitive);
collision_object.primitive_poses.push_back(box_pose);
collision_object.operation = collision_object.ADD;
std::vector collision_objects;
collision_objects.push_back(collision_object);
std::cout << "collision_objects.size(): " << collision_objects.size() << std::endl;
std::cout << collision_objects[0] << std::endl;
planning_scene_interface.addCollisionObjects(collision_objects);
ros::Duration(2.0).sleep();
std::vector obj = planning_scene_interface.getKnownObjectNames();
if (obj.size() > 0)
{
std::cout << std::endl << "-- KNOWN COLLISION OBJECTS --" << std::endl;
for (int i = 0; i < obj.size(); ++i)
std::cout << obj[i] << std::endl;
}
This is in **ROS Hydro**. I've also posted this question https://groups.google.com/forum/#!topic/moveit-users/sfXthHuxyx0.
↧
ROS, Dynamixel xl-320, OpenCM9.04-C
would i be able to get ros moveit to work with xl-320's through an OpenCM9.04-C?
ros indigo
ubuntu 14.04
↧
↧
Getting the joint values of a computed path to a pose goal
Hi everybody,
I'm using moveit with an UR5. The planner I use is the RRTConnectkConfigDefault-planner.
The goal for the planner is a pose.
My question is now: Is there a way to retrieve the joint values of the six axes of the computed goal. Maybe out of `my_plan` from `bool success = group.plan(my_plan);`. Maybe something like `moveit_msgs::RobotTrajectory trajectory = my_plan.trajectory_;`. But I here I got stuck and couldn't find anything in the documentation.
And second: Is there a way to get all possible IK-joints (all IK-solutions which also have no collisions) and choose the goal-joints out of them?
Thanks in advance and regards!
↧
Moveit, cartesian planning dual arm
Hey guys,
I'm trying to drive through multiple waypoints and would like to use a cartesian planner for this. It is working when i plan for each arm individually cause i can plan for each endeffector but i have no clue how to set it up using a move group including both arms. For the IK solver it is explained in the tutorials (e.g. docs.ros.org/api/pr2_moveit_tutorials/html/planning/src/doc/move_group_interface_tutorial.html). But its not explained how to use a cartesian planner.
Thanks for your help!
Cheers,
Matthias
↧
Pick and Place using Moveit
Hello, I'm using Moveit and Rviz to move my robot.
I wrote a simple code to use the Pick and Place.
My pick works very well, but my Place don't.
Do you have any idea ?
I'm under Hydro.
And I have this error :
Fail: ABORTED: Must specify group in motion plan request
Here is my code.
import sys
import rospy
from moveit_commander import RobotCommander, MoveGroupCommander
from moveit_commander import PlanningSceneInterface, roscpp_initialize, roscpp_shutdown
from geometry_msgs.msg import PoseStamped, Pose
from moveit_msgs.msg import Grasp, GripperTranslation, PlaceLocation
from trajectory_msgs.msg import JointTrajectoryPoint
if __name__=='__main__':
roscpp_initialize(sys.argv)
rospy.init_node('moveit_py_demo', anonymous=True)
scene = PlanningSceneInterface()
robot = RobotCommander()
right_arm = MoveGroupCommander("right_arm")
end_effector_link = right_arm.get_end_effector_link()
print "======= PICK"
right_arm.pick("part")
rospy.sleep(2)
p = PoseStamped()
p.header.frame_id = "base_footprint"
p.pose.position.x = 0.8
p.pose.position.y = -0.3
p.pose.position.z = 0.7
p.pose.orientation.w = 1.0
print "======= PLACE"
right_arm.place("part",p)
↧
rospack cannot find package after installing through apt-get
Hello,
I want to use ROS MoveIt! libraries to control a robot arm. So, I installed MoveIt! with the following command:
sudo apt-get install ros-indigo-moveit-full
Then ran:
source /opt/ros/indigo/setup.bash
Inspecting /opt/ros/indigo/include, there are now various folders with the prefix "moveit". However, if I run the command:
rospack find moveit
It prints out:
package 'moveit' not found
The same happens if I try to find ros-indigo-moveit-full.
So, why can ROS not find this package?
↧
↧
Which package should I use in CMakeLists.txt?
I want to use the MoveIt! package on ROS indigo, and I am following the tutorial at http://docs.ros.org/hydro/api/pr2_moveit_tutorials/html/planning/src/doc/move_group_interface_tutorial.html.
As an example of how to use MoveIt! in C++, the tutorial provides the following line:
moveit::planning_interface::MoveGroup group("right_arm");
What I am trying to figure out, is how to actually compile this. So, I have built a new ROS package, and in the `CMakeLists.txt` file for that package, I need to specify where to look for header and library files. But **how do I know the name of the package that is required for the above code?**
If I look in `/opt/ros/indigo/include`, there are various directories such as `moveit`, `moveit_msgs`, `moveit_planners_ompl`, and similarly in `/opt/ros/indigo/lib` and `/opt/ros/indigo/share`. Is each of these directories a package, or is each one a node, or something else?
After doing a bit of research, I found that the `moveit::planning_interface::MoveGroup` class from the above code is defined in `/opt/ros/indigo/include/moveit/move_group_interface/move_group.h`. This suggests to me that I should be using the `moveit` or `move_group_interface` packages, but if I try either of these, then it fails. For example, in my `CMakeLists.txt` file, if I have:
find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs genmsg moveit)
And then I try to build my package, it tells me:
Could not find a package configuration file provided by "moveit"
And similarly for `move_group_interface`.
So I'm obviously a bit confused as to what ROS packages actually are, where they are stored on my machine, and how to know which one I should be referencing in `CMakeLists.txt`. Any help? Thanks :)
↧
ROS urdf for Moveit!
Hi there!
I am currently working on a project, i am using servo motors to build a robotic arm.
The arm is aligned vertically, the gripper points to the sky.
After creating the urdf description of the arm, i faced the following problem:
In the joint description i wrote:
*** ***
meaning the joint state publisher will publish a state in the interval 0-1.88 radian (=120 grades).
so my servos are moving 120 grades, 60 grades in each direction and are set to the center.
When i start ROS Moveit! it publishes 0, for the initial positions, while i need 60 grades.
Any ideas how can i fix this?
How can i configure the urdf to start publishing positions in the center of the domain, causing a right move of my robot arm.
Thanks,
TkrA
↧
moveit benchmark log, where is it?
Hello!
I am trying to run some benchmarks with moveit and the rviz plugin, following this tutorial: http://moveit.ros.org/wiki/Benchmarking
The benchmark seems to run without problems, except that I am not able to find the log file to see the results.
In the tutorial it is stated this, about the configuration file parameters:
> output (optional) Location for saving> computed data in *.log format. "1.log"> will automatically be appended to the> file name. The default output location> is in in your ~/.ros folder.
but I can't find the log file in that folder... Maybe it's a bug? Where do I have to search for it?
Thank you in advance!
kir
↧
Changing state to goal_state and there checking for collisions
Hi!
I would like to check for collisions in the goal state before actually moving the real robot. In particular I want to check whether a specified point is in collision with the robot.
Therefore I have two questions:
1. To achieve that I think I need to set the state of the robot to the goal state after I planned the path. So I'm looking for something like `robot_state::RobotState& current_state = planning_scene.getCurrentState();` but for the goal_state. Is there a function like `planning_scene.getGoalState()` or similar? I can't find any...
2. Being in the goal_state, I would like to check if a point would collide with the robot (in the goal_state). I'm looking for a function where I can insert a point x,y,z and it tells me whether this point is "inside" an object or free in space.
Does anybody knows whether this approach is actually doable with moveit?
↧
↧
Error with MoveIt! MoveGroup: Unable to construct robot model
I am very new to ROS (Indigo), and want to use the MoveIt! tools with a Kinova Mico arm. So, I decided to follow the official tutorial at: http://docs.ros.org/hydro/api/pr2_moveit_tutorials/html/planning/src/doc/move_group_interface_tutorial.html
Here, it tells me to use the following line to create a MoveGroup:
moveit::planning_interface::MoveGroup group("right_arm");
What hasn't been explained, is what to use in place of "right_arm"?
I have created a package called `mico_move`, containing a node with the following code:
#include
int main(int argc, char **argv)
{
ros::init(argc, argv, "mico_move_node");
moveit::planning_interface::MoveGroup group("right_arm");
return 0;
}
I build the package with `catkin_make`, then run it with `rosrun mico_move mico_move_node`.
However, this gives me the error:
[FATAL] [1432653194.030197342]: Unable to construct robot model. Please make sure all needed information is on the parameter server.
terminate called after throwing an instance of 'std::runtime_error'
what(): Unable to construct robot model. Please make sure all needed information is on the parameter server.
Aborted (core dumped)
Why am I getting this error, and what do I need to put instead of "right_arm"? The tutorial does not give very much background help!
↧
Clam arm Random Planning Error
Hello,
I'm busy with a custom made robotic arm with dynamixels.
I tried to make the Clam arm package work: http://correll.cs.colorado.edu/clam/?page_id=277
But I get this error:
[ERROR] [1432652016.571410483]: Action client not connected: clam_trajectory_controller/follow_joint_trajectory
[ERROR] [1432652016.583555964]: No controller handle for controller 'clam_trajectory_controller'. Aborting.
I can't find the error myself. Anybody who succeeded with the clam arm?
And maybe have some recomendations?
The rostopic list:
/attached_collision_object
/clam_gripper_controller/gripper_action/cancel
/clam_gripper_controller/gripper_action/feedback
/clam_gripper_controller/gripper_action/goal
/clam_gripper_controller/gripper_action/result
/clam_gripper_controller/gripper_action/status
/clam_trajectory_controller/follow_joint_trajectory/cancel
/clam_trajectory_controller/follow_joint_trajectory/feedback
/clam_trajectory_controller/follow_joint_trajectory/goal
/clam_trajectory_controller/follow_joint_trajectory/result
/clam_trajectory_controller/follow_joint_trajectory/status
/collision_object
/diagnostics
/elbow_pitch_controller/state
/elbow_roll_controller/command
/elbow_roll_controller/state
/gripper_finger_controller/command
/gripper_finger_controller/state
/gripper_roll_controller/state
/joint_states
/motor_states/port_rs485
/move_group/cancel
/move_group/display_contacts
/move_group/display_planned_path
/move_group/feedback
/move_group/goal
/move_group/monitored_planning_scene
/move_group/ompl/parameter_descriptions
/move_group/ompl/parameter_updates
/move_group/plan_execution/parameter_descriptions
/move_group/plan_execution/parameter_updates
/move_group/planning_scene_monitor/parameter_descriptions
/move_group/planning_scene_monitor/parameter_updates
/move_group/result
/move_group/sense_for_plan/parameter_descriptions
/move_group/sense_for_plan/parameter_updates
/move_group/status
/move_group/trajectory_execution/parameter_descriptions
/move_group/trajectory_execution/parameter_updates
/pickup/cancel
/pickup/feedback
/pickup/goal
/pickup/result
/pickup/status
/place/cancel
/place/feedback
/place/goal
/place/result
/place/status
/planning_scene
/planning_scene_world
/rosout
/rosout_agg
/shoulder_pan_controller/command
/shoulder_pan_controller/state
/shoulder_pitch_controller/command
/shoulder_pitch_controller/state
/tf
/tf_static
/trajectory_execution_event
/wrist_pitch_controller/state
/wrist_roll_controller/state
Kind Regards,
↧
Publishing a collision object to MoveIt!
I am using MoveIt! for controlling an ABB IRB1600 robotic arm. Currentyl I am able to execute trajectories with the robotic arm. The problem is that the arm moves through objects, instead of around.
To change this I tried publishing a collision object on the collision_object topic. Hoping that MoveIt! would pick this up and add it to its environment. I do this using the class shown below. In the class I publish the mesh of a ring as a collision object on the topic collision_object.
After the code in the class is run I can see the object being published on the topic (rostopic echo collision_object). Though when I replan and move the robotic arm, it still moves right through the ring.
Am I missing something? Am I falsely expecting MoveIt! to just pick up my object after publishing? Any help would be very much appreciated!
Thx
edit: Using Hydro on Ubuntu 12.04
#include
#include
#include
#include
class collisionObjectAdder
{
protected:
ros::NodeHandle nh;
ros::Publisher add_collision_object_pub;
//ros::Publisher planning_scene_diff_pub;
;
public:
collisionObjectAdder()
{
add_collision_object_pub = nh.advertise("collision_object", 1000);
}
void addCollisionObject()
{
sleep(1.0); // To make sure the node can publish
moveit_msgs::CollisionObject co;
shapes::Mesh* m = shapes::createMeshFromResource("package://sim_move/meshes/ring.STL");
ROS_INFO("mesh loaded");
shape_msgs::Mesh co_mesh;
shapes::ShapeMsg co_mesh_msg;
shapes::constructMsgFromShape(m, co_mesh_msg);
co_mesh = boost::get(co_mesh_msg);
co.meshes.resize(1);
co.meshes[0] = co_mesh;
co.header.frame_id = "mainulator";
co.id = "box";
geometry_msgs::Pose pose;
pose.position.x = 0.75;
pose.position.y = 0;
pose.position.z = 0.525;
co.primitive_poses.push_back(pose);
co.operation = co.ADD;
add_collision_object_pub.publish(co);
ROS_INFO("Collision object published");
}
};
int main(int argc, char** argv)
{
ros::init(argc, argv, "add_collision_object");
std::cout<<"Initialized..." << std::endl;
collisionObjectAdder coAdder;
coAdder.addCollisionObject();
ros::spin();
return 0;
}
↧
end-effector pose constrained planning
Hello: I am looking for end-effector pose constrained planning for the manipulator. I know that such functionalities have been provided in "MoveIt!" where you set your kinematics constraints and then give command to plan a path.
I believe that this type of end-effector constrained planning (in MoveIt!) is done in end-effector cartesian degree of freedom using Inverse Kinematics.
Can anyone please point me to: where this task-constrained code sits in OMPL (as MoveIt uses OMPL), or any pointer to the research paper of this implementation in MoveIt!
I want to understand how it is done and what are the steps involved in ROS implementation.
Thanks.
↧
↧
turtlebot_arm, no motion plan found error
I m trying to use turtlebot_arm package for ROS hydro.
it runs perfect with setting start and end state in rviz workspace
but when i run the pick and place code it gives me this error...
"[ WARN] [1433588765.336846927]: Fail: ABORTED: No motion plan found. No execution attempted."
i have searching over the internet but couldnt find any solution to this issue i even tried on indigo but same problem occurs..
↧
Use gazebo world file objects for planning with Moveit
Hello,
I was wondering if there is a way to use the gazebo world objects in the .world file for planning with Moveit in code? When I write them as collision objects within C++ code, they appear in rviz but not in gazebo, so I want to use the world file instead, so I can use those objects to do pick and place operations with them. Or is there a way to make the collision objects in code appear in gazebo as well?
Any suggestions?
Thanks!
↧
Rviz blinking marker
I have trouble with Rviz, I'm going trough the MoveIt! pr2 [tutorial](http://docs.ros.org/hydro/api/moveit_ros_visualization/html/doc/tutorial.html) and at **STEP 3: Interact with the PR2**
I try to **interact** with the right arm but the **marker** is blinking so I can't click on it to move the arm around.
I'm using ROS indigo on Ubuntu 14.04. I installed everything as the tutorial requested.
Does anyone seen something like this, what should I do?
↧