Asfor communicating between computers, you will find that one of RS' main
purposes is to move data between nodes that might be (or not be) on
different computers.  you can even move the nodes around at run time.  Just
about everything in your proposed system would end up being a ROS node,even
the user space app that talks to LCNC

ROS uses a publish/subscribe kind of system.  So I imagine some low level
driver is publishingjoint angles from encoders and the video system needs
to know where the location and orientation of the camera(s) so it
subscribes to a topic or rather it uses a service that does spacial
transforms to move pixel (x,y) to real word coordinates.  Where these
processie run is transparent.  They can be in a robot mounted Pi4
oraLinuxserver ina server room.   It is ROS' job to get dtafrom publisher
to subscriber.  We don't care if it is UDP or not.  Mostly ROS2 now uses
shared memory ifthe dat is on the samemachine

LCNC has a similar concept.  Data is written to a "pin" or a vertical
wire and then is read from the Pin and the writers and reader don't have to
knowabot each other.

An arm as you describe is not a beginner project.  I suggest your first
robot be just a bare stepper motor on a work bench with the shaft up and
some tape on it so you can see it rotate.  Then use a gamepad (X-Box
controller) to move the motor shaft.   the gamepad is connected to a ROS
node and then into LCNC.  Get that to work and you learned about 80% of
what you need and have the world's most complex remote controlled motor.
Next get simulated armto working Gazebo and finally connect to the real arm

Going for the final goal in one jump is not going to work, no one is that
smart to make it all work the first time.

Finally.  Not many people here care about robots.  They are machinists.
But, please when you get the ROS/LCNC interface to work be sure and tell
us.  Such an interface would make LCNC usfullfor many more users

In the end I bet you will decide to write a user-space HAL program that is
also a ROS node.  It will subscribe to ROS topics and also publish ROS
topics., and at the same time, it will read and write to collection of HAL
pins.    Seems like a good idea. But the problem is  I double a HALprogram
can alsobe a ROS node as HAL is run periodically in real-time and ROS
noodes like toblock and waitfor data.    You will need to implement two
programs and pair of queues in shared memory.


On Wed, Nov 17, 2021 at 6:48 PM Ian Charnas <ian.char...@gmail.com> wrote:

