Academia

RoboNation Resources


Desktop Computer Deployment

Introduction

  • Desktop computers are frequently used to deploy algorithms to control robotic systems. MathWorks tools can be run directly on a desktop computer to control an unmanned vehicle system. For increased performance, C code or an executable can be generated out of MATLAB and Simulink code and run on a desktop computer. A variety of communication methods are available to communicate with hardware. MATLAB ROS can also be used to set up a ROS node on the desktop computer.
  • There are many solutions to program embedded hardware. MATLAB can be used to connect directly to hardware (i.e. Arduino, Android phones). Simulink can be used to generate C code and deploy to hardware.
  • MATLAB and Simulink can be used to deploy all or a subset of algorithms to control a robotic system.

Examples

  • Running MATLAB and Simulink on a desktop computer

    • Learn how to run MATLAB and Simulink on a desktop computer to control an unmanned vehicle system. This module shows how to import vision data from a USB webcam, perform computer vision to find the location of buoys, and schedule tasks in MATLAB and Simulink so that algorithms run in Soft Real-Time.
    • View the module from the Getting Started Guide "Getting Started with MATLAB and Simulink to Control an Autonomous Vehicle"
  • Generating an executable out of MATLAB and Simulink which runs on a desktop computer

    • Learn how to generate an executable out of MATLAB and Simulink code which runs on a desktop computer. This module shows how to create the executable and run it in MATLAB. It also shows how to create an executable which can be deployed to a computer which does not have MATLAB and Simulink installed.
    • Check out the module from the Getting Started Guide "Deploying an Executable to the Desktop"
  • Communication

    • Learn how to communicate using UDP, TCP/IP, and Serial with the desktop computer. This module uses loop-back tests to demonstrate desktop communication concepts. These communication methods can be used to communicate to other processes or executables on the desktop. They can also be used to talk to targets (i.e. a low-level microcontroller like an Arduino which is connected to a motor controller and sensors).
    • View the module from the Getting Started Guide "Communicate using UDP, TCP/IP, and Serial"
    • Desktop Deployment

      • MATLAB Coder: Generate C code and executables out of MATLAB code which can run on a desktop
      • Simulink Coder: Generate C code and executables out of Simulink code which can run on a desktop
      • Data Acquisition Toolbox: Connect MATLAB and Simulink directly to data acquisition instruments such as a sound card
      • Instrument Control Toolbox: Communicate with other hardware using a variety of protocols including tcpip, udp and serial. Does not support code generation.
      • DSP System Toolbox: Communicate with other hardware using UDP. Connect MATLAB and Simulink directly to data acquisition instruments such as a sound card. Supports code generation
      • MATLAB ROS: Create a ROS node on the desktop and communicate to other ROS nodes using ROS messages
      • Image Acquisition Toolbox: Acquire images and video from a camera attached to the desktop computer

Tools

  • Target Deployment

    • MATLAB: Control and acquire data from hardware using MATLAB (i.e. MATLAB I/O for Arduino, Android Sensors)
    • Simulink: Generate C code and deploy Simulink models to hardware (i.e. Simulink Target for Arduino)
    • Embedded Coder: Generate C code and deploy Simulink models to embedded hardware (i.e. STMicroelectronics)
    • HDL Coder: Generate HDL code (i.e. Verilog or VHDL) to FPGAs (i.e. Xilinx Zynq)

Videos

User Stories