-
Notifications
You must be signed in to change notification settings - Fork 352
1. Getting Started
- XV11 Lidar
- RPLidar
- YDLIDAR X4
- Hokuyo (SCIP 2.2 Compliant)
- Intel RealSense R200
- Kinect
- GY-85
- MPU6050
- MPU9150
- MPU9250
- Teensy 3.1/3.2, 3.5/3.6
-
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
- L298
- BTS7960
- 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
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
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
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.
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
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.
Installation's done. You can start building your Base Controller.