Skip to the content
PCBKitNew board
2 layersRobot MGR, the printed circuit board in 3D

ROS driver for the Raspberry Pi based differential drive robot

Copper layers
2
Thickness
1.6 mm
Parts
95
Nets
62
Pads
219
Tracks, vias
541, 0
Pours
17
Routed
Yes
KiCad
KiCad 4
Created
15 Aug 2018
Updated
15 Aug 2018

Overview

Robot MGR is an open-source printed circuit board by rayvburn, from the rayvburn/diff_drive_mapping_robot repository on GitHub. It is a 2-layer board with 95 parts on 62 nets, routed with 541 tracks and 0 vias.

It is built around the XL4016E1, LD1117S33TR(MS) and MX1508. Its parts include 40 connectors, 31 resistors, 14 capacitors, 6 transistors and 1 IC. It belongs with the robots and motor control boards of this library.

Main components

3

README

README.md

diff_drive_mapping_robot

This is the ROS driver for the Raspberry Pi based differential drive robot that was built as a part of my MSc thesis.

Base of the robot was made of acrylic glass. The locomotion is provided by 3 wheels, including 1 caster. The two-wheel differential drive based on DC motors makes the machine nonholonomic.

Within the electronic part of the robot's construction, a printed circuit board was designed. All the necessary electronical components including reflective sensors used to measure the distance from obstacles were placed on the board. The sensor providing the largest amount of data is the camera. It is integrated with the Raspberry Pi microcomputer. The extension of the microcomputer's tasks to the reading of wheel positions and motor control allowed to use its resources efficiently and to avoid adding an extra microcontroller.

Looking at the PCB project (made in KiCad) should give you some idea what components to use if you plan to make a copy of it.

The robot is intended to work together with remote machine like PC that performs some more sophisticated duties. It was created to interface with ORB-SLAM2 well.

Installation instructions

The package contents should be placed and compiled both on PC and on RPi's SD card. It was tested only on ROS Kinetic (running on Ubuntu 16.04).

wiringPi library is needed (http://wiringpi.com/). A script to install it on Raspberry Pi was provided.

raspicam_node (https://github.com/UbiquityRobotics/raspicam_node) is required if you will use Raspberry Pi camera but isn't marked as dependency for the package. If you don't plan to use it, just remove appropriate line in robot/robot_offline .launch file (the one with inclusion of raspicam_node's .launch).

Usage

If a Raspberry Pi is present within a local Wi-Fi network

text
roslaunch diff_drive_mapping_robot robot.launch

or for testing purposes (no RPi)

text
roslaunch diff_drive_mapping_robot robot_offline.launch

Notes

I highly recommend acquiring an Ubuntu image adequate for Raspberry Pi (with ROS Kinetic already installed) from here: https://downloads.ubiquityrobotics.com/pi.html

Parts

95
QtyValueFootprintReferences
12ZworkaPin_Headers:Pin_Header_Straight_1x02_Pitch2.54mmJ15, J16, J17, J18, J19, J20, J23, J24, J26, J27, J29, J30
111kResistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR4, R11, R16, R18, R19, R22, R23, R25, R26, R28, R30
610kResistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1, R3, R8, R10, R13, R15
42,2kResistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR6, R7, R20, R21
420 nFCapacitors_THT:CP_Radial_Tantal_D5.0mm_P2.50mmC5, C6, C7, C8
42kResistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR24, R27, R29, R31
31000 uF / 25VCapacitors_THT:CP_Radial_D10.0mm_P5.00mmC1, C9, C10
3100RResistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2, R9, R14
3470 nF / 50VCapacitors_THT:CP_Radial_Tantal_D5.0mm_P2.50mmC2, C3, C4
3???RResistors_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5, R12, R17
3Q_NMOS_SGDTO_SOT_Packages_THT:TO-92_Inline_WideQ1, Q4, Q6
3Q_PNP_CBETO_SOT_Packages_THT:TO-92_Inline_WideQ2, Q5, Q7
2100nF / 50VCapacitors_THT:C_Disc_D3.8mm_W2.6mm_P2.50mmC11, C14
233uF / 63VCapacitors_THT:CP_Radial_D6.3mm_P2.50mmC12, C13
1AkumulatorXT60:XT60J4
1Akumulator_BMConnectors_JST:JST_XH_B03B-XH-A_03x2.50mm_StraightJ6
1DiodaB_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ3
1DiodaG_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ7
1DiodaRGBConnectors_JST:JST_EH_B04B-EH-A_04x2.50mm_StraightJ1
1DiodaR_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ10
1Enkoder1Connectors_JST:JST_EH_B04B-EH-A_04x2.50mm_StraightJ25
1Enkoder2Connectors_JST:JST_EH_B04B-EH-A_04x2.50mm_StraightJ14
1EnkoderA1_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ21
1EnkoderA2_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ5
1EnkoderB1_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ22
1EnkoderB2_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ12
1HBridgeInputsPin_Headers:Pin_Header_Straight_1x04_Pitch2.54mmJ28
1HX-2S-01_5AHX-2S-01_5A:HX-2S-01_5ABMS1
1IR1Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mmJ33
1IR1_Out_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ31
1IR2Pin_Headers:Pin_Header_Straight_1x04_Pitch2.54mmJ34
1IR2_Out_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ32
1LD1117S33TRTO_SOT_Packages_THT:TO-220-3_VerticalU1
1MX1508MX1508:MX1508HBridge1
1MotorATerminalBlock_Philmore:TerminalBlock_Philmore_TB132_02x5mm_StraightJ8
1MotorBTerminalBlock_Philmore:TerminalBlock_Philmore_TB132_02x5mm_StraightJ9
1NapiecieAkumulatora_RPiPin_Headers:Pin_Header_Straight_1x01_Pitch2.54mmJ40
1SonarRAW1Connectors_JST:JST_XH_B04B-XH-A_04x2.50mm_StraightJ13
1SonarRAW2Connectors_JST:JST_XH_B04B-XH-A_04x2.50mm_StraightJ35
1SonarRAW3Connectors_JST:JST_XH_B04B-XH-A_04x2.50mm_StraightJ36
1SonarRPi1Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mmJ39
1SonarRPi2Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mmJ37
1SonarRPi3Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mmJ38
1WylacznikGlownyTerminalBlock_Philmore:TerminalBlock_Philmore_TB132_02x5mm_StraightJ11
1XL4016XL4016:XL4016BuckConverter1
1ZasilanieRaspberryTerminalBlock_Philmore:TerminalBlock_Philmore_TB132_02x5mm_StraightJ2

Questions

What parts does the Robot MGR use?

95 parts, built around the XL4016E1, LD1117S33TR(MS) and MX1508. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Robot MGR KiCad files?

From the rayvburn/diff_drive_mapping_robot repository on GitHub, at the commit this page was made from: the board is PCB - KiCad/Robot_MGR/Robot_MGR.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Robot MGR design in my own project?

Its repository states no licence, so its author keeps all rights: ask rayvburn before reusing the design.

Similar boards

  • 2 layers299 × 82.5 mmPixelWave, the printed circuit board in 3D

    PixelWave

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    663 parts915
  • 2 layers134.5 × 70 mm6dof, the printed circuit board in 3D

    6dof

    Ramahabir/6-DOF-Robotics-Arm-Dynamixel

    Open-source 6-DOF robot arm controller using STM32F411, Dynamixel servos, custom KiCad PCB, PWM gripper control, data logging, and planned ESP32-C3 wireless communication.

    17 parts19MIT
  • 2 layers146.2 × 99 mmFPVRover, the printed circuit board in 3D

    FPVRover

    Circuit-Digest/ESP32-Cam-Surveillance-Car

    Watch full video on ESP32 surveillance car

    35 parts15
  • 4 layers27.5 × 14.5 mmFRReceiverLVH, the printed circuit board in 3D

    FRReceiverLVH

    shaise/OpenSky328

    An atmel implementation of OpenSky FrSky-compatible RX

    33 parts13GPL-3.0
  • 2 layers100 × 100 mmBase esp32, the printed circuit board in 3D

    Base esp32

    jalmx/base_esp32

    Base for esp32 to connect IO

    107 parts2MIT
  • 2 layers85.5 × 51 mmBenchpsu, the printed circuit board in 3D

    Benchpsu

    3stan-H/Bench-Power-Supply

    A mains-powered, adjustable bench power supply designed in KiCad, converting 120V AC wall input into a regulated 1–20V DC output.

    33 parts
  • 2 layers299 × 82.5 mmPixelWave, the printed circuit board in 3D

    PixelWave

    Badbird5907/PixelWave

    663 parts