Giter Site home page Giter Site logo

linorobot / linorobot Goto Github PK

View Code? Open in Web Editor NEW
957.0 60.0 347.0 11.78 MB

Autonomous ground robots (2WD, 4WD, Ackermann Steering, Mecanum Drive)

Home Page: http://linorobot.org

License: BSD 2-Clause "Simplified" License

C++ 96.53% CMake 0.10% Processing 0.86% C 2.50%
ros agv 2wd 4wd ackermann mecanum-wheel robotics autonomous-vehicles autonomous linorobot

linorobot's Introduction

linorobot Build Status

Linorobot is a suite of Open Source ROS compatible robots that aims to provide students, developers, and researchers a low-cost platform in creating new exciting applications on top of ROS.

You can also check out the ROS2 port of this project linorobot2.

Tutorial

You can read the full tutorial how to build your robot here.

Multiplatform

Supports multiple types of robot base:

  • 2WD
  • 4WD
  • Ackermann Steering
  • Mecanum drive

alt text

Works on:

  • ROS Indigo (Ubuntu 14.04)
  • ROS Kinetic (Ubuntu 16.04)

Hardware

Fabricate your own Teensy 3.1/3.2 shield,

alt textalt text

or wire it on your own. Wiring diagrams are also provided. alt text

Supported IMUs:

  • GY-85
  • MPU6050
  • MPU9150
  • MPU9250

The IMU drivers are based on i2cdevlib.

Supported Motor Drivers:

  • L298 (MAX: 35V, 2A)
  • BTS7960 (MAX: 24V, 43A)
  • Electronic Speed Controllers (ESC) w/ Reverse. This has been tested to control brushless motors used in RC cars and hoverboards.

Supported ROS Compatible Sensors:

  • XV11 Lidar
  • RPLidar
  • YDLIDAR X4
  • Hokuyo (SCIP 2.2 Compliant)
  • Intel RealSense R200
  • Kinect

Tested on Linux compatible ARM dev boards:

  • Raspberry Pi 3/B+
  • Jetson TK1
  • Jetson TX1
  • Odroid XU4
  • Radxa Rock Pro
    **Technically this should also work with any ARM dev board at least (1GB RAM) that runs Ubuntu Trusty or Xenial.

Installation

alt text

git clone https://github.com/linorobot/lino_install && cd lino_install
./install <base> <sensor>

Firmware

Flexible and configurable components. linorobot_ws/teensy/firmware/lib/config/lino_base_config.h

Robot base configuration:

//uncomment the base you're building
#define LINO_BASE DIFFERENTIAL_DRIVE
// #define LINO_BASE SKID_STEER
// #define LINO_BASE ACKERMANN
// #define LINO_BASE ACKERMANN1
// #define LINO_BASE MECANUM

IMU configuration:

//uncomment the IMU you're using
#define USE_GY85_IMU
// #define USE_MP6050_IMU
// #define USE_MPU9150_IMU
// #define USE_MPU9250_IMU

Motor driver configuration:

//uncomment the motor driver you're using
#define USE_L298_DRIVER
// #define USE_BTS7960_DRIVER
// #define USE_ESC

Motor configuration:

//define your robot' specs here
#define MAX_RPM 330               // motor's maximum RPM
#define COUNTS_PER_REV 1550       // wheel encoder's no of ticks per rev
#define WHEEL_DIAMETER 0.10       // wheel's diameter in meters
#define PWM_BITS 8                // PWM Resolution of the microcontroller
#define LR_WHEELS_DISTANCE 0.235  // distance between left and right wheels
#define FR_WHEELS_DISTANCE 0.30   // distance between front and rear wheels
#define MAX_STEERING_ANGLE 0.415  // max steering angle. This only applies to Ackermann steering

Uploading the codes:

cd ~/linorobot_ws/src/linorobot/teensy/firmware
platformio run --target upload

Creating a Map

alt text

Launch base driver:

roslaunch linorobot bringup.launch

Launch mapping packages:

roslaunch linorobot slam.launch

Autonomous Navigation

IMAGE ALT TEXT

Launch base driver:

roslaunch linorobot bringup.launch

Launch navigation packages:

roslaunch linorobot navigate.launch

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.