GithubHelp home page GithubHelp logo

pulcher / xmo Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 11.43 MB

My implementation based on work from the Exomy 3D printed rover project

License: GNU General Public License v3.0

Dockerfile 1.16% Shell 6.01% Python 23.49% CMake 34.93% C 12.14% C++ 12.12% Makefile 10.15%

xmo's Introduction

Xmo

My implementation based on work from the Exomy 3D printed rover project

Requirements

  • Raspberry Pi 4 suggest at least 4GB
  • 128 GB SD card
  • Ubuntu 20.04 LTS
  • ROS2 Galactic
  • Logitech F710 gamepad

Rapspberry Pi Setup

  1. Download 20.04 Server LTS https://ubuntu.com/download/raspberry-pi
  2. Install ubuntu using the Raspberry Pi Imager. Here is a link to the official Ubuntu site with a walk-through How to install Ubuntu Server on your Raspberry Pi.
    • I went ahead and installed the minimal desktop after getting the RPI on my local network. Then I disabled it as it was in the way for what I wanted to accomplish.
    • Make sure the SSH is enabled. You will need it later if not immediately to do the next steps.
  3. Install Docker: How to Install Docker on Raspberry Pi 4
  4. Login to docker: $ docker login
  5. Build the base and the primary
docker build -t xmo_base:latest ~/repos/Xmo/source/docker/xmo_base
docker build -t xmo:latest ~/repos/Xmo/source/docker/xmo
  • These should be available as a public repo on docker hub at some point in this with a release.

Make sure the ROS2 container executes on the RPI4

You will probably want to do the following on desktop where you have multiple terminal windows open at the same time.

  1. Get a shell on the RPI
  2. Execute the following command:
docker run --rm -it --name ros-test1 -h ros2-1 --network="host" --pid=host --privileged xmo:latest
  • you should now have a prompt in the ROS2 contianer.
  1. Get another shell on the RPI.
  2. Execute the follwoing command:
docker run --rm -it --name ros-test2 -h ros2-2 --network="host" --pid=host --privileged xmo:latest
  1. In one of the terminals execute the following command:
ros2 run demo_nodes_cpp talker
  1. In the other terminal excute the following command:
ros2 run demo_nodes_py listener

You should now have a talker and the listener communicating with each other. You can now exit both terminals by whichever means you desire.

Windows Setup

Follow the install using the guide from ros.org Installing ROS 2 on Windows

I chose to put the base install in c:\dev\ros2_galactic. I had some space issues and installed the Qt libraries on d:\Qt.

I only had one major problem with the install. It is documented in the forms qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""

I solved the error with the following environment settings:

QT_QPA_PLATFORM_PLUGIN_PATH = C:\dev\ros2_galactic\bin\platforms
Qt5_DIR = D:\Qt\5.15.0\msvc2019_64

Update your environment with the following:

ROS_DOMAIN_ID = 27

Development Environment

Docker build

  • Install WSL2
  • Ubuntu
sudo apt update 
sudo apt dist-upgrade

docker-ce

sudo apt 

Source for this: https://www.linux.com/topic/desktop/how-install-docker-ce-your-desktop/ and Preference to this link https://medium.com/@mikejohanson/running-docker-ce-in-wsl2-ed74dac32782

Building/Dev-ing the thing.

Joy

Joy Node Reference

some useful links that need a shoutout when we can

Why a parameter service ain't right with ROS2

YAML for parameters

Naming Conventions

ROS2 Node documentation

xmo's People

Contributors

pulcher avatar

Stargazers

JimFyyc avatar

Watchers

 avatar  avatar

Forkers

jimf99

xmo's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.