Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
1. Getting Started
1.1 What you need
1.1.1 Supported laser sensors
- XV11 Lidar
- YDLIDAR X4
- Hokuyo (SCIP 2.2 Compliant)
- Intel RealSense R200
1.1.2 Supported IMUs
- 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)
- Raspberry Pi 3/B+
- Odroid XU4
- Jetson TK1
- Jetson TX1
- Radxa Rock Pro
1.1.5 Supported Motor Drivers
- Electronic Speed Controller (ESC) w/ Reverse. This has been tested on brushless motors used in RC cars and hoverboard motors.
- 2 x Motors with encoders (2WD/ACKERMANN)
- 4 X Motors with encoders (4WD/MECANUM)
- 2 x Wheels (2WD)
- 1 x Caster Wheel (2WD)
- 4 x Wheel (4WD/MECANUM/ACKERMANN)
- 1 x 3/4 Cell LiPo Batteries
- Voltage Converters (depends on the devboard and sensors you use)
- 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
- ROS Kinetic Installation on Ubuntu desktop/laptop (AMD/x86)
- ROS Kinetic Installation on Ubuntu ARM (Make sure you install ros-kinetic-ros-base)
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
./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:
export ROS_MASTER_URI=http://<robot-ip>:11311 export ROS_HOSTNAME=<robot-ip>
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.
echo "export ROS_MASTER_URI=http://<robot-ip>:11311" >> ~/.bashrc echo "export ROS_HOSTNAME=<robot-ip>" >> ~/.bashrc
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.
Copy the saved udev rules to /etc/udev/rules.d:
sudo cp 58-lino.rules /etc/udev/rules.d/58-lino.rules
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.