Robotics Software Engineer
Notes from the 2020 course
Gazebo
Gazebo is a 3D simulation tool that uses 3D models to represent how a ROS toolchain could work in a robot given a simulation.
ROS Essentials
ROS, the Robot Operating System, is a framework that mimics the real time nature of a robot. It consists of nodes. Nodes have their own responsibilities and usually interact with other nodes to determine when to run calculations or make decisions.
Publisher-Subscriber
A publisher-subscriber (pub-sub) model is best described as a pipeline. When an interaction or event occurs, the rest of the pipeline happens sequentially (like dominoes). There should be no cycles.
In robotics, sensors will typically be publishers that signal subscribers to do tasks. Publishers publish to a topic that subscribers subscribe to. Subscribers will perform a task when something new is published.
Service-Client
A service-client model is similar to the server-client model in web applications. Requests are made by a client and the service will perform some calculations accordingly.
In robotics, nodes make service requests that are necessary for it to continue doing its tasks (which was started due to a newly published topic that it was subscribed to).
Localization
Given a map, how can a robot determine where in the map it is?
Markov Localization or Particle Filters
Particle filters help localize a robot by using a point cloud of possible poses that best match its environment readout over time.
Mapping and SLAM
Usually, a robot will not know its environment and must map and localize simultaneously or SLAM (simultaneous localization and mapping).
Path Planning and Navigation
Course Opinions
The course feels more like plug and play instead of actual software engineering.
ROS and Gazebo are nice software packages, but really buggy. Multiple times Gazebo would crash on me while I tried making new buildings and robot models. I question how viable these software packages are in real development environments.
Last updated
Was this helpful?