Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 29 additions & 3 deletions .github/workflows/ubuntu-core-image.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ name: TurtleBot3c Ubuntu Core image
on:
push:
branches:
- noetic
- humble-virtual
tags:
- '*'
pull_request:
branches:
- noetic
- humble-virtual
workflow_dispatch:

jobs:
Expand Down Expand Up @@ -46,6 +46,24 @@ jobs:
with:
name: turtlebot3c-ubuntu-image
path: turtlebot3c.img
qcow2-convertion:
runs-on: ubuntu-latest
needs: ubuntu-image
steps:
- name: Download TurtleBot3c image
uses: actions/download-artifact@v4
with:
name: turtlebot3c-ubuntu-image
path: .
- name: Install qemu-utils
run: sudo apt-get install -y qemu-utils
- name: Convert image to qcow2
run: qemu-img convert -f raw turtlebot3c.img -O qcow2 turtlebot3c.qcow2
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: turtlebot3c-ubuntu-qcow2-image
path: turtlebot3c.qcow2
release-image:
runs-on: ubuntu-latest
needs: ubuntu-image
Expand All @@ -58,15 +76,23 @@ jobs:
with:
name: turtlebot3c-ubuntu-image
path: .
- name: Download TurtleBot3c qcow2 image
uses: actions/download-artifact@v4
with:
name: turtlebot3c-ubuntu-qcow2-image
path: .
# The image must be compressed.
# GH release max file size is 2GB
# and the uncompressed image is 3.5GB.
- name: Compress the Ubuntu image
run: |
tar czf turtlebot3c.img.tar.gz turtlebot3c.img
- name: Compress the Ubuntu qcow2 image
run: |
tar czf turtlebot3c.qcow2.tar.gz turtlebot3c.qcow2
- name: Release
uses: softprops/action-gh-release@v2
with:
files: |
turtlebot3c.img.tar.gz

turtlebot3c.qcow2.tar.gz
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
*.snap*
*.img*
*.qcow2*
28 changes: 6 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,18 @@

[![Release](https://img.shields.io/github/release/ubuntu-robotics/turtlebot3c-ubuntu-core.svg)](https://github.com/ubuntu-robotics/turtlebot3c-ubuntu-core/releases/latest)

Turtlebot3c Ubuntu Core image
Turtlebot3c Ubuntu Core image for ROS 2 Humble.

The image contains the TurtleBot3c snaps:

- [turtlebot3c-bringup](https://snapcraft.io/turtlebot3c-bringup)
- [turtlebot3c-nav](https://snapcraft.io/turtlebot3c-nav)
- [turtlebot3c-teleop](https://snapcraft.io/turtlebot3c-teleop)

The image creates a Hotspot called `turtlebot3c`
with the password `turtlebot3c`.

Once connected to the hotspot,
the robot is available on the network as `turtelbot3c.local`.
Mind that you need avahi installed on your remote machine, see e.g. `snap install avahi`.

Remember to set up the `ROS_MASTER_URI` to point to the robot:

```bash
ROS_MASTER_URI=http://turtelbot3c.local:11311/
```
- [ros2-nav2](https://snapcraft.io/ros2-nav2)
- [ros2-teleop](https://snapcraft.io/ros2-teleop)

## Download the image

The image can be downloaded from the
[latest release](https://github.com/ubuntu-robotics/turtlebot3c-ubuntu-core/releases/latest).

After downloading the file `turtlebot3c.img.tar.gz`
and decompressing it, the image can be written to an SD card.
[releases page](https://github.com/ubuntu-robotics/turtlebot3c-ubuntu-core/releases).

## Build the image

Expand All @@ -56,9 +40,9 @@ snap sign -k tb3c-key turtlebot3c-model.json > turtlebot3c.model
[Generate the image](https://ubuntu.com/core/docs/build-write-image):

```bash
ubuntu-image snap turtlebot3c.model --snap ./turtlebot3c-gadget/turtlebot3c-pi_*_arm64.snap
ubuntu-image snap turtlebot3c.model --snap ./turtlebot3c-gadget/turtlebot3c-*.snap
```

### Boot the image

Write the generated image on an SD card with the [rpi-imager](https://snapcraft.io/rpi-imager) and boot.
@todo
Binary file added metadata.tar.gz
Binary file not shown.
4 changes: 4 additions & 0 deletions turtlebot3c-gadget/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
parts/
prime/
stage/
pc_*.snap
15 changes: 15 additions & 0 deletions turtlebot3c-gadget/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
language: minimal
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do you need a travis.yaml file?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The gadget is a copy/paste of the Core22 pc-gadget. I only modified what was needed and left the rest as is.

os: linux
dist: bionic
sudo: enabled
addons:
snaps:
- name: snapcraft
channel: edge
classic: true
- name: core20
channel: edge

script:
- sudo apt update
- sudo snapcraft snap --provider=host --destructive-mode
156 changes: 0 additions & 156 deletions turtlebot3c-gadget/Makefile

This file was deleted.

34 changes: 34 additions & 0 deletions turtlebot3c-gadget/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# 64bit PC Gadget Snap
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generic file to remove or update.


This repository contains the official Ubuntu Core gadget snap for 64bit
Personal Computers using Intel or AMD processors.

## Gadget Snaps

Gadget snaps are a special type of snaps that contain device specific support
code and data. You can read more about them in the snapd wiki
https://github.com/snapcore/snapd/wiki/Gadget-snap

## Reporting Issues

Please report all issues on the Launchpad project page
https://bugs.launchpad.net/snap-pc/+filebug

We use Launchpad to track issues as this allows us to coordinate multiple
projects better than what is available with Github issues.

## Building

To build the gadget snap locally please use `snapcraft`.

## Launchpad Mirror and Automatic Builds.

All commits from the master branch of https://github.com/snapcore/pc-amd64
are automatically mirrored by Launchpad to the https://launchpad.net/snap-pc
project.

The master branch is automatically built from the launchpad mirror and
published into the snap store to the edge channel.

You can find build history and other controls here:
https://code.launchpad.net/~canonical-foundations/+snap/pc-amd64
1 change: 0 additions & 1 deletion turtlebot3c-gadget/configs/core/cmdline.txt

This file was deleted.

40 changes: 0 additions & 40 deletions turtlebot3c-gadget/configs/core/config.txt.arm64

This file was deleted.

Loading