Giter Site home page Giter Site logo

2019_ba-greger_mqtt's Introduction

Genode CarControl

TODO

  • the mbl_client.cc file is missing the control of the motor (your job @dk87)

Repository structure

.
+-- include
|   +-- ...
+-- run
|   +-- stuff.run          /* sample run file containing all apps and configuration parameter
+-- src
|   +-- app
|   |   +-- acc            /* the acc unit (logic) */
|   |   |   +-- ...
|   |   +-- mbl_adapter    /* adapter app for the Roboteq MBL1650C Motor Controller (converting values from the simulation for the client */
|   |   |   +-- ...
|   |   +-- mbl_client     /* client app for the Roboteq MBL1650C Motor Controller (controlling the motor) */
|   |   |   +-- ...
|   |   +-- savm           /* the savm application (communication unit between the mqtt network and the simulation) */
|   |   |   +-- ...
|   |   +-- servo_adapter  /* adapter app for the servos (converting values from the simulation for the client) */
|   |   |   +-- ...
|   |   +-- servo_client   /* client app for the servos (controlling the servos) */
|   |   |   +-- ...

Prerequisites

Build Walkthrough

  1. Follow the instructions in the documentation (skip the last step make jenkins_run)

  2. Clone the genode-world under genode/repos (assuming you are in the operating-system directory)

git clone https://github.com/argos-research/genode-world.git genode/repos/genode-world
cd genode/repos/genode-world
git checkout protobuf_3.5.0

2.1 Clone the pololu Servo Controller

git clone https://github.com/argos-research/genode-pololuServoController.git genode/repos/genode-pololuServoController
  1. Clone this repository into genode/repos (assuming you are in the operating-system directory)
git clone https://github.com/dk87/genode-CarControl.git genode/repos/genode-CarControl
  1. Create a build directory for a rpi, pbxa9 and a panda build
GENODE_TARGET=focnados_rpi make jenkins_build_dir
GENODE_TARGET=focnados_panda make jenkins_build_dir
GENODE_TARGET=focnados_pbxa9 make jenkins_build_dir
  1. Edit the etc/build.conf in each build directory by adding the following lines
REPOSITORIES += $(GENODE_DIR)/repos/genode-world
REPOSITORIES += $(GENODE_DIR)/repos/genode-CarControl
REPOSITORIES += $(GENODE_DIR)/repos/genode-pololuServoController
  1. Prepare the missing ports by executing (again in operating-system directory)
./genode/tool/ports/prepare_port libmosquitto openssl libprotobuf
  1. Trigger the compilation
make -C build/genode-focnados_rpi app/servo_client app/mbl_client
make -C build/genode-focnados_panda app/servo_adapter app/mbl_adapter
make -C build/genode-focnados_pbxa9 app/savm app/acc

Run-time Instructions

  1. Use the ACC branch of speed-dreams (ref.)
  2. Configure a race to consist of two bots, with the ACC driver in the second position
  3. Start a mosquitto server
  4. Bring up all applications (acc, mbl_adapter, mbl_client, servo_adapter, servo_client) except for the savm
  5. Start the savm application
  6. Speed-dreams should continue loading and start the race
  7. Watch the magic happen

Flow Diagram

General

flow_diagram.png

Additional information

  • SpeedDreams uses the 9002 port by default and acts as a server

2019_ba-greger_mqtt's People

Contributors

irgendwie avatar dk87 avatar

Watchers

James Cloos avatar

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.