-
Notifications
You must be signed in to change notification settings - Fork 0
Turtlebot2 Build
Here we've documented how to get a Raspberry PI (RPI, 3B+) up and running with a Turtlebot 2
We use the following components:
- Kobuki base
- MS Kinect
- Robopeak laser scanner
- Raspberry Pi3, 3B+
- Pi Camera
- Use a battery: this is how we currently do it.
- Battery is 5000 mAh, 5V 2A. Connection to the RPI is via USB.
- Otherwise you can power the RPI using a cable connected to the kobuki base. See more here:
- There is further detail on the base (Kobuki) power setup here.
There are a number of images out there that already have ROS baked in. We decided to go with these but some of them do not work with the RPI 3B+
- With ROS
- UBQ: https://cdn.ubiquityrobotics.net/2018-06-27-ubiquity-xenial-lxde-raspberry-pi.img.xz
- works fine
- kinetic installed, some ubiquity stuff to be removed
- networking. there are issues here but most are resolved when you
- remove the pifi access point configuration
- works fine
- RAPYUTA: https://storage.googleapis.com/io-reference-bsp-images/raspberrypi/ubuntu/2018-07-18-rapyuta-robotics-xenial-ros-raspberry-pi-arm64.img.xz
- no wireless enabled made this a no runner for us
- UBQ: https://cdn.ubiquityrobotics.net/2018-06-27-ubiquity-xenial-lxde-raspberry-pi.img.xz
We also tried images that did not have ROS installed.
- RPI: http://director.downloads.raspberrypi.org/raspbian/images/raspbian-2018-06-29/2018-06-27-raspbian-stretch.zip
- works but is not ubuntu. This makes it difficult to integrate with the ROS world which is largely ubuntu based.
- MATE: https://ubuntu-mate.org/raspberry-pi/ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz
- as downloaded not rpi3B+ compatible - update firmware required
Once the image was installed the following commands were issued: * run rpi-update * run apt-get update && apt-get -y upgrade
Then the RPI hardware was customised with raspi-config
- enable camera
- enable ssh
- disable desktop environment once all config is done
- memory split - 32 or 64M
As the RPI has limited memory we then disabled a set of running services that were not needed:
sudo systemctl disable magni-base.servicesudo systemctl disable roscore.servicesudo systemctl disable pifi.servicesudo systemctl disable sshguard.servicesudo systemctl disable nginx.servicesudo systemctl disable triggerhappy.servicesudo systemctl disable cups.socketsudo systemctl disable cups.servicesudo systemctl disable cups-browsed.service
There were a set of additional ROS packages that needed to be installed:
sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi ros-kinetic-ar-track-alvar-msgs ros-kinetic-kobuki* ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-turtlebot-simulator ros-kinetic-kobuki-ftdi ros-kinetic-rocon-remocon ros-kinetic-rocon-qt-library ros-kinetic-ar-track-alvar-msgs ros-kinetic-kobuki-core ros-kinetic-openni-*
Once all the basics were complete the following ROS specific install steps were carried out
mkdir catkin_ws
git clone https://github.com/robopeak/rplidar_ros.git ~/catkin_ws/src/icclab_turtlebot/rplidar_ros
git clone https://github.com/icclab/icclab_turtlebot.git -b kinetic ~/catkin_ws/src/icclab_turtlebot
cd ~/catkin_ws && catkin_make
Below are the set of tests that were run in order to ensure that the install was ok:
- RPI camera is ok
raspistill -o image.jpg
- mobile_base is ok - tested - note errors below
roslaunch turtlebot_bringup minimal.launchroslaunch turtlebot_teleop keyboard_teleop.launch
- kinect is ok - tested via
roslaunch turtlebot_bringup 3dsensor.launch
- map acquisition is ok
roslaunch turtlebot_rviz_launchers view_navigation.launch
- map saving is ok
rosrun map_server map_saver -f ~/map1
- Auto-nav is ok
roslaunch turtlebot_navigation amcl_demo.launch map_file:=/tmp/my_map.yamlroslaunch turtlebot_rviz_launchers view_navigation.launch --screen
- Battery status is not working
rostopic echo /laptop_charge
- rplidar
- install and build from: https://github.com/robopeak/rplidar_ros
- usb device:
ttyusb1(without using udev remapping)- you need to setup the usb mapping
roslaunch rplidar_ros test_rplidar.launch
- icclab_turtlebot2
- on bot:
roslaunch icclab_turtlebot minimal_with_rplidar.launch- was errors with zeroconf - disable it
- on iva:
roslaunch icclab_turtlebot amcl_icclab.launch map_file:=/home/ubuntu/catkin_ws/src/icclab_turtlebot/icclab_latest_map.yaml initial_pose_x:=1.395 initial_pose_y:=5.806 initial_pose_a:=-2.506- You can also use the default package:
roslaunch turtlebot_navigation amcl_demo.launch map_file:=/home/ubuntu/catkin_ws/src/icclab_turtlebot/icclab_latest_map.yaml initial_pose_x:=1.395 initial_pose_y:=5.806 Ainitial_pose_a:=-2.506
- You can also use the default package:
- on laptop:
roslaunch turtlebot_rviz_launchers view_navigation.launch —screen- Note: this works best on a linux workstation/laptop. Working on Mac is a difficult task (ROS is not well supported there).
- on bot:
These are (safely?) ignored
* [ERROR] [1539603755.712074911]: Kobuki : Timed out while waiting for serial data stream [/mobile_base].
* [ERROR] [1539603764.023063942]: Kobuki : malformed sub-payload detected. [91][170][5B AA 55 4D 01 0F 8C B7 00 00 00 7E 04 FE 03 00 ]
* [ERROR] [1539603767.458549610]: Kobuki : malformed sub-payload detected. [18][170][12 AA 55 4D 01 0F FC C4 00 00 00 7E 04 ]
* [ERROR] [1539603803.859147488]: Kobuki : malformed sub-payload detected. [231][170][E7 AA 55 4D 01 0F 68 53 00 00 00 7E 04 FE 03 00 ]