Search Unity

Command and Control industrial applications?

Discussion in 'General Discussion' started by Hermonirr, Sep 12, 2018.

  1. Hermonirr

    Hermonirr

    Joined:
    Dec 23, 2013
    Posts:
    42
    Hi,

    I'm looking at Unity as a potential platform for developing a command and control application. It should handle a fleet of vehicles in real-time, directing them, receiving sensor information and handing out tasks in an optimal way.

    Do you know of similar projects? I'd like to present them as proof that Unity is a viable tool for this purpose. I'm not talking about games, I need real-life industrial examples.

    Thanks,
    Nir Hermoni
     
  2. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    7,852
    Unless you are doing real-time 3D visualizing of the fehicles or something like that, there are a lot better options than unity, like native for the platform you are deploying to.
     
    Ryiah and Kiwasi like this.
  3. Hermonirr

    Hermonirr

    Joined:
    Dec 23, 2013
    Posts:
    42
    Thanks for the reply. Actually real-time 3D visualization is a big part of the product, this is why I'm advocating Unity for the job.
     
  4. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,640
    Yes. Totally viable solution.
     
  5. Hermonirr

    Hermonirr

    Joined:
    Dec 23, 2013
    Posts:
    42
    Do you know of any similar projects I can present as examples of this implementation
     
  6. XCPU

    XCPU

    Joined:
    Nov 5, 2017
    Posts:
    117
    Try looking around at what PiXYZ plugin is doing.

    I've tried to get some Industrial stuff approved for a project but no luck,
    might try a little demo in my spare time a try again this year.
    Cool doesn't always sell in an 'old' Industry. Office politics and stuff....
     
  7. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    7,852
    Probably a very good fit then.
     
  8. I5

    I5

    Joined:
    Feb 15, 2015
    Posts:
    7
    I think you're advocating for a good/solution solution. I know a few big DoD contractors are using Unity, especially for training, but also for possible solutions relating to UAV management, which may be similar to what you need. You won't be able to get any demo's or details though, for obvious reasons. But if the DoD, DARPA and other large government agencies are investing in solutions using Unity, it's a safe bet that they put a huge amount of time and resources into analyzing the cost-benefits and ROI (an Unity is probably prohibited from advertising the details). But again, the concrete ROM's and demo's aren't available/accessible. But, here's what I know to be true and provable...

    • 3D visualization to provide enhanced situational awareness. Unity is the leading choice. Best ROI, providing the lowest LOE's (in terms of generating a 3D world). It has the most support, documentation, developers, artists, and on and on. Unity just dominates 3D development. I've looked into Lumberyard (AWS/Amazon), maybe in a few years it'll be competitive, but then you're also strapped to AWS. A perusal of the asset store provides good evidence of the vast array of products out there to support Unity and greatly reduce LOE's. And, those assets are ridiculously cheap/inexpensive.
    • Integration and Ubiquity. Unity crushes on this too. You don't really get platform ubiquity for free with Unity, but it does provide a very well developed system and architecture for managing and building for virtually all major platforms, including VR and even AR. In terms of integration with other systems, there are dozens of already-proven solutions, also available dirt cheap on the asset store, or it's also easy to roll your own. You can easily integrate using network comms (such as websockets, see HTTP Pro for example, and open source servers, such as Tomcat, and data management systems such as MySQL, Postgress, etc)
    • Initial cost of startup/proof of concept. Unity, free - Visual Studio, free (initially), 3D assets/graphics/code, free to dirt cheep. Your single biggest investment, initially and probably continually, will be developer labor costs. But again, you'll probably have no trouble finding them, Unity has the biggest following. If you distribute and/or make money with the app, yes, Unity wants to get paid if you're successful, but they only get paid (or you're using many seats) if that happens and the cost is relatively small. As for other support development tools, those would also cost money, but not until you've already provided a proof of concert. So, Unity provides a very low-to-no barrier to entry, very low risk (if you set and keep to you're initial requirements for a PoC).
    • a COTS alternative to Unity - I have limited experience, but from what I've seen, enterprise level logistics managements systems are very, very expensive to buy off the shelf, and they usually have recurring and very high perpetual license fees. On top of that, you probably only get an 80% solution, and never end up truly "owning" your logistics IP. That is, invest in yourself and your abilities rather than pay someone else to develop IP you won't end up owning and leveraging.
    That's my $0.02. Good luck.
     
    Last edited: Sep 13, 2018
  9. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,486
    My gut feel is Unity would be great for handling the HMI. But it shouldn't be doing the actual control work. Not unless your vehicles are Tonka Truck sized.

    Unity just doesn't strike me as stable enough or testable enough to put in charge of an actual vehicle. And its good practice to separate your HMI from your controller, so you are going to want two applications anyway. Can't have the whole system go haywire if the HMI fails.

    Take this with a grain of salt. My experience is in chemical plant process design, where the control system often has life critical functionality. I would never hand over control of a chemical plant to software as unstable* as Unity.

    * In the chemicals industry, a failure once a year is considered unstable.
     
    Ryiah and angrypenguin like this.
  10. I5

    I5

    Joined:
    Feb 15, 2015
    Posts:
    7
    Ah, I may have misunderstood the intended use. If the app is actually providing the HMI into autonomous vehicles (I have less than a grain of salt to offer), and not just logistics and planning for human decisions, then AR, from what I've seen, may be the best solution for the HMI (Microsoft and several others, ex Vizux, have decent AR interfaces out there that are in production), and they just about all integrate with Unity out of the box. However, if the sensors are being used to provide input to make real-time, instant autonomous decisions, then that logic/code/app will probably have to reside directly with the vehicle (in the chips), and use a very low level hardware interface (i.e. not C# or Unity). If you want to visualize the fleet, in 3D space, put yourself in the driver's seat, and make logistics decisions that ultimately translate to autonomous navigation, I think Unity would be good solution. Another low-cost, low-barrier-to-entry, would be to integrate your geospatial sensor input (lat/longs, mgrs, DTED, etc) with Google Maps, and that would also provide good visual situational awareness, but not with 3D UI or look and feel. If you're trying to model the real world visually, Google Maps will get you there very quickly. If trying to model the world geo-spatially, in 3D, I think Unity is the best solution.
     
    Kiwasi likes this.
  11. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,053
    Agreed. If you apply appropriate separation of concerns this is likely to end up being the case anyway - the control code would probably end up being a separate library or application that the UI listens and talks to. If you need to do fancy visualisation as a part of that UI then Unity is a great option.
     
    Ryiah likes this.
  12. I5

    I5

    Joined:
    Feb 15, 2015
    Posts:
    7
    When you guys mention "control" code, what specific functionality are you referring to? Code controlling actuators and electric current (or fuel injection) on the vehicles? If so, Unity/C# wouldn't even be an option.
     
    Kiwasi likes this.
  13. I5

    I5

    Joined:
    Feb 15, 2015
    Posts:
    7
    Nir, when you write " handing out tasks in an optimal way", that seems like it's primarily a logistics and planning app. Are you wanting to control autonomous vehicles, 3D model the navigation route, have a UI for visualizing logistics, or some combination thereof? What sensors are on board?
     
  14. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,053
    Code that makes decisions that result in instructions that some other thing then implements in the real world. A system like this is likely to have a few layers, including both high and low level controls. You're right that Unity wouldn't be an option for the low level stuff.
     
    Ryiah likes this.
  15. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    5,732
    Similarly as in drone topic, somewhere in the forum, questioning about using Unity as control platform for drones.
    As @angrypenguin and @I5 has pointed out, for high dynamic real time system, only low level control is feasible. Means much higher responsiveness is required, than 20ms for example.

    However, I could see unity for higher level application. Mentioned HMI, is good for interfacing for example robots manipulators. You can define certain decision on Unity side, but main control, FK/IK, movement, should happen on robot side, in its controller, only listening i.e. for target positions and messaging back current manipulator states. This is to ensure safety. Basically keeping HMI and system decoupled.
     
  16. ippdev

    ippdev

    Joined:
    Feb 7, 2010
    Posts:
    2,640
    I am pretty sure the OP is talking about keeping track visually of the logistics flow of goods and transport and not vehicle sensors which a visual interface for their particular pertinent states is quite viable. Some German devs made a sim for long distance trucking that mapped all of Germany and loaded terrain and buildings, roads etc. only in the locale of the current sim user. .
     
  17. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    5,732
    You maybe right indeed.
    In such case, I don't think Unity will be bad. It would allow relatively quick deploy the system, with HMI/Visual graphics.
     
  18. Hermonirr

    Hermonirr

    Joined:
    Dec 23, 2013
    Posts:
    42
    The main task is to visualize a fleet of autonomous vehicles. The app will coordinate between them, assign separate geographical areas of operation, and send them GPS locations. It won't process every sensor and control every motor. @I5 had some really valid selling points to use Unity for this. Thanks :)
     
  19. two_seven

    two_seven

    Joined:
    Apr 17, 2019
    Posts:
    2
    How are we doing on this topic? It's definitely of interest to myself.
     
  20. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    338
    @Hermonirr + @two_seven

    Somewhat shameless plug, but we've been publishing enterprise shop floor control/visualization products all written in Unity for many years.

    This page is a little out of date, but a small portion of what we've done can be seen here:
    https://www.pocket-e.com

    Our main audience is tier-1/2 automotive suppliers but the solutions are of course universal to any enterprise. We are running very critical applications (24/7 stability required or very well known companies stop making cars) with full UI written in Unity on Linux / Windows / Android devices. The backend is python/node.js/etc.

    EDIT: wanted to add.... we are integrating with PLC's and robots all via the server with just Unity-based visualizations of what's going on with the robots at any given time. We aren't using Unity to talk to PLC's directly as IMO that would be silly.
     
    Last edited: Apr 17, 2019
    two_seven and Antypodish like this.
  21. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    5,732
    @slumtrimpet would my assumption be correct, if I say you use IGS to communicate to PLCs? Or is different utility?
     
  22. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    338
    It varies based on the customer. There are a billion ways to skin that cat. We use Rockwell or IGS or Ignition or roll our own solutions based on what the customer has or doesn't have.

    In some cases, the PLC crew at the customer runs the show themselves and just post/write to our server however they want and we just make the data pretty in Unity.

    At that level though it's all backend of course so the sky (and customer budget) is the limit. In my company though, it's always Unity on the frontend. :)
     
  23. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    5,732
    Thank you for sharing insight. This is very interesting to me, as I was developing in past industrial robot interface, communicating with Unity via IGS.

    I suppose easiest way for you is, when client provides IOs to server.
    Then linking front end is rather straight forward.
     
    slumtrimpet likes this.
  24. two_seven

    two_seven

    Joined:
    Apr 17, 2019
    Posts:
    2
    Thanks for getting back to me. I'm loving what you're doing, I've been working with industrial control systems for quite a few years now and I really think what we're seeing as an offering is poor. I'd definitely like to talk more with you about you're offering. Where in the world are you?
     
  25. slumtrimpet

    slumtrimpet

    Joined:
    Mar 18, 2014
    Posts:
    338
    Detroit, USA. (hence all our ties to automotive industry)
    I'll send you a PM and we can continue chatting there.
     
    Last edited: Apr 22, 2019