Git Product home page Git Product logo

Comments (20)

JenniferBuehler avatar JenniferBuehler commented on August 29, 2024

Hi,
alright, so you are trying to get all this to work with another arm. I haven't tried to adjust the packages for another arm, which would probably be a nice thing to do some time in the (hopefully soon) future ;)

So you are refering to the inclusion of jaco_moveit:
<include file="$(find jaco_moveit)/launch/jaco_moveit.launch">
this is a convenience launch file which sets a number of parameters and also launches MoveIt. It was designed so that (in theory) it would work with other robots, though again, I haven't tried it, so I'm happy if you find bug fixes ;)
You are supposed to include the path to your robot MoveIt configuration here:
<arg name="moveit_package_path" value="$(find jaco_on_table_moveit)"/>
so you should not use jaco_on_table_moveit here, but instead your-robot-moveit-config (or whatever you called your package).

When you load up your MoveIt configuration with RViz only, does it work?

from jaco-arm-pkgs.

RoBoLog avatar RoBoLog commented on August 29, 2024

Hi,

yeah, the Moveit demo.launch works, but I have problems when launching the robot with Gazebo.

Two points:

Point 1:
I launched the file roslau..................................summit_xl_moveit.launch load_robot:=true and it worked but then I had the problem that joint states were not being publishes as I was getting this error.
Failed to validate trajectory: couldn't receive full current joint state within 1s error.

Then I did a fix using this link and added the joint state publisher part to the summit_moveit.launch and this is being called by the main launch file summit_xl_moveit.launch.
http://answers.ros.org/question/252114/failed-to-validate-trajectory-couldnt-receive-full-current-joint-state-within-1s-error/

The problem got solved and I am able to run Moveit now along with gazebo, but now the problem is whenever I update the current state to plan the next move for the arm, the current state dose not update and even though in Moveit the arm moves from the last current state to the next goal state, But in gazebo The arm goes back the the initial state (arm fully stretched as in pic) and then moves to the goal state.

the problem is also mentioned here :
https://groups.google.com/forum/#!topic/moveit-users/ZYsWL1jRWyY
but I don't understand the Fix.

Point 2:
You have shown in your tutorial Setup Jaco with move it in Step 2: to generate the URDF file from the xacro robot File and use that file for configuration, whereas on the Moveit Setup assistant Tutorial site it says to use the xacro file... ie

" Click on the browse button and navigate to the pr2.urdf.xacro file installed when you installed ros-indigo-moveit-full-pr2. (This file gets installed in ......."

Now I am confused..may be I made a mistake..!!

Please do elaborate.

from jaco-arm-pkgs.

RoBoLog avatar RoBoLog commented on August 29, 2024

Update:

The Moveit Setup assistant loads both the xacro.urdf and urdf files.... I checked both.

from jaco-arm-pkgs.

JenniferBuehler avatar JenniferBuehler commented on August 29, 2024

Hi,

it may be new that the MoveIt assistant supports xacro as well now, there would have been a reason why I used the URDF back then, but when I last updated this it was 2015 I think. However it shouldn't make a difference whether you use the xacro or the URDF, as long the URDF is up-to-date.

Hm if transfering the Jaco launch files to your robot gives you issues I'd probably go for a from-scratch launch file which brings up your robot with MoveIt in Gazebo, then take it from there. The launch filesl in this package were made for the jaco (hence the name of the repo). I'd have to try it myself with a new robot, but in the next few weeks I'm not going to have the time for it unfortunately...

If you make a launch file from scratch which brings up your robot in Gazebo along with the MoveIt configuration, do you get the same problem?

from jaco-arm-pkgs.

RoBoLog avatar RoBoLog commented on August 29, 2024

Hi,

I finally managed to do the configuration. I did it on the summit_Xl and UR arm. I made a sort of tutorial. I am adding it. May be you can have a look and can also take help from it if you want to do any configurations in the Future.

I am also trying to do similar configurations for the summit_mico arm. The repositories can be downloaded from the Robotnik Automation. They have a movie_it configured package, with the mico arm but that is just a demo. So now there is a problem since I am trying to make the arm move in Gazebo.
Summit_Moveit_config_Guide.pdf

from jaco-arm-pkgs.

JenniferBuehler avatar JenniferBuehler commented on August 29, 2024

Hello,

I'm glad you got a solution that works! Thanks for the link.

What do you mean with you are trying to make the arm move in Gazebo? You mean you are sending commands to execute the movement (the arm to take on certain joint states), but it's not doing this in Gazebo?
You will need a Gazebo Model Plugin for your robot arm which takes the commands and sets your joint angles to the desired values which come in from a ROS message. This will have to be a plugin for your arm specifically. Do you have this already?

from jaco-arm-pkgs.

