Auto exploration with navigation

Skill LevelArea of FocusOperating SystemPlatform/Hardware
IntermediateEmbedded, RoboticsUbuntu / Ubuntu CoreQualcomm Robotics RBx Dev Kit

This project is designed to run frontier-based exploration on the Qualcomm® Robotics RB5 Development Kit, which is an artificial intelligence (AI) board for makers, learners, and developers. It is based on the Qualcomm® QRB5165 SoC, which is the new generation premium-tier processor for robotics applications. It is designed with the 7 nm process for superior performance and power efficiency.

In this project, when the ROS node is running, the robot will explore its environment until no frontiers could be found. Applications like these can be designed to automatically build a navigation map.

The main objective for this project is to get familiar with Qualcomm Robotics RB5 development kit, ROS and navigation packages. The project is designed to help developers jumpstart creating their smart autonomous robots, which starts by mapping their environment.

This project uses the Qualcomm Robotics RB5 development kit, which is mounted on the Turtlebot3 and drives the motors through the OpenCR board. The steps below walk you through the setup process for various components used in the project.

1. Assemble the Hardware

The following steps will help you assemble the Turtlebot, OpenCR board and the Qualcomm Robotics RB5 development kit.

Parts used

Parts used in the project

How to make Power Cable

How to make the power cable for the robotics kit

Power Connection

Power connections

USB Connection

USB Connections

Assembly

First Layer Assembly

Assemble first layer of Turtlebot3 Waffle

Second Layer Assembly

Mount OpenCR and Qualcomm Robotics RB5 development kit

Third Layer Assembly

Mount the Lidar sensor

Overall Assembly

Complete Assembly for Qualcomm Robotics RB5 development kit

2. OpenCR setup

The Turtlebot3 is controlled by the OpenCR board. Here is the link of the detailed steps to download and upgrade firmware for ROS1.

http://emanual.robotis.com/docs/en/platform/turtlebot3/opencr_setup/

For short, see below steps.

[email protected]:/# export OPENCR_PORT=/dev/ttyACM0
[email protected]:/# export OPENCR_MODEL=waffle_pi
[email protected]:/# rm -rf ./opencr_update.tar.bz2
[email protected]:/# wget https://github.com/ROBOTIS-GIT/OpenCR-Binaries/raw/master/turtlebot3/ROS1/latest/opencr_update.tar.bz2 && tar -xvf opencr_update.tar.bz2 && cd ./opencr_update && ./update.sh $OPENCR_PORT OPENCR_MODEL.opencr && cd.

3. Qualcomm Robotics RB5 kit setup

3.1 Enable Wi-Fi on Qualcomm Robotics RB5 development kit

change this file with your local wifi's name and password:

# Only WPA-PSK is used. Any valid cipher combination is accepted.
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="SSID_NAME"
#proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP CCMP
group=TKIP CCMP
psk="PASSWD"
}

3.2 Install ROS1.0 core packages on Qualcomm Robotics RB5 development kit

3.2.1 Set location

[email protected]:/# apt update
[email protected]:/# apt-get -y install locales iperf
[email protected]:/# export LANGUAGE=en_US.UTF-8
[email protected]:/# export LANG=en_US.UTF-8
[email protected]:/# locale-gen en_US en_US.UTF-8
[email protected]:/# update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

3.2.2 Install ROS Melodic

More details can refer http://wiki.ros.org/melodic/Installation/Ubuntu

[email protected]:/# sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
[email protected]:/# apt update
[email protected]:/# sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
[email protected]:/# sudo apt update
[email protected]:/# sudo apt install ros-melodic-desktop

3.2.3 Install ROS1.0 turtlebot3 and navigation packages

Download ROS1 packages and compile on device

1) turtlebot3 packages

