ROS1 repository in the https://github.com/Pet-Series Git-Organizations.
Containing multiply ROS1-packages.
The main objective/scope for this repository is to control the part of the software (and parameter settings) that is unique for this Pet Mark IV (four) robot.
- Simplification: As MCU we mainly using Arduino compatible hardware, like Arduino UNO and Arduino NANO. Each MCU act as an ROS1-serial device.
- Standardisation: As system integration tool (Middle ware) we use ROS1 ronning on a Raspberry PI 3 with Linux/Raspian.
- Modularisation: We have tried to make the code as generic/common as possible.
- Cheap: Reuse left owers as much as possible.
See more: https://github.com/Pet-Series/pet_mk_iv_simulation.git
View from Gazebo |
View from RViz |
View from RViz (with Links/TF) |
- Visual Studio Code@ Local PC: https://code.visualstudio.com/
- SSH authentication vs. ECU/SBC
- Raspberry PI model 3 Raspbian Buster (Debian Buster 10)
- ROS Melodic Ubuntu Bionic (but we compile from source anyway on the RPi/Raspbian).
- cmake for building ROS via catkin/cmake
- cmake for building Arduino firmware/sketches
- Python 2 (using various ROS-API)
- Arduino IDE (Not for the IDE itself... mainly for get/manage IDE-libraries).
- Arduino Library:
- ROS-serial Library for Arduino: https://www.arduinolibraries.info/libraries/rosserial-arduino-library
- Servo Library for Arduino: https://github.com/arduino-libraries/Servo
- IRremote Library for Arduino: https://github.com/Arduino-IRremote/Arduino-IRremote
- NewPing Ultrasonic sensor Library for Arduino: https://bitbucket.org/teckel12/arduino-new-ping/wiki/
- cmake upload firmware from RPi > Arduino system (No use of Arduino IDE)
- SSH authentication vs. Github repositories
- Clone of Git-repo:
$ git clone https://github.com/Pet-Series/Pet-Mk-IV.git
<- This repo!$ git clone https://github.com/Pet-Series/pet_mcu_common.git
$ git clone https://github.com/Pet-Series/ros_lcd_driver.git
- Arduino UNO R3 via serial/USB-cable -> RPi
- Firmware:
- Arduino Nano via serial/USB-cable -> RPi
- Firmware:
...
- Main ECU/CPU's: Raspberry Pi 3
- Power by: 1x USB Power bank 1.5A
- Display: LCD 1602 via I2C interface: PC8574T
- Sensor: IMU GY-521/MPU6050(6 axis) via I2C
- Sensor: Camera RPi Camera module 1.0
- USB Power bank 1.5A
- Sub-ECU #1: Arduino UNO R3
- Power by: Via RPi (1x USB Power bank 1.5A)
- Sensor: 3x HC-SR04 ultrasonic ranging sensor for Obstacle detection
- Sensor: 3x CTRT5000 Infrared sensors for tracing
- Engine controller: L298N Dual H Bridge Step/DC-motor controller
- Auxiliary-ECU #2: Arduino Nano
- Power by: Chassis battery pack
- Sensor: 1x KY-022(1838T) Infrared(IR) receiver
- Flash light Flash/Strobe light
- Chassis: Zumo with belt drive
- Power source: 6x AAA-batteries (4+2 config => 6*1,2V=7,2V)
- Engines: 2x Electrical engines (Controlled via "L298N Dual H Bridge"@Sub-ECU #1: Arduino UNO R3)
Circuit Diagram - UNO |
Circuit Diagram - NANO |
Circuit Diagram - RPi |
PowerDistributionSchema |
PowerDistributionBoard |
- More images: /doc
Buzzword | My interpretation |
---|---|
ECU | Electronic Control Unit |
IDE | Integrated_Development_Environment |
MCU | Micro Control Unit |
Pet | Not an abbreviation. Simply names of our virtual pets (aka. Robots) |
ROS | Robot Operating System |
ROSserial | core of rosserial for ROS |
SBC | Single Board Computer |
For my own convenience - Some GitHub cheat sheets