aaqibkhanunis avatar aaqibkhanunis commented on August 29, 2024

Hi Jennifer,

"What do you mean with you are trying to make the arm move in Gazebo? You mean you are sending commands to execute the movement (the arm to take on certain joint states), but it's not doing this in Gazebo?"

By this I mean that we make a move plan in Moveit and then execute. It does not do this if do not add the text in the planning_execution.launch ,that I mention in the guide.

So , First... without any additions to planning_execution.launch, we got the error,
"Failed to validate trajectory: couldn't receive full current joint state within 1s", we followed the Fix on this link...
http://answers.ros.org/question/252114/failed-to-validate-trajectory-couldnt-receive-full-current-joint-state-within-1s-error/

But after this fix then the problem was that for every new move plan, the arm in Gazeebo would go back to its original first state, the state with which it was spawned when Gazeebo launched, and from that position, it would go to the goal specified. So if the arm was spawned horizontal as shown in the pics here in the previous posts, and if I plan it to move it vertical up in moveit, it will go there, but if I do a next move to make it go to another pose, then when executed, it would first go back to the initial horizontal position in Gazebo and then go to the next location. This is as if the current state of the joints was not updating in Moveit, even after I do update current position. So then I removed the above-mentioned Fix and added another text, to publish current joint states. The one line mentioned in the pdf....!! This fixed the problems.

I hope you get it.

"You will need a Gazebo Model Plugin for your robot arm which takes the commands and sets your joint angles to the desired values which come in from a ROS message. This will have to be a plugin for your arm specifically. Do you have this already?"

Yes we have that already....!!

from jaco-arm-pkgs.

JenniferBuehler avatar JenniferBuehler commented on August 29, 2024

Ah... it means that the MoveIt plan starts from the robot's "start state", i.e. the start state in the move plan is the joint state the robot has at the start. That's why it goes back to its initial position when executing a plan.

If you want it to plan from the current position, you have to set the start state to the robot's current state in the MoveIt planner (you are probably using the RViz interface?)

from jaco-arm-pkgs.

aaqibkhanunis avatar aaqibkhanunis commented on August 29, 2024

Yes, offcourse I am using the Moveit Rviz interface...But now I launch my own node to control the arm since, everything is working now. I am following the script given at Moveit interface tutorials. So making the arm move in Cartesian coordinates and waypoints.

from jaco-arm-pkgs.

RoBoLog avatar RoBoLog commented on August 29, 2024

Jennifer hi,

I wanted to ask you, if you can guide me in the good direction on how to connect the box to the gripper. Please look at the attached image. the box is a gazeebo model. I made the box and imported it the dae. I am using Moveit ! and want to make the arm to pick the box and put it on another place. I am following the " Grasping with Jaco in Gazebo with MoveIt " tutorial. I was thinking of how can it be done. My objective is to attach the box, move it with the arm using Moveit ! planning and then detach it. I think I also have to use the Moveit ! collision object generator node and certain other things, but I am confused.
I hope you can shed some light on this.
screenshot from 2017-07-29 15-17-23

from jaco-arm-pkgs.

JenniferBuehler avatar JenniferBuehler commented on August 29, 2024

Sorry I am so tied up at the moment and can hardly find time to look at my github issues. I would like to help but it's hard to see what exactly you need to know, or what your problem is.
Looks like you have a standard pick and place task... so I think my tutorials should already cover this, but seems like you've been following them already.
Maybe you can start with other ROS/Gazebo tutorials to get the basics of URDF and robot control, then move on to MoveIt tutorials, and do my tutorials last?

from jaco-arm-pkgs.

RoBoLog avatar RoBoLog commented on August 29, 2024

well, my actual objective is to pick the box on the pallet, you can see in the picture. The box is a dae which I imported in Gazebo. Like wise other models as well. I need to use move it to make the gripper grip this box and the pick it. So this involves connecting the box to the gripper both in gazebo and Moveit and then Movit must plan a new trajectory while taking into account the attached object (box) and not a collision.

--> "Maybe you can start with other ROS/Gazebo tutorials to get the basics of URDF and robot control, "

I know the basics of urdf but are you referring to write a plugin to attach the box...?

from jaco-arm-pkgs.

JenniferBuehler avatar JenniferBuehler commented on August 29, 2024

No you don't need to write a plugin. You need to move the arm to the grasping position, close the grippers, and the box should attach. See also the gazebo grasp plugin that I made a while back, maybe you'll find this helpful.

Have you seen the grasp execution tutorials as well?

from jaco-arm-pkgs.

RoBoLog avatar RoBoLog commented on August 29, 2024

Well the thing is, I am following your tutorials, but for my gripper its just a plain vacuum gripper, no finger links to control and connect. ie. close and open the gripper. I just need to lower it on the box and then attach the box with the gripper. I still have not been able to use grasp plugin for gazebo. So my strategy is to at least bring the box in moveit and then make planning while taking into account the box attached to the gripper, But in moveit I am able to import my box (.dae) and attach it to the gripper. Now I am using the "attached_collision_object" topic from "ROS API Planning Scene Tutorial" but now the problem is Moveit takes that box as a collision and does not update the scene, so when I give a new plan to compute, it does not compute one since it takes into account the collision at the start state. I have read same problems on Google moveit groups, and have tried the solutions people have posted, but it still is not working for me. like explained it here link 1 , and link 2. May be I need to update the AllowedCollisionMatrix..!! and the planning scence but I am not sure yet

I am working on both indigo and Kinetic in parallel. I have the system setup on both the ROS distros. Now I am really stuck at this point.

Hope you understand the point and guide me in the right direction

from jaco-arm-pkgs.

JenniferBuehler avatar JenniferBuehler commented on August 29, 2024

Aaaah you have a vacuum gripper, got it. Then you can't use my grasp plugin anyway.

For the Gazebo side, you'll have to write a plugin (maybe you can use my grasp plugin as template?) which attaches the cube to the gripper as soon as you would like it to attach (e.g. you could subscribe to a topic to which you send the "attach" command, and then the gazebo plugin reacts accordingly and attaches the cube in the plugin).

For MoveIt!, you should not have to update the allowed collision matrix after the object has been attached via a moveit message (attached_collision_object should work, but is the cube a collision object before that already? I think it has to be!).
See this tutorial which you probably are following for an example. It's hard to tell for me what's not working for you, but I'd suggest you look at the launch files used in this tutorial and try to reproduce it for your arm. Is that what you were already trying to do?

Sorry if I'm not of more help, it's hard to tell what's not working for you from a distance. And currently my time is extremely limited, otherwise I'd suggest I try out your code myself, but I'm afraid I won't have the time for this right now :(

from jaco-arm-pkgs.

RoBoLog avatar RoBoLog commented on August 29, 2024

Yes I have been following this tutorial. the packages that you have developed are quite a big work. I also realized that those packages and gazebo plugin have been developed specifically to the JAco arm and taking the finger gripper into consideration. So it is difficult to utilize the same packages and adapt them for our arm.
Considering your template of the plugin, I just have to use that to write my own plugin to attach the box, or are there any other dependencies I also have to use from your packages, to make it work. I don't fully understand. It would be nice and easy just to write a plugin, that would attach the cube to the gripper as soon we want it to attach to it.

Yes the box/ cube is already a collision object. the point is, once it is attached to the gripper, it becomes a part of the kinematic chain and then Moveit has to consider the planning to take into account the collisions of that box with other parts of the robot as well. I updated the ACM, and the collision was allowed for the box, but then the box was able to pass through all the parts, without collision and that is not what we want. So you were right. We don't need to update the ACM.

Now I don't know what I did, but reverted back to original code and used the attached_collision_object moveit message. Now the box is attached to the gripper and Moveit also takes into account its collisions. Now the best thing would be to attach the box to the gripper in Gazebo at the same time it is spawned in Moveit RVIZ. Using the object information pipeline and other things to achieve this is too much to at the moment I think. I am not sure.
Considering your testing of my code, I am glad that you reply is enough, just to clear up the doubts. Don't worry about testing and troubleshooting for me. Thank you for the answers.
regards

from jaco-arm-pkgs.

JenniferBuehler avatar JenniferBuehler commented on August 29, 2024

Yes it may be easier to write the plugin from scratch in your scenario, because you only have to attach the cube upon a command. You can look up how to attach things to the robot in my plugin, but to avoid needing all dependencies, just write it from scratch. You probably have found the gazebo plugin overview and specifically the model tutorial which can help you to get started?

I don't think you need to use the object information pipeline if you want to create just a simple grasping application. As you describe yourself, it's enough to attach it in Gazebo. I'd suggest you subscribe to a topic in your model plugin, and when a message arrives then you attach the cube. When you want it attached, e.g. at the same time you spawn the cube, you can then send a message to this topic.

from jaco-arm-pkgs.

RoBoLog avatar RoBoLog commented on August 29, 2024

Yes I have seen the gazebo plugin overview and I will try to develop the plugin to attach the box to the gripper. Let me see what I can do. thank you for the reply.
eg. at the same time you spawn the cube, you can then send a message to this topic is a good idea to begin with.

from jaco-arm-pkgs.

JenniferBuehler avatar JenniferBuehler commented on August 29, 2024

Assuming I can close this?

from jaco-arm-pkgs.

RoBoLog avatar RoBoLog commented on August 29, 2024

Yes please, you can close the issue.

from jaco-arm-pkgs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.