[email protected]:/# mkdir /home/rb5/ros_ws/src -p
[email protected]:/# cd /home/rb5/ros_ws/src
[email protected]:/# git clone https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git
[email protected]:/# cd hls_lfcd_lds_driver
[email protected]:/# git branch melodic-devel remotes/origin/melodic-devel
[email protected]:/# git checkout melodic-devel
[email protected]:/# cd /home/rb5/ros_ws/src
[email protected]:/# git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
[email protected]:/# cd turtlebot3_msgs
[email protected]:/# git branch melodic-devel remotes/origin/melodic-devel
[email protected]:/# git checkout melodic-devel
[email protected]:/# cd /home/rb5/ros_ws/src
[email protected]:/# git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
[email protected]:/# cd turtlebot3
[email protected]:/# git branch melodic-devel remotes/origin/melodic-devel
[email protected]:/# git checkout melodic-devel

2) rosserial

[email protected]:/# cd /home/rb5/ros_ws/src
[email protected]:/# git clone https://github.com/ros-drivers/rosserial.git
[email protected]:/# cd rosserial
[email protected]:/# git branch melodic-devel remotes/origin/melodic-devel
[email protected]:/# git checkout melodic-devel

3) navigation

[email protected]:/# cd /home/rb5/ros_ws/src
[email protected]:/# git clone https://github.com/ros-planning/navigation.git
[email protected]:/# git clone https://github.com/ros-planning/navigation_msgs.git

4) gmapping

[email protected]:/# cd /home/rb5/ros_ws/src
[email protected]:/# git clone https://github.com/ros-perception/slam_gmapping.git
[email protected]:/# git clone https://github.com/ros-perception/openslam_gmapping.git

5) build all the packages

[email protected]:/# apt-get install ros-melodic-tf2-geometry-msgs ros-melodic-tf2-sensor-msgs
[email protected]:/# cd /home/rb5/ros_ws/
[email protected]:/# source /opt/ros/melodic/setup.bash
[email protected]:/# catkin_make

4. PC setup

Install ROS on Ubuntu 18.04 PC for visualization with Melodic version. For more details, please see: http://wiki.ros.org/melodic/Installation/Ubuntu

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
apt update
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop
sudo apt-get install ros-melodic-turtlebot3-*

5. Install explore_lite packages

[email protected]:/# cd /home/rb5/ros_ws/src
[email protected]:/# git clone https://github.com/hrnr/m-explore.git
[email protected]:/# cd m-explore
[email protected]:/# git branch melodic-devel remotes/origin/melodic-devel

Run ROS packages for auto explore

a) On Qualcomm Robotics RB5 Development kit, Open a terminal and restart sshd

[email protected]:/# /etc/init.d/sshd restart

b) open a new terminal to ssh login

ssh [email protected] (example: ssh [email protected])

c) in ssh terminal

[email protected]:/# export ROS_MASTER_URI=http://192.168.1.xxx:11311
[email protected]:/# export ROS_IP=192.168.1.xxx
[email protected]:/# export ROS_HOSTNAME=192.168.1.xxx
[email protected]:/# source /home/rb5/ros_ws/devel/setup.bash
[email protected]:/# export TURTLEBOT3_MODEL=waffle_pi
[email protected]:/# roslaunch turtlebot3_bringup turtlebot3_robot.launch
[email protected]:/# roslaunch turtlebot3_navigation turtlebot3_navigation.launch
[email protected]:/# roslaunch /home/rbt/ros_ws/src/m-explore/explore/launch/explore.launch

d) On the host PC, open a new terminal and launch Rviz

source /opt/ros/melodic/setup.bash
export ROS_MASTER_URI=http://192.168.1.xxx:11311
export ROS_IP=192.168.1.xxx
export ROS_HOSTNAME=192.168.1.xxx
rviz -d /opt/ros/melodic/share/turtlebot3_navigation/rviz/turtlebot3_navigation.rviz

Tutorial Video

Screenshots/pictures of expected result

robot scan result while exploringfrontiers showing with rviz while exploringfrontiers showing with rviz while exploring

Qualcomm Robotics RB5 is a product of Qualcomm Technologies, Inc. and/or its subsidiaries.

NameTitle/Company
Jun LiuQualcomm Communication Technologies (Shenzhen) Co., Ltd.