Course Glossary

Another place to look for definitions. Let us know if there’s a word that you would like to see added to this list. It just grows organically until it encompasses all of google. Then I will stop.

  • Arduino: A board-sized computer which is extremely popular in robotics and other kinds of maker project. You program it in C++. It is the brain of our mBot robots. There is lots and lots of info about it on the web.
  • Backpacks: a kind of break-out board that allows for more simple wiring of one or more components to a microcomputer.
  • baud speed: A very old term for the speed of a serial connecection.
  • bitmap: A binary representation in which a bit or set of bits corresponds to some part of an object such as an image or font.
  • Digital I/O: 3 possible states: 0/LOW/ground: The pin is grounded such that it would read 0 volts.
  • Distributed Operating System: An OS where the different components, processes, modules, may run on different computers. In particular the OS (e.g. ROS) will provide the primitives and facilties to coordiante the different modules.
  • Duplex:** a reference to directionality of signal flow. Full-duplex would be bidirectional data flow capable of transmitting and receiving over the same channel simultaneously. Half-duplex is bi directional data flow but only in one direction at a time.
  • EEPROM: Programmable Read Only Memory. This memory cannot normally be overrwritten by software. It might contain the operating system or boot logic. But it is programmable, meaning that with a special device it can be overwritten. This is sometimes called “reflashing” the memory.
  • Flash memory: Persistent memory, like used in a memory stick. The content of this memory is preserved even when power is turned off.
  • Gazebo: ROS Tool used to simulate “real world”, that is, to represent a 3-d space, with objects in it, a notion of object solidity and mass and so on. Used often when you are testing your robot code to place the robot in a simulated world and then tell it to move.
  • GND: ground
  • IDE (Integrated Development Environment): This is the software application that is run to provide the tools to allow you to develop software for the Arduino. It includes the source code editor, build automation, and debugger.
  • LIDAR: A sensor which operates by spinning a laser around a 360 degree arc, and using the time to receive the bounced laser to determine the distance. The raw data that the robot receives from the lidar is a vector of distances in meter. Each entry in the vector corresponds to a slice of the rotation, so, for example, the vector might have 360 entries, each entry being the detected distances at that angle of rotation. What is Lidar and How Does it Help Robots See?
  • mBot: A specific 2 wheeled robot, powered by Arduino which we used during gen0
  • MicroComputer: A small circuit board module containing a MicroController chip, power supply components, indicator LEDs, connection pins and some function for uploading software.
  • MicroController: An inexpensive computer chip that includes a processor, Flash Memory (retained with power off), Random access memory, and numerous Input / Output functions on many pins, all on one chip.
  • Package (or ROS Package) A directory with a standard layout which designates a complete application in ROS (see ROS Packages
  • Parallel: a protocol in which data is transmitted over multiple lines simultaneously unlike serial.
  • Pose: A very common term in robotics which means the x,y,z position in space where the robot is right now, and the x,y,z rotation (where it is pointed). Those six conceptual coordiantes constitute the pose.
  • Processing Code: This is the programming environment used most often with Arduino. It can be downloaded (free) from arduino.cc. It is a somewhat simplified version of the C programming language.
  • Publish/Subscribe architecture: Fundamental communications paradigm of ROS. Any node can choose to publish one or more topics. Any node can choose to subscribe to one or more topics. ROSCORE connects them together.
  • PWM (Pulse-Width Modulation): One of the nice things about Arduino boards is that, even though they do not have true analog output lines, they can approximate an analog output voltage that you can control. This is done using pulse-width modulation (PWM), where the voltage at a digital line is changed from low to high at a high frequency, and the fraction of the time it is on (called the duty cycle) is varied.
  • Random access memory (RAM):
  • ROS Node: The basic building block of a ROS application. You can easily think of it as a process or even a program, launched from the Linux command line, which incorporates the ROS Operating System libraries. The central abstraction for this coordiantion is the “Topic”
  • ROS Topic: The data structure that is published or subscribed to. Looks a lot like a struct or class, except without methods. ROS comes with a large set of Topics pre-defined. In general you shouldn’t have to define your own.
  • ROS: “Robot Operating System”. A real time, distributed operating system, that runs on top of Linux and is used in real-world commercial and research robots. It is used for example also in the Roomba vaccuum cleaner robot. It is the operating system that runs our TurtleBot3 robot.
  • rViz vs Gazebo: Gazebo is the actual real world physics simulator that you will set up a world and simulate your robot moving around. Rviz is the visualization software, that will allow you to view that gazebo data (if you are simulating) or real world data (if you are not using gazebo, but a real robot).
  • rViz: ROS Tool to display (visualize) a 3D world and robot. Often used together with Gazebo so it’s hard to tell where Gazebo ends and rViz starts.
  • SBC Also known as “Single Board Computer”. A generic and vague term covering Raspberry Pi, Arduino, and many other computers on a board.
  • SCL:
  • SDA:
  • Serial: a protocol in which data is transmitted one after the other unlike parallel.
  • Shield: In Arduino, this is a circuit board that can be plugged on top of an Arduino. Shields have a variety of applications. For example, our Vernier Interface Arduino Shield allows you to easily connect our sensors to an Arduino.
  • Single Board Computer See SBC
  • Sketch: In Arduino, this is the term used for a program.
  • topic: In ROS, a topic is a unit of communications between nodes. Nodes can publish a topic and other nodes can subscribe to the topic.
  • TurtleBot3: The model robot that we are using in this class. It comes in two versions which are quite similar. You can read all about it here: TurtleBot3
  • Upload?:
  • VCC: An electronics designation that refers to voltage from a power supply connected to the “collector” terminal of a bipolar transistor. In an NPN bipolar (BJT) transistor, it would be +Vcc, while in a PNP transistor, it would be -Vcc. 1/HIGH/logic voltage: The pin is tied to a voltage source, it would read logic voltage on a multimeter. Hi-Z/float/unknown: the pin is neither tied to ground nor power. As a result it’s value is unknown and often requires a pull down resistor to automatically pull it to a LOW value. Note: many microcontrollers automatically include a pulldown resistor on each pin by default.