Roles No Roles
Country CA - Canada
Company (optional) Robotiq
@Vinay4505, I understand your confusion regarding the course selection that would be appropriate to obtain all the necessary knowledge to be able to tackle such a complex project.
Here is a blog article that we published a few months ago that goes through the core subjects related to robotics. The core subjects are very similar for both robotics and a self-driving car. I would suggest reading this article to get a top-level idea of the requirements for such a complex system.
Lastly, I would also like to add that you will probably not be able to find a single undergraduate or graduate level program that will provide all the knowledge required to complete a self-driving car. But, a degree in engineering at either the undergraduate level or graduate level will give you the tools and learning method required to learn almost anything! What you can learn on your own afterwards is only limited by the effort you want to invest in your project.
@BrazilRobots, I may be a bit late.
But here are two blog posts that talk about communication protocols in robotics. They should be a good starting point for you!
Would you want to avoid creating multiple snapshot positions to create a larger field of view? Well here is a second program template that will do that just for you!
Take a look at the final result below and get the program template here.
To use the program without using any Robotiq products, you can start by removing all "Gripper Open" and "Gripper Close" nodes in the program.
You can also remove this section from the program since it is for the FT300 sensor:
" socket_close("stream")Script: accessor_capt.scriptsocket_open("127.0.0.1",63350,"stream")"
You will also have to substitute the Force component in the program with the robot's force. You can use the force() script command to return Fx, Fy and Fz exerted on the robot's TCP. In this example, you can simply use the 3rd force component (Fz) in the program.
You will also be able to delete the entirety of Thread_1 since this section of the program is to stream the force data from the Robotiq FT300 sensor and assigns the force components to the variables."Thread_1socket_send_string("READ DATA", "stream")sensor_data≔socket_read_ascii_float(6,"stream")If sensor_data ≥6Fx≔sensor_dataFy≔sensor_dataFz≔sensor_dataMx≔sensor_dataMy≔sensor_dataMz≔sensor_dataElseFx≔0.0Fy≔0.0Fz≔0.0Mx≔0.0My≔0.0Mz≔0.0"
Let me know if this works for you!
In the program I included in my comments above, I used an event to stop the spiral search. When the spiral search subprogram was called, I set the variable "search" to True. The event was triggered when the following conditions are satisfied: Fz<10N and search=True.
As @matthewd92 mentioned you can also include the condition Fz<10 in the spiral search's loop statement. This means that the loop would stop when the force in the Z axis is smaller than 10N. I had tried this method but had trouble exiting the spiral search loop at the right moment.
Once you exit the spiral search subprogram, you can either have the robot move only in the z axis using a linear move or you can use another control loop if the hole is not perfectly vertical.