-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Creating movable shapes from Box and Cylinder entity #146
Comments
The way I would go with it is either:
|
Thank you, @ilpincy ! |
The prototype entity with fixed joints should do the trick. Check
out dynamics3d_convex_hull_test.argos and dynamics3d_multi_body_test.argos
in src/testing/examples.
…On Mon, 9 Nov 2020, 21:45 Vivek Shankar Varadharajan, < ***@***.***> wrote:
Thank you, @ilpincy <https://github.com/ilpincy> !
I don't need hollow objects for the moment.
I think, I will just go ahead and start defining a new entity that builds
shapes from the parameters specified in the XML file.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#146 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AA4626JVXOC4EARWNUKSNLTSPBIHXANCNFSM4TPWQT5A>
.
|
The problem probably is that the Khepera robot only comes with a dynamics2d model, while the prototype entity only provides a dynamics3d model. There are two solutions to this problem (i) create a dynamics3d model for the Khepera robot (since it is just a simple differential drive robot, you could pretty much copy and paste the code from the e-puck dynamics3d model) or (ii) implement a dynamics2d model for the prototype entity. The former is more straightforward but will be slower (the dynamics2d engine is faster), the latter is faster but more complicated since you need to generate the 2D collision shape based on the shadow of a 3D geometry (which would only work for objects without moving joints). In either case, changes to the code would be necessary. If you don't feel comfortable with digging into the code base, I would also suggest that you could use the E-Puck instead of the Khepera. |
Thanks for the reply. I have one more question though if you are referring to the repository mentioned below for E-puck, I still think it uses dynamics2d. https://github.com/demiurge-project/argos3-epuck/tree/master/src/plugins/robots/e-puck/simulator |
That's an extended version of the e-puck. ARGoS has a simpler version of the e-puck here. The model @allsey87 is referring to are here: header and implementation. |
Thanks. I will look into that |
Hey @karthiks1701, when you want to attach output from the terminal, could you copy and paste it into a code environment instead of attaching screenshots? Now, we need you to do a couple things in order to help you:
|
|
|
|
Looks like some sort of memory corruption issue during the btMultiBody construction. These can occur for numerous reasons. The first thing I would always do is be 100% sure that you are working with a completely clean build and that no older versions of libraries are installed/being linked against. After this, I would like to check whether you are able to run ARGoS with the E-puck instead of the KheperaIV. |
will this example work?. Also will the controller of dynamics2d(epuck_obstacleavoidance_controller) E-puck work for dynamics3d E-puck as well?. if you have an example of E-puck dynamics3d kindly share it. https://github.com/ilpincy/argos3-examples/tree/master/experiments/epuck_obstacleavoidance.argos |
@karthiks1701 The physics engine does not affect the rest of the simulator. ARGoS is designed to treat the physics engine just as any other plugin. So, in that example, you simply need to change |
Chances are that the dynamics engine is running, it is just that the model has not been calibrated properly. That is, I think the robots will probably start moving if you set the speed higher. |
I guess the issue is that something isn't being linked together correctly. @karthiks1701 if you are willing to commit to calibrating and testing the dynamics3d model for the Khepera IV, (i.e., adjusting the radius/height of the bodies, setting the motor impulse correctly) so that it matches the speed etc of the dynamics2d model, I can open a pull request against argos3-kheperaiv and ensure that everything is correct from a compilation/linking perspective. @ilpincy let me know if you agree with the above solution, if so, I will open a PR against argos3-kheperaiv to include a dynamics3d model. |
Yes, I think the best solution, for now, is to have a dynamics3d engine for kheperaIV. I can work on calibrating the values for kheperaIV. I will also check if e-puck works for higher speeds. |
@allsey87 I'm ok with this! |
@allsey87, you were right increasing the velocity worked for e-puck obstacle avoidance and it dodged the prototype entity as well!. |
Late to the party, but something that might be worth doing before a final merge is to run the simple ARGoS experiment through valgrind to verify there aren't any read/write violations in the code to be committed, i.e. |
@jharwell I am pretty sure these issues are related to something being off with the linking, but for sure, using Valgrind would be a good solution for further debugging if I am wrong :) @karthiks1701 I will open the PR on Monday, in the meanwhile, could you have a go at tuning the dynamics3d model for the e-puck to match the dynamics2d model? (for example, the speed, acceleration, ability to push a 100 gram box)? This way, you will know exactly what to do once @ilpincy accepts the PR for the kheperaIV model. |
I was able to reproduce @karthiks1701's error and have opened a new issue on the KheperaIV repository: ilpincy/argos3-kheperaiv#6 Once this issue is resolved, I can open a PR for the new dynamics model. |
In the meantime, I tried to create a buzz controller for e-puck, by basically copy-pasting the code from the footbot buzz controller. But there seems to be a error for the range and bearing sensor used by the epuck sensor. Any idea how to solve it @ilpincy and @allsey87. I also had a quick look at [(https://github.com/demiurge-project/argos3-epuck/tree/master/src/plugins/robots/e-puck/simulator)], they seem to have a bug fix for this, could that be the problem?.
|
@karthiks1701 the Github issue tracker is only really for code issues with ARGoS. If you need help using ARGoS you should post something to the ARGoS forum. |
Okay, I will take it to Buzz repository. Thanks! |
The problem has nothing to do with Buzz and you should ask for help at https://www.argos-sim.info/forum/ not on the Buzz issue tracker. Issue trackers are usually only for issues in the code base. |
Okay. understood, I will take it down and move it to the forums. Thanks! |
@karthiks1701 did you have ago at calibrating the dynamics3d model for the e-puck? |
Yes, there is a slight mistake in one of the constants |
All the quaternions used in m_cLeftWheelOffset,m_cRightWheelOffset,m_cBodyToLeftWheelJointRotation,m_cBodyToRightWheelJointRotation should have the vector(1,0,0). I don't have an understanding, but I figured it should be the same for all the wheels so I tried various configurations. After this change, it moves with higher velocity or higher impulse or both. But increasing the impulse/velocity is causing oscillations in the final convergence of e-puck to the desired target location. I am yet to find parameters which make this as smooth as the 2-D case, but I think varying these two should work. Let me know if this makes sense. |
Hai,
I am working on an approach to collaboratively transport objects of random shapes from one point to another.
In order to create different shapes, I combined the basic shapes (box and cylinder) to form complex shapes, while I create these shapes, I have some regions that overlap. In this way, I am able to create shapes only if the object is set to be non-moveable. When I set the attribute movable to true the object separates and does not stick together. I can understand that this is normal.
I am looking for a way to create movable shapes from basic objects that stick together as a single object. Can anyone point me in the right direction to realize this?
I am adding a screenshot of one of the shapes, I was trying to create.
Thank you.
-Vivek
The text was updated successfully, but these errors were encountered: