Skip to content

1. Getting Started

Juan Miguel Jimeno edited this page Sep 18, 2018 · 26 revisions

1.1 What you need

1.1.1 Supported laser sensors

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

1.1.2 Supported IMUs

  • GY-85
  • MPU6050
  • MPU9150
  • MPU9250

1.1.3 Micro-controller

  • Teensy 3.1/3.2, 3.5/3.6

1.1.4 Linux computer

  • Ubuntu installed laptop (for development)

  • Ubuntu install ARM based dev board (for the robot)

  • Tested Boards:

    • Raspberry Pi 3/B+
    • Odroid XU4
    • Jetson TK1
    • Jetson TX1
    • Radxa Rock Pro

1.1.5 Supported Motor Drivers

  • L298
  • BTS7960
  • Electronic Speed Controller (ESC) w/ Reverse. This has been tested on brushless motors used in RC cars and hoverboard motors.

1.1.6 Motor

  • 2 x Motors with encoders (2WD/ACKERMANN)
  • 4 X Motors with encoders (4WD/MECANUM)

1.1.7 Wheels

  • 2 x Wheels (2WD)
  • 1 x Caster Wheel (2WD)
  • 4 x Wheel (4WD/MECANUM/ACKERMANN)

1.1.8 Batteries

  • 1 x 3/4 Cell LiPo Batteries
  • Voltage Converters (depends on the devboard and sensors you use)

1.1.9 Miscellaneous

  • 1 x Wood or Acrylic sheet for the robot base
  • 1 x Set of connecting wires
  • 1 x Breadboard or Teensy Shield

1.2 ROS Installation

Install the ROS distro depending on your Ubuntu release.

ROS Indigo - Ubuntu 14.04

ROS Kinetic - Ubuntu 16.04

Alternatively you can run the install script. Run the following on your robot's computer and development computer. The script will automatically detect your machine's architecture and Ubuntu release to install the compatible ROS Distro for your machine.

git clone https://github.com/linorobot/rosme
cd rosme
./install

After ROS installation, create and configure your ROS environment.

ROS needs to know which catkin workspace you want to use to find the right packages and dependencies. It would be convenient to automate this every time you open a new terminal.

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

1.3 Linorobot Installation

Once you have installed ROS on both computers, install Linorobot's packages and dependencies.

SSH to your robot's computer and clone the install package:

cd
git clone https://github.com/linorobot/lino_install
cd lino_install

For Raspberry Pis it is recommended to have a swap file to prevent the initial build from failing. You can disable this once the installation is done.

sudo apt-get install dphys-swapfile

Run the install file where:

base = 2wd, 4wd, ackermann, mecanum

sensor = xv11, rplidar, ydlidar, hokuyo, kinect, realsense

./install base sensor

example:

./install 2wd xv11

Do take note that for IP based Hokuyo lidars, you will be prompted to key in the IP address (Default: 192.168.0.10). For USB based Hokuyo lidars, press 'Enter' to skip.

On your development computer, install the packages you need for configuration and visualization:

cd ~/catkin_ws/src
git clone https://github.com/linorobot/lino_pid.git
git clone https://github.com/linorobot/lino_msgs.git
git clone https://github.com/linorobot/lino_visualize.git
sudo apt-get install ros-$(rosversion -d)-teleop-twist-keyboard
cd .. && catkin_make

1.4 Network Setup

Configure your ROS network so your development computer knows where the ROS Master(robot's computer) is within your local network. First, find out the ip-address of your robot's computer and development computer:

ifconfig

Robot's computer:

export ROS_MASTER_URI=http://<robot-ip>:11311
export ROS_HOSTNAME=<robot-ip>

Development computer:

export ROS_MASTER_URI=http://<robot-up>:11311
export ROS_HOSTNAME=<devcom-ip>

You can automate this process so you don't have to re-do it every time you open a new terminal.

Robot's computer:

echo "export ROS_MASTER_URI=http://<robot-ip>:11311" >> ~/.bashrc
echo "export ROS_HOSTNAME=<robot-ip>" >> ~/.bashrc

Development computer:

echo "export ROS_MASTER_URI=http://<robot-ip>:11311" >> ~/.bashrc
echo "export ROS_HOSTNAME=<devcom-ip>" >> ~/.bashrc

Take note that once the ip-address of the machine has changed, you need to reconfigure your ROS_MASTER_URI and ROS_HOSTNAME again.

1.5 uDev Rules

The serial ports for the lidar and the Teensy board are defined using its static names on the roslaunch files. In order for the serial ports to be remembered and linked to its static names, a uDev rule must be created (except for Kinect and RealSense). Run Linorobot's uDev tool on the robot's computer:

rosrun lino_udev lino_udev.py

Plug in the Teensy board and key in "linobase". Do the same thing for the lidar and name it as "linolidar". Save your uDev rules by pressing CTRL+C.

udev

Copy the saved udev rules to /etc/udev/rules.d:

sudo cp 58-lino.rules /etc/udev/rules.d/58-lino.rules

Restart udev:

sudo service udev reload
sudo service udev restart

Confirm if the uDev rules worked:

ls /dev/linobase
ls /dev/linolidar

If the serial ports cannot be detected, restart the robot's computer and check again. Take note that freshly shipped Teensy boards has to be be programmed once before you can see its ports. Proceed to Base Controller to upload the firmware.

2. Base Controller

Installation's done. You can start building your Base Controller.