> Chris, many thanks for the reply.
>
> I am indeed planning on using computer vision to set targets for the robot
> arm to move to. Thanks for sharing the link to MoveIt. One solution could
> be to have my computer vision code send the waypoints I want to MoveIt,
> which would plan the path, and then send the path to LinuxCNC.
>
> In this scenario, I'm imagining I'd run the computer vision code and MoveIt
> on a higher end workstation with a GPU (I can write gpu-accelerated
> computer vision code), and then send the results perhaps over gigabit
> ethernet using UDP (since it's faster than RS485 or CAN) to a separate
> computer running LinuxCNC in real time. The second computer doesn't need to
> be as powerful in terms of CPU and GPU which is nice.
>
> I had no idea about the learning curve on MoveIt. I looked around and found
> that the authors just published a nice set of video tutorials
> <https://www.youtube.com/channel/UCF7Yy57ZE2WNYeeXKEu8JQA/videos> on
> MoveIt
> 2 so I'll start there.
>
> I really appreciate the kind and helpful responses here, y'all are great!
> Ian
>
> On Wed, Nov 17, 2021 at 8:54 PM Chris Albertson <albertson.ch...@gmail.com
> >
> wrote:
>
> > On Wed, Nov 17, 2021 at 3:07 PM theman whosoldtheworld <
> > bleachk...@gmail.com>
> > wrote:
> >
> > > wow movelt ..... and there are some ethercat connection on movelt?
> > thanks a
> > > lot
> > >
> >
> > As you plow through the stacks of documentation, you find that MoveIt
> > outputs a "joint trajectory"  Which is a set of messages with (time, x,
> x',
> > x'')  The hardware interface is up to the user.  MoveIt  stops short of
> the
> > device drivers.
> >
> > This is why I said a hybrid with LCNC might be interesting. LCNCis goodat
> > low levelmotor control andhas the Mesa FPGA ecosystem that work very
> well.
> >
> > MoveIt is complex and has a really steep learning curve.  It is built on
> > top of ROS and ROS has a steep learning curve.   I'd guess the stack is a
> > couple orders of magnitude more complex than LCNC.  It all runs on Linux
> > and if you are not a Linux software developer then you have ever more to
> > learn.  It takes most new people about a year to come up to speed.    A
> > Movit-based 6-DOF robot arm is a tough introduction.  You are best off
> > starting with basic ROS tutorials and making system that can print "Hello
> > World" to the screen.
> >
> > Also note the current transition from ROS-1 to ROS-2.   New projects
> really
> > should be using ROS-2. So check that you are reading the correct
> > tutorials.  Many are not labeled 1 or 2 because there was no need back
> when
> > only ROS-1 existed.    So look for explicit labeling as "2".
> >
> >
> >
> > >
> > > Il giorno mer 17 nov 2021 alle ore 18:22 John Dammeyer <
> > > jo...@autoartisans.com> ha scritto:
> > >
> > > > Very cool.  Thanks for the link.
> > > > John
> > > >
> > > > > -----Original Message-----
> > > > > From: Chris Albertson [mailto:albertson.ch...@gmail.com]
> > > > > Sent: November-17-21 8:45 AM
> > > > > To: Enhanced Machine Controller (EMC)
> > > > > Subject: Re: [Emc-users] LinuxCNC with Robot Arm Setup
> > > > >
> > > > > If you are taking the right approach or not depends on the tasks
> you
> > > want
> > > > > this robot arm to reform.  Are they entirely scripted such that you
> > can
> > > > > write G-code to control the arm?   Or is this arm using a camera
> and
> > > > vision
> > > > > system to pick up randomly placed objects?
> > > > >
> > > > > If the former, LCNC will work fine and self-collision is a
> > > > > non-issue because you programmed the G-code so as not to let that
> > > happen.
> > > > > But if the arm's path through space is determined in real-time and
> is
> > > not
> > > > > pre-programmed, LCNC is not the best tool, and you should be
> looking
> > at
> > > > > "MoveIt". https://moveit.ros.org/
> > > > >
> > > > > But I think it is possible to build a hybrid system that uses BOTH
> > > > software
> > > > > systems.  There is a part of LCNC that does motion control and has
> > > > > programmatic API and this could be used to build an arm controller.
> > > > MoveIt
> > > > > then computes a trajectory.
> > > > >
> > > > > For LCNC experts not familiar with MoveIt...   MoveIt outputs a
> > series
> > > of
> > > > > "target points". for each motor.  A joint has the following
> > information
> > > > >
> > > > >    - Time this target point shall be reached
> > > > >    - The location of the point
> > > > >    - The velocity
> > > > >    - The acceleration
> > > > >
> > > > > Question.  Given that you have a user space process running that
> has
> > > that
> > > > > above information how to best pass this to LCNC so that LCNC can
> > output
> > > > the
> > > > > stepper pluses or whatever is needed to drive the hardware.
> > > > >
> > > > > On Tue, Nov 16, 2021 at 9:12 PM Ian Charnas <ian.char...@gmail.com
> >
> > > > wrote:
> > > > >
> > > > > > Hi everyone. I'm new to LinuxCNC but I'm an engineer with a
> > > background
> > > > in
> > > > > > software and cnc machining so I'm hoping I'll learn quickly.
> > > > > >
> > > > > > I'm interested in setting up LinuxCNC to run a robot arm. From
> > what I
> > > > can
> > > > > > tell, the wise approach is to follow this guide
> > > > > > <http://linuxcnc.org/docs/2.8/html/motion/dh-parameters.html> to
> > > > setting
> > > > > > up
> > > > > > my modified DH parameters, and to use this guide
> > > > > > <http://linuxcnc.org/docs/2.8/html/gui/vismach.html> to setting
> > up a
> > > > > > visual
> > > > > > representation of the arm - either by importing STL files or by
> > > drawing
> > > > > > graphics primitives.
> > > > > >
> > > > > > My first question: am I heading down a wise path or are there
> other
> > > > > > better options that I'm unaware of?
> > > > > >
> > > > > > My second question: Can LinuxCNC prevent the robot arm from
> > crashing
> > > > into
> > > > > > itself, and if so how does it know when a crash would occur? Does
> > it
> > > > use
> > > > > > the geometry of each link that I provide in vismach?
> > > > > >
> > > > > > many thanks for any tips and advice,
> > > > > > Ian
> > > > > >
> > > > > > --
> > > > > > Ian Charnas | Engineer | iancharnas.com <
> http://www.iancharnas.com
> > >
> > > > > >
> > > > > > _______________________________________________
> > > > > > Emc-users mailing list
> > > > > > Emc-users@lists.sourceforge.net
> > > > > > https://lists.sourceforge.net/lists/listinfo/emc-users
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > >
> > > > > Chris Albertson
> > > > > Redondo Beach, California
> > > > >
> > > > > _______________________________________________
> > > > > Emc-users mailing list
> > > > > Emc-users@lists.sourceforge.net
> > > > > https://lists.sourceforge.net/lists/listinfo/emc-users
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > Emc-users mailing list
> > > > Emc-users@lists.sourceforge.net
> > > > https://lists.sourceforge.net/lists/listinfo/emc-users
> > > >
> > >
> > > _______________________________________________
> > > Emc-users mailing list
> > > Emc-users@lists.sourceforge.net
> > > https://lists.sourceforge.net/lists/listinfo/emc-users
> > >
> >
> >
> > --
> >
> > Chris Albertson
> > Redondo Beach, California
> >
> > _______________________________________________
> > Emc-users mailing list
> > Emc-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/emc-users
> >
>
>
> --
> Ian Charnas | Engineer | iancharnas.com <http://www.iancharnas.com>
> Email me when Ian makes a new project <https://iancharnas.com/#getupdates>
>
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
>


-- 

Chris Albertson
Redondo Beach, California

_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to