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.

root@qrb5165-rb5:/# export OPENCR_PORT=/dev/ttyACM0
root@qrb5165-rb5:/# export OPENCR_MODEL=waffle_pi
root@qrb5165-rb5:/# rm -rf ./opencr_update.tar.bz2
root@qrb5165-rb5:/# 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

root@qrb5165-rb5:/# apt update
root@qrb5165-rb5:/# apt-get -y install locales iperf
root@qrb5165-rb5:/# export LANGUAGE=en_US.UTF-8
root@qrb5165-rb5:/# export LANG=en_US.UTF-8
root@qrb5165-rb5:/# locale-gen en_US en_US.UTF-8
root@qrb5165-rb5:/# 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

root@qrb5165-rb5:/# sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
root@qrb5165-rb5:/# apt update
root@qrb5165-rb5:/# sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
root@qrb5165-rb5:/# sudo apt update
root@qrb5165-rb5:/# 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

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

2) rosserial

root@qrb5165-rb5:/# cd /home/rb5/ros_ws/src
root@qrb5165-rb5:/# git clone https://github.com/ros-drivers/rosserial.git
root@qrb5165-rb5:/# cd rosserial
root@qrb5165-rb5:/# git branch melodic-devel remotes/origin/melodic-devel
root@qrb5165-rb5:/# git checkout melodic-devel

3) navigation

root@qrb5165-rb5:/# cd /home/rb5/ros_ws/src
root@qrb5165-rb5:/# git clone https://github.com/ros-planning/navigation.git
root@qrb5165-rb5:/# git clone https://github.com/ros-planning/navigation_msgs.git

4) gmapping

root@qrb5165-rb5:/# cd /home/rb5/ros_ws/src
root@qrb5165-rb5:/# git clone https://github.com/ros-perception/slam_gmapping.git
root@qrb5165-rb5:/# git clone https://github.com/ros-perception/openslam_gmapping.git

5) build all the packages

root@qrb5165-rb5:/# apt-get install ros-melodic-tf2-geometry-msgs ros-melodic-tf2-sensor-msgs
root@qrb5165-rb5:/# cd /home/rb5/ros_ws/
root@qrb5165-rb5:/# source /opt/ros/melodic/setup.bash
root@qrb5165-rb5:/# 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

root@qrb5165-rb5:/# cd /home/rb5/ros_ws/src
root@qrb5165-rb5:/# git clone https://github.com/hrnr/m-explore.git
root@qrb5165-rb5:/# cd m-explore
root@qrb5165-rb5:/# 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

root@qrb5165-rb5:/# /etc/init.d/sshd restart

b) open a new terminal to ssh login

ssh root@ip (example: ssh root@192.168.1.101)

c) in ssh terminal

root@qrb5165-rb5:/# export ROS_MASTER_URI=http://192.168.1.xxx:11311
root@qrb5165-rb5:/# export ROS_IP=192.168.1.xxx
root@qrb5165-rb5:/# export ROS_HOSTNAME=192.168.1.xxx
root@qrb5165-rb5:/# source /home/rb5/ros_ws/devel/setup.bash
root@qrb5165-rb5:/# export TURTLEBOT3_MODEL=waffle_pi
root@qrb5165-rb5:/# roslaunch turtlebot3_bringup turtlebot3_robot.launch
root@qrb5165-rb5:/# roslaunch turtlebot3_navigation turtlebot3_navigation.launch
root@qrb5165-rb5:/# 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

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.