How to Install Ubuntu 24.04 Virtual Machine on a Windows PC

In this tutorial, you will install Ubuntu and Virtual Box on your personal computer. Whether you have a computer using Windows or a Mac, by the end of this tutorial, you will have Ubuntu all setup and ready to go.

If you prefer learning through video rather than text, check out the YouTube video below where I walk you through the entire process step by step. Otherwise, keep reading.

What is Ubuntu?

Ubuntu is an operating system for your computer, just like Windows or macOS, but it is based on Linux –  a free, open-source system that serves as the foundation for many computer programs. 

Ubuntu provides a user-friendly desktop environment see in the lead image for this blog post. 

Why use Ubuntu to program robots when we could use Windows or macOS?

Three reasons:

  1. It is free to use.
  2. It is open source, which means the code is publicly available for you to modify and distribute without paying thousands of dollars in license fees.
  3. It is fully supported by ROS 2, the most popular framework in the world for writing robotics software.

What is VirtualBox?

VirtualBox is a program that lets you run a different operating system inside your current one. It is like having a computer within your computer. 

VirtualBox creates a safe, isolated space where you can experiment with other operating system environments without changing anything on your main Mac or Windows-based computer.

What About a Real-World Robotics Project?

On a real-world robotics project, you will use a small computer instead of your desktop PC. Examples include the Intel NUC, Raspberry Pi, or NVIDIA Jetson boards. 

These small computers serve as your robot’s “brain,” taking care of all the decisions on what actions the robot should take based on data from sensors like cameras, LIDAR, wheel encoders, and GPS. 

We’ll be harnessing the power of Ubuntu on a desktop computer, creating a robust virtual environment for our robotics journey. This setup is not just a convenient starting point for beginners—it is actually the ideal platform for any robotics project, regardless of experience level. 

Why Simulation Matters in Professional Robotics

It is worth mentioning that even in professional robotics jobs, a significant amount of work is done in simulation environments similar to what we’re setting up. There are three reasons for this: Speed, Spend, and Safety. I call it the three S’s:

  1. Speed: You can rapidly prototype new ideas in a simulated environment before committing to physical builds.
  2. Spend: Developing and testing in a virtual environment is much cheaper than building and testing physical prototypes for every iteration.
  3. Safety: You can test potentially dangerous scenarios without damaging expensive hardware or running into people:
    1. An example would be testing a cliff sensor for a mobile robot that is designed to keep the robot from falling down stairs. 
    2. You wouldn’t want to test that logic on a real robot without doing it in simulation first!

By starting with this virtual Ubuntu setup, you’re not only learning the basics but also preparing yourself for practices used in real-world robotics development. This approach bridges the gap between beginner-friendly learning and professional-grade tools and methodologies.

Download the Ubuntu Image

Now let’s download Ubuntu. 

First, go to the Ubuntu Releases page (https://releases.ubuntu.com/) on the Ubuntu website to find the latest version of Ubuntu that has long term support (LTS). 

As of the date of this writing, the latest version is Ubuntu 24.04 LTS (Noble Numbat).

Click on “Ubuntu 24.04 LTS (Noble Numbat)”.

1-ubuntu-releases-2024

Click on the 64-bit PC (AMD64) desktop image.

2-64-bit-pc-desktop-image

This .iso file is large. It will take a while to download. Just go do something else and come back to it when it is finished.

When the download finishes, you can either keep the file in the default download location, which for me is my Desktop. Or, you can move the file to another directory on your computer.

Now, go to the next step.

Install VirtualBox

Let’s install VirtualBox. 

Go to the VirtualBox downloads page. Here is the link.

Select the version that is compatible with your computer. I will click “Windows hosts” since I am using a Windows-based computer.

3-download-virtual-box

Click on the executable file that you just downloaded. 

Follow the prompts to install it on your machine. 

Accept all the defaults by clicking either Next, Yes, Install, or Finish through all the prompts.

You can find detailed installation instructions for all operating systems (Windows, Mac OS, and Linux) in the instruction manual if you encounter problems.

When you are finished downloading and installing VirtualBox, you can delete the original executable file that you used to install the program. You don’t need it anymore.

Create a Virtual Machine

Now that VirtualBox is installed, we need to create a new virtual machine using the Ubuntu image we downloaded earlier.

Open Virtual Box.

Click the New button in the toolbar.

4-click-new-button

Name and Operating System

First, let’s complete the “Name and Operating System” section.

On the “Name” line, type in a descriptive name for your operating system. I will call mine “Ubuntu24.04”.

5-name-and-operating-system

On the “Folder” line, you can keep the default Folder path. This folder is where your virtual machines will be stored. 

On the “ISO Image” line, select the path to the Ubuntu .iso file you downloaded earlier.

On the “Type” line, select Linux.

On the “Subtype” line, select Ubuntu.

On the “Version” line, select Ubuntu (64-bit).

Select “Skip Unattended Installation”. By selecting this option, we will manually go through the entire installation process of the operating system. 

Hardware

Click on the arrow next to “Hardware” to expand the menu options.

6b-hardware-options

On the “Base Memory” line, move the slider to 16384 MB (megabytes). This memory size will be enough for us to run our robotics simulator, Gazebo, which requires a lot of memory.

On the “Processors” line, select 8 CPUs. If your computer supports it, you can set a higher number. I like to make sure my slider stays within the safe, green color to avoid problems.

Click on the arrow next to “Hard Disk” to expand the menu options.

6-50gb-storage

Click on the slider bar to set 50.00 GB for the storage space.

Click “Finish”.

Highlight Ubuntu24.04, and click Settings.

6c-settings

Click Display.

6d-display

Change Video Memory to 128 MB (megabytes).

Click OK.

Install Ubuntu

Highlight Ubuntu24.04, and click Start on the top menu.

7-doubleclick-start

A startup window will appear.

Select “Try or Install Ubuntu” by Pressing Enter.

8-startup-window

Choose your language. I will select “English”.

9-choose-language

Click Next.

On the “Accessibility in Ubuntu” panel, click Next.

10-accessibility-in-ubuntu

On the “Keyboard layout” panel, select your desired keyboard layout, and click Next.

11-select-keyboard-layout

On the “Connect to the internet” panel, select “Use wired connection”, and click Next.

12-connect-to-the-internet

If you get prompted to update the Ubuntu installer, do that now.

Then click the “Install Ubuntu 24.04.1 LTS” icon on the Ubuntu desktop to continue the installation.

On the “What do you want to do with Ubuntu?” panel, select “Install Ubuntu”, and then click Next.

13-install-ubuntu

On the “How would you like to install Ubuntu?” panel, select “Interactive installation”, and then click Next.

14-interactive-installation

On the “What apps would you like to install to start with?” panel, select the “Default selection”, and then click Next.

15-what-apps-start-with

On the “Install recommended proprietary software?” panel, select both checkboxes, and then click Next.

16-install-recommended

On the “How do you want to install Ubuntu?” panel, select “Erase disk and install Ubuntu”.

17-how-want-install-ubuntu

Click Next.

On the “Create your account” panel, fill in your information with your desired name (e.g. “ubuntu”). Also fill in your password.

18-create-your-account

Deselect “Require my password to log in”.

Click Next.

Select your time zone, and then click Next.

19-select-your-timezone

On the “Review your choices” panel, click Install.

20-review-your-choices

Sit back and relax while Ubuntu installs.

21-after-click-install

Click “Restart now” when the installation finishes.

22-restart-when-done

When you see a message that says “Please remove the installation medium, then press Enter”, press Enter on your keyboard.

22b-remove-installation-medium

Configure Ubuntu

You will now see a welcome screen.

23-welcome-screen

Click Next.

On the “Enable Ubuntu Pro” panel, select “Skip for now”, and click Next.

I will select “No, don’t share system data”, and click Next.

24-help-improve-ubuntu

On the “Get started with more applications” panel, click Finish.

25-click-finish

On the bottom left side of the screen, click the ring icon.

26-click-icon

Right-click the terminal icon, and click “Pin to Dash”.

27-pin-to-dash

Click the ring icon again to return to the Desktop.

Now let’s make sure your user has sudo privileges. Sudo privileges allow a user to execute commands with superuser (administrative) rights, enabling them to perform tasks that require higher levels of access on the system. 

Click the terminal icon on the left side of the screen.

30-terminal-icon

Type the following command inside the terminal window, and press Enter.

whoami

This is your username. 

Now type:

sudo adduser <username> sudo

Replace <username> with your username.

31b-add-sudo-user

Now shutdown the virtual machine by typing the following command and pressing Enter on the keyboard.

sudo shutdown -h now

Install VirtualBox Guest Additions

Now we need to install VirtualBox Guest Additions. 

VirtualBox Guest Additions are a set of applications that improve the performance and usability of virtual machines.

Highlight Ubuntu24.04, and click Start on the top menu to launch the Desktop environment.

Open a terminal window, and type the following commands to upgrade the operating system software packages:

sudo apt-get update -y

When prompted for the password, type in your password and press Enter.

sudo apt-get upgrade -y

Clear out all the logs in the terminal by typing the following command, and pressing Enter:

clear

Now reboot the machine.

reboot

When you get back to the Desktop, open a terminal window, and type the following command.

sudo apt install build-essential dkms linux-headers-$(uname -r) -y

Next, go to the menu bar at the top of the Virtual Machine.

Click “Devices”.

32-menu-bar-click-devices

Click “Insert Guest Additions CD image” to mount the Guest Additions ISO file inside your virtual machine.

Click the Files icon on the left side of the screen.

32-click-files-icon

Click VBox_GAs on the left panel.

33-vbox-gas

Right click on autorun.sh and select “Run as program”. (you can also click Run Software at the top)

34-run-as-program
34-run-software

Enter your password when the Authentication Required pop-up window appears.

Click “Authenticate.”

Once all the logs stop, press Enter to close the installation window.

34b-logs-stop

Shutdown your system with the following command inside a terminal window:

sudo shutdown -h now

Highlight Ubuntu24.04 on the left panel.

Click Machine -> Settings in the dropdown menu at the top of Virtual Box.

Go to General -> Advanced on the Settings menu.

Enable “Bidirectional” for both “Shared Clipboard” and “Drag’n’Drop”.

35-enable-bidirectional

Click OK.

Highlight Ubuntu24.04 on the left panel.

Click Start to launch the Desktop environment again.

If the environment doesn’t launch after a minute or so, click File -> Close, and power everything down, and try launching it again by pressing the Start button on the home menu.

Change the Screen Resolution

You may notice some annoying flickering that happens on your screen. This flickering happens either at random times or when I try to move windows with the virtual machine. The issue is due to the screen resolution.

Do the following steps to make this go away:

Go to the View menu at the top of the window.

36-view-autoresize

To set a specific fixed resolution, go to View -> Virtual Screen 1, and select your desired resolution (e.g. 1920 x 1080).

Congratulations, you have finished installing and setting up Ubuntu. 

I will see you in the next tutorial!

How to Check What ROS 2 Version Is Installed on Your Machine

Below are the various ways you can check to see what ROS 2 distribution is installed on your machine.

If you just want to see what version of ROS 2 you have, type:

ls /opt/ros/

Example return value:

jazzy

Alternatively, you can get the same output by typing either of the commands below:

printenv ROS_DISTRO
echo $ROS_DISTRO

If you want to see what Python version you have along with the ROS 2 distribution that is installed, type:

env | grep ROS

If you want to see a description of all the ROS 2 packages installed on your system, type:

dpkg -l | grep ros-

That’s it! Keep building!

Your Best Career Decision of the Next 50 Years

Why Investing in Robotics Skills Will Be Your Best Career Decision of the Next 50 Years

The Secret Sauce of Tech Billionaires

Ever wonder what makes tech companies like Uber, Google, and Airbnb so successful? Well, there’s a guy named Evan Williams who has a philosophy on what it takes. You might not know his name, but you’ve definitely used his creations. He’s the billionaire co-founder of Twitter and Medium, and he’s got a pretty simple recipe for success in the tech world.

Here’s Williams’ secret sauce: identify basic human desires that have existed for a long time, then use modern technology to fulfill those desires more conveniently than ever before. That’s it. 

At its core, his idea is simple yet profound. Williams argues that the Internet is “a giant machine designed to give people what they want.” The key to building successful tech companies, he suggests, is to remove steps from common activities, making them faster and cognitively easier for users.

Sounds simple, right? But this idea has made Williams and many others filthy rich. Making money in technology is all about providing speed and cognitive ease…don’t make me think, don’t make me wait.

Let’s break it down with some examples:

1. Google: Remember when finding information online meant clicking through a bunch of confusing directories? Google said, “Nah, just type what you want in this box.” Boom! Instant answers. Before Google, you’d spend ages navigating Yahoo! directories or trying to guess the right website URL. Now? You can find the capital of Uzbekistan in seconds.

2. Uber: Calling a cab used to be a pain. You’d stand on the street corner, arm raised, hoping to catch a driver’s attention. Or you’d call a dispatcher and pray they’d actually send someone. Uber made it as easy as tapping a button on your phone. No more waiting on hold or explaining where you are.

3. Airbnb: Booking a place to stay meant dealing with hotels and their prices. You’d have to call around, compare rates, and often settle for a cookie-cutter room. Airbnb lets you rent someone’s spare room or entire house with a few clicks. It opened up a whole new world of unique, often cheaper accommodations.

4. Amazon: Remember when shopping meant driving to the mall, fighting for parking, and hoping the store had what you wanted? Amazon brought the entire mall (and then some) to your fingertips. From books to electronics to groceries, it’s all just a click away.

5. Netflix: Back in the day, watching a movie meant driving to Blockbuster, hoping they had the film you wanted, and rushing to return it to avoid late fees. Netflix said, “How about we bring thousands of movies and shows right to your TV?” No more late fees, no more limited selection.

6. Spotify: Music lovers used to spend a fortune building CD collections or downloading individual songs. Spotify made virtually all the world’s music available for a small monthly fee. No more storage issues, no more buying albums for just one good song.

7. Instagram: Remember lugging around a camera, then waiting to develop film to share photos? Instagram made it possible to snap, edit, and share photos instantly. It turned everyone into a potential photographer and created a whole new way of visual communication.

8. LinkedIn: Networking used to mean attending stuffy events and exchanging business cards. LinkedIn brought professional networking online, making it easier to connect with colleagues, find jobs, and showcase your skills.

9. Zoom: Before Zoom, video conferencing was often a clunky, unreliable experience reserved for big corporations. Zoom made it so easy that grandparents could use it. It’s changed how we work, learn, and stay in touch with loved ones.

10. DoorDash: Remember when getting food delivered meant being limited to pizza or Chinese? DoorDash and similar apps brought virtually every restaurant to your doorstep. No more limited options or dealing with grumpy restaurant staff over the phone.

See the pattern? These companies all took something people were already doing and made it way faster and easier. Williams calls this “removing cognitive overhead.” In plain English, that means making things so simple that you don’t have to think about them.

I saw firsthand as the Chief Financial Officer of 21212 Digital Accelerator, the first tech startup accelerator in Brazil, how the most successful companies in our portfolio made a lot of money just by removing steps from what people were already doing.

Now, you might be wondering, “What does this have to do with robotics?” 

As we’ve seen, Evan Williams’ philosophy of simplifying existing processes has led to remarkable innovations in the digital realm, but this same principle could apply to robotics, potentially transforming our physical world in similar ways.

The Case for Robotics 

Applying Williams’ Principle to Robotics

The core idea of simplifying existing processes will be powerful in robotics:

1. Reducing Complexity: Just as Google simplified information retrieval, robots will simplify complex physical tasks.

2. Increasing Accessibility: Similar to how Uber made transportation more accessible, robots will make certain services or capabilities more widely available.

3. Enhancing Efficiency: In the same way that Amazon streamlined shopping, robots will streamline various industrial and domestic processes.

Fulfilling Age-Old Human Desires

Robots (humanoids in particular) will eventually satisfy numerous long-standing human desires:

  • Assistance: Humans have always sought help with tasks, from manual labor to cognitive work.
  • Safety: People have consistently sought ways to perform dangerous tasks without risking human lives.
  • Efficiency: Who doesn’t want to accomplish more in less time?

Roboticists will play an important role translating these desires into reality through advanced programming and AI integration.

Removing Steps and Cognitive Load

Just as Uber removed steps from the process of getting a ride, humanoid robots programmed by skilled software engineers will simplify countless aspects of daily life:

  • Home management: Robots will eventually handle cleaning, cooking, and organizing without the need for human intervention.
  • Eldercare: Humanoids will provide round-the-clock assistance to the elderly, reducing the cognitive and physical burden on human caregivers.
  • Industrial work: Complex manufacturing processes will be streamlined, with robots handling intricate tasks that currently require extensive human training and concentration.

Investment and Market Trends

The robotics industry is attracting significant investment:

  • Major tech companies like Tesla and Amazon are investing in robotics research and development.
  • Startups focused on specific robotics applications (e.g. humanoids) are securing substantial funding…sometimes in the hundreds of millions of dollars.
  • Government and academic institutions are also contributing to robotics research.

However, it’s important to approach market projections with caution, as the path from research to widespread commercial application can be long and uncertain.

Skills for the Future

Robotics will drive massive productivity gains across industries, from manufacturing to healthcare. Software engineers who can program these robots will be instrumental in unlocking trillions of dollars in economic value.

As robots become more sophisticated and ubiquitous, the need for skilled professionals who can design, program, and maintain these systems will skyrocket. While many jobs may be at risk of automation, robotics software engineers will be the architects of this automated future, making their skills not just valuable, but essential.

In essence, robotics engineering embodies Williams’ philosophy of tech success. It has the potential to remove steps from countless processes, increase speed, reduce cognitive load, and fulfill long-standing human desires. 

As we’ve seen with Google, Airbnb, and Uber, those who can harness these principles to create user-friendly, transformative technologies often end up leading billion-dollar companies.

So, if you’re considering your career options or looking to pivot into a field with immense potential, robotics should be at the top of your list. By investing in these skills now, you’re not just preparing for the job market of tomorrow – you’re positioning yourself to be at the forefront of a technological revolution that will shape the next 50 years and beyond.

For those passionate about technology and problem-solving, robotics offers an exciting career path with the potential to make significant impacts across various sectors over the next 50 years and beyond. As with any emerging technology, the key is to stay informed, continuously learn, and be prepared to adapt as the field evolves.

The robots are coming. The question is: will you be the one programming them?

That’s it. Keep building!