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