- Posts: 639
- Thank you received: 0
ROS LinuxCNC Link
How would you be able to hook into something like machine vision that will create offsets for the "learned" paths? An example might be that a robot moves to the corner of a circuit board where there is a fiducial. The camera looks at the pattern and outputs an offset to center the end of arm tool.
Please Log in to join the conversation.
Bari wrote: Nice work! Teach modes for robots are good enough for moving things like a pallet around but fall short for most things with precision movements.
How would you be able to hook into something like machine vision that will create offsets for the "learned" paths? An example might be that a robot moves to the corner of a circuit board where there is a fiducial. The camera looks at the pattern and outputs an offset to center the end of arm tool.
You may be able to use something like this www.intelrealsense.com/lidar-camera-l515/
These return a depth image stream (and infrared and rgb streams ) that gives a distance from the camera to objects at the pixel level
I've been playing with one for dimensioning parcels in keeping with your warehouse theme.... We just got integration with weighing scales integrated last night.
Please Log in to join the conversation.
I was wondering about how to hook external inputs such as offsets into his robot control idea.
Please Log in to join the conversation.
As for the robot code, you should build a parser and use something like UR Script as a base so it can work with offline programmers. Using Gcode or straight C isnt a good solution. It's just going ass backwards up a tree.
There is btw an undocumented python api for hal streams. So you can stream hal data to rt components from python programs. Which was a nice find.
Please Log in to join the conversation.
Today i started coding the teach in primitives in the treewidget.
The basic 3d primitives like point, line, arc and spline are ready.
The program line is autogenerated and can be edited by user in the text display window.
For info, the program is producing random value's when running in demo mode.
@Roiki,
C isnt a good solution.
Why is hal written in c? Maybe try to write hal or a kernel module in Python.
Python is for me the most unlogical language ever written.
Using Gcode isnt a good solution
If the program can deal with Gcode you don't have to worry about "how can my robot execute a cadcam processed file?"
@Bari,
You see in the program there is a function loaded in this program line. The function is called "include vision offset component".
This function is active during this executed program line.
The way of creating a function inside this program is new. A function is like calling something like "gripper open".
You see further on the screen a function builder appear's in the treewidget.
Here you can add offset's or whatever logic you want. This function builder is an ultimate control feature.
These created functions have .so extension are direct added to the /rtlib and are added to the "Add function" content combobox.
To use a live vision system, we have to switch the controller to operate in live mode. Normally it would operate in stream mode.
A other option is to process the data of the vision system, and then execute it. Then the machine can stay in stream mode.
It's just going ass backwards up a tree. :laugh:
Attachment not found
@Arciera,
I looked into the dmitrys nyx-branch. It is quite close to master branche to my surprise.
It can be used, no problem.
Please Log in to join the conversation.
I looked into the dmitrys nyx-branch. It is quite close to master branche to my surprise.
It can be used, no problem.
Thanks for looking into it. There has actually been talk of including the driver into master but it hasn't happened yet.
If you can include that in your system then I'll be more than happy to test your application.
How do you think your system will be installed? Built from source or an ISO image?
Please Log in to join the conversation.
Also gcode is so different for what a robot needs that you´ll need to modify it beyond the rs274 that its no longer really gcode. Most robot controllers can also parse up to 5 axis gcode programs inside their own parsers. But the language has the functionality that robots need.
Please Log in to join the conversation.
Actually I'm not aware that there is support for industry style robot programming even in ROS. Last time I had a look at it one had to use c++ or python script to send the commands. But maybe this has changed.
[edit]
In any case I'm not really fussy about the programming language. If I can program my robot using points from a teach-in function in JOINT, XYZABC and TOOL coordinates and can create components that use external IO, subroutines and IF/THEN statements AND have smooth movements using proper kinematics then I'm a pretty happy camper.
Certainly I will want to simulate that code before I run it on the actual hardware. Simulation is pretty much a must with robots.
To be sure, having an industry style language that's compatible with third party software like roboDK using Postprocessors would be VERY useful but surely we can't really expect Grotius to single handedly roll out a product like that in a few weeks.
Please Log in to join the conversation.
Roiki wrote: You would want to use ros for this. It already has a support for real sense cameras and more so all you need is to figure out what you want to use it with.
The problem I have with ROS and with most robots is the lack of real time support for things that have to be synchronized in well under 1mS. I need to synchronize motion to mechanisms e.g., printheads, lasers, etc. that operate at a hundred times faster and I can't use interpolation. Try and ask for encoder outputs from inside a robot so that you can keep track of position in real time. I need realer time!
I'm not a fan of Intel and the depth measurement accuracy of their cameras is only 2%. In my circuit board fiducial application XY is of most interest since the PCB's are pretty consistent in thickness. A few microns of variance in Z will cover the worst of applications. I don't need stereo vision for this.
Please Log in to join the conversation.
Here is a tiny present for you :
Attachment not found
link
Hi Bari,
My program uses 1000 preprocessed frames a second. It's a different approach. It's like playing a video.
Please Log in to join the conversation.
