
Explore the fundamentals of Ros, from basics to Urdf setup, and learn to simulate, teleoperate, and build your own robot using Gazebo on Ubuntu.
Master robotics fundamentals and ROS basics, including what a robot is and why we need a simulation. Learn Linux and C++ basics, URDF setup, Gazebo visualization, and keyboard teleoperation.
Explore how a robot qualifies as an intelligent machine that understands surroundings through sensors and makes decisions. Operate automatically and be reprogrammable to perform tasks with minimal human intervention.
Explore how a robot senses its environment with sensory devices, thinks through the situation, and acts to execute its decisions.
Explore robot classifications by distinguishing mobile robots (land, aerial, underwater) from industrial robots, including fixed based and parallel robots, and review common applications like welding, material handling, and painting.
Define service robots and their scope across environments, noting definitions by standards bodies, human-robot interaction, teleoperation, full autonomy, mobility, and safety and productivity benefits.
Explore the applications of service robotics across domestic, industrial, and social settings, from vacuum cleaners and warehouse robots to hotels and restaurants, aerial mapping, delivery, and bioinspired designs.
Explore the concept of simulation as an imitation of real-life operations over time across physical, interactive, continuous, and discrete types. Learn how computer simulations, including Monte Carlo, stochastic, and multi-method models, study physics, chemistry, biology, engineering, economics, and social science to predict outcomes and reduce modeling effort.
Explore why simulation is essential for learning new processes, offering a risk-free environment, visualizing operations, enabling optimization, and proving concepts without building the real system.
Explore robot simulation environments like ABB Robot Studio for industrial robots and Ros for building applications in simulation and hardware, plus Capella SIM and robots for service robotics.
Explore ROS, a meta operating system for robotics that is open source, built as a collection of software frameworks with hardware abstraction and peer-to-peer node communication across platforms.
Discover the features of ros, including the operating system core and user contributed packages. Explore hardware abstraction, message passing, and tools for slam, planning, perception, and data logging.
Compare ROS 1 and ROS 2, noting single-node versus multi-node execution, real-time focus, and languages Python, C++, and Lisp, while tracing distributions from box turtle to Foxy, melodic and nearctic.
Install a virtual machine using VMware Workstation Player on Windows by downloading the 16 player executable, accepting terms, choosing install options, and finishing setup with desktop shortcuts.
Learn to install ubuntu 18.04.5 LTS in a vmware workstation 16 player by downloading the ISO, creating a virtual machine, and completing initial setup.
Install ROS melodic on Ubuntu 18.04 by configuring ros.org repositories, adding keys, updating packages, and performing a desktop-full setup, then initialize ROS environment and dependencies.
Open the terminal and run ros core to verify that ros packages and dependencies install correctly, displaying melodic and version 10.140.10 when successful. Stop the command with Ctrl+C.
Install Visual Studio Code on Linux, then install Ros and Irtf extensions to enable programming ROS packages and nodes.
Explore Ubuntu’s basic interface, including the top panel, left taskbar, and terminal, and learn to access pre-installed apps and Ubuntu software to install new programs.
Explore Linux file hierarchy and navigation, from root to home, learn essential commands like cd, pwd, and ls, and practice listing, changing, and printing working directories.
Understand Linux file permissions, including ownership (user, group, others) and authorization (read, write, execute), and learn how to use chown and chmod to control access.
Learn how to view, copy, move, and remove files in Linux using cat, head, tail, cp, mv, and rm, with practical, step-by-step examples.
Gain administrative access on Linux using su and sudo, and understand root privileges for privileged commands. Practice updating and cleaning packages with apt-get update, upgrade, and autoremove.
Discover how linux package management streamlines installing, updating, and removing software by using repositories, metadata, and dependencies, with tools like dpkg, apt, and rpm.
Learn to enable extensions in Visual Studio Code, install the Microsoft C++ extension and Code Runner, and set up a working directory for C++ development.
Learn to declare and initialize c++ variables across datatypes such as char, int, float, double, and bool, using cin and cout in a student profile example.
Explore for loops in C++ by guiding a robot through 25 steps and signaling destination reached. The lesson covers basic syntax with iostream, std namespace, and loop structure.
Explore conditional statements in c++ by building a robot teleoperation program that moves forward when the user inputs 1 and stops otherwise using if-else, cin, cout.
Discover the ROS workspace as a folder with build, devel, and src that organize packages and codes for modifying, building, installing, and compiling.
Understand the ROS package structure and catkin-based packages, including include, msg, src, and script components, the dot XML file, and CMakeLists.txt, plus commands like catkin_create_pkg for dependencies.
Explain how the Ros master provides the Ros distribution registration services and the parameter server, activates essential nodes, and enables publishers and subscribers to exchange topic messages.
Understand ros nodes as single-purpose processes that compute and interact, implemented with cpp or python clients, and learn how publishers, subscribers, and service nodes communicate via topics and direct calls.
Discover how ros messages enable node communication via topics, using a simple two-part structure—fields with data types and their names—often predefined in the raw structure in the message folder.
Explore how ros topics let nodes transmit typed messages to multiple subscribers without direct connections, and how tcp/ip or udp transports are negotiated at runtime.
Create a Catkin workspace inside the ground vehicle folder, with a src directory for Ros packages and nodes. Initialize with catkin_init_workspace to create the CMakeLists.txt, then build with catkin_make.
Create a new ros package in your workspace using catkin_create_package, adding std_msgs, roscpp, and rospy, then explore the src contents and build with catkin_make, noting the urdf folder.
Explore urdf, the uniformed robot description format, an xml-based domain-specific language that models robot kinematics and dynamics with links and joints for visualization, collision, and diverse robot types.
Establish a proper file hierarchy for urdf, create a robot_description/urdf folder structure, and create an empty robot_one.urdf file using mkdir -p and touch.
Create the base urdf code by adding an xml version 1.0 and a robot tag named robot one, then close the robot tag, aided by Visual Studio Code autocomplete.
Build the robot base in urdf by defining base_link with a visual geometry box, size 0.2 by 0.3 by 0.1, origin 0 0 0.05, rpy 0 0 0, white color.
Build wheel links in the urdf robot by creating wheel_1 through wheel_4 with cylinder geometry, origins, and black materials, aligning coordinates for a complete four-wheel setup.
Create and connect robot joints in a ros urdf file, establishing parent child relationships, fixed joints, and origin coordinates to assemble base links and wheel joints in a tree structure.
Install the urdf tools, test robot one.urdf with check_urdf, and visualize with urdf_2_graph and Evans to verify base_link and wheel_one, wheel_two, wheel_three, and wheel_four.
Create a launch file to load the robot's urdf, configure the joint state publisher and robot state publisher, and visualize the model with arviz in VS Code.
Source the local workspace and launch the robot from the URDF project. Open RViz and add a robot model to visualize the four wheels and chassis.
Explore gazebo visualization and physical simulation by updating urdf with inertial, collision, and material properties, and create two zakuro files with touch to define robot description and gazebo tags.
Learn to create a robot macro in Zakuro, define inertial and inertia parameters, and wire it to a gazebo file.
Learn how to create a gazebo macro file for ROS, define a xml robot tag, a macro, and material colors for the base link and wheels in Visual Studio Code.
Demonstrates how to convert a macro file to a urdf by sourcing the workspace, locating the urdf folder, running rosrun to convert, debugging tag mismatches, and finalizing the urdf.
Create two launch files to visualize gazebo: display_processed.launch loads the robot model, and gazebo.launch starts gazebo, with worlds/robots.world configured in the project.
Create a gazebo launch file using ros and vscode, importing display_processed and empty_world configurations, defining world_name and gui and time arguments, and spawning the robot with a urf_spawner node.
Create a ROS launch file to integrate Gazebo, set robot_description from URDF, and launch joint_state_publisher and robot_state_publisher with GUI disabled.
Explore how to set up a robot world in sdf and xml, including a ground plane, sun lighting, and a user camera with orbit view, then save the world configuration.
Launch Gazebo by configuring the virtual machine and sourcing the catkin workspace. Use roslaunch to start Gazebo with URDF files, then update state_publisher to robot_state_publisher and adjust ignition fuel settings.
ROS or Robot Operating System is an open-source middleware suite deemed as an essential mile stone while learning robotics. Robot Operating System (ROS) is a flexible framework for writing robot software. It provides a structured communication layer between the hardware drivers and the high-level code responsible for task execution and decision-making. ROS is not a traditional operating system but rather a middleware framework that runs on top of an existing operating system, such as Linux. It is a framework that helps researchers and developers build robot applications. ROS has a global open-source community of engineers, developers and hobbyists who contribute to develop better robots which are more accessible and available to everyone. ROS has been adopted into some of the biggest names in robotics. The majority of organisations are using ROS as it can be installed by anyone or a part of ROS in some form. Some companies like ABB, Fetch Robotics, OTTO motors use ROS for application development. ROS allows developers to easily simulate their robot in any environment, before deploying anything in the real world. Tools like Gazebo even allow you to create simulations with robots you don’t possess. This is the ideal course to learn the basics of Robot Operating System. You will be able to have a strong foundation about the essentials ROS. This course will give you a glimpse into the world of research and development of robots using ROS.