moved ros_driver to /src/, updated all docs for turtlebot merge

This commit is contained in:
Sabeeh Khan
2020-12-28 17:05:42 -06:00
parent 9a4a2ad22a
commit 250237c45e
78 changed files with 706 additions and 400 deletions

View File

@@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8" />
<title>Autonomous Robotics with ROS for mmWave Release Notes - Version 1.6</title>
<title>Autonomous Robotics with ROS for mmWave Release Notes - Version 1.7</title>
</head>
<!-- START PRE -->
@@ -69,8 +69,8 @@ The following are Known Limitations in this release:
* Currently supported/tested for IWR6843ISK
ES2.0 EVM, IWR6843AOP ES2.0 EVM only
* The mmWave EVM must be flashed with:
* The mmWave SDK version 3.4.0.2 out-of-box demo firmware for IWR6843ISK ES2.0
* The mmWave SDK version 3.4.0.2 out-of-box demo firmware for IWR6843AOP ES2.0
* The mmWave SDK version 3.5 out-of-box demo firmware for IWR6843ISK ES2.0
* The mmWave SDK version 3.5 out-of-box demo firmware for IWR6843AOP ES2.0
* The fake_localization ROS navigation package is used to allow direct setting of
the robots initial pose (position/orientation) and goal pose. Therefore, the
gmapping and amcl ROS navigation packages are not used.
@@ -82,7 +82,13 @@ Work Arounds for Major Known Issues
The following are workarounds for each known issue with a major severity that exists in this release:
* N/A
Changes in Version 1.7
========================
The following is a list of changes compared to the previous release.
- Changed cfg files to support SDK 3.5
- Merged source files from safety bubble lab into Autonomous robotics lab
- Added support for quad sensor operation
</xmp>

View File

@@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8" />
<title>Autonomous Robotics with ROS for mmWave User's Guide - Version 1.6 </title>
<title>Autonomous Robotics with ROS for mmWave User's Guide - Version 1.7 </title>
</head>
<!-- START PRE -->
@@ -22,333 +22,45 @@ Autonomous Robotics with ROS for mmWave
This lab allows for the TI mmWave sensor to be used with popular mapping and navigation libraries in the Robot Operating System (ROS) environment, familiar to many robotics engineers.
The lab uses the Octomap server and move_base libraries with TIs mmWave ROS Driver Package software to interface to the TI mmWave sensor. The lab supports use of IWR6843ISK or IWR6843AOP ES2.0 EVMs.
With this TI driver and the software from the ROS community (ros.org) engineers may evaluate robot navigation and object avoidance quickly and easily.
With the TI driver and the software from the ROS community (ros.org) engineers may evaluate robot navigation and object avoidance quickly and easily.
This lab could also be used with either one or four sensors. With the use of four sensors, the robot has the ability to have a 360° field of view, thus the robot is able to detect surrounding objects for better mapping and navigation.
<img src="images/intro_senseavoid.gif" class="img-responsive"/>
# Requirements
### Prerequisite
[[y! Run Out of Box Demo
Before continuing with this lab, users should first run the out of box demo for the EVM.
This will enable users to gain familiarity with the sensor's capabilities as well as the various tools used across all labs in the mmWave Industrial Toolbox. ]]
### Required and Supported mmWave Evaluation Modules (EVM)
#### ISK module with MMWAVEICBOOST
Quantity | Item
------------------|-----------------
1 | Antenna Module Board: [IWR6843ISK](http://www.ti.com/tool/IWR6843ISK)
1 | OPTIONAL: [Industrial mmWave Carrier Board](http://www.ti.com/tool/MMWAVEICBOOST) for CCS based debugging
OR
#### AOP EVM
## Hardware and Software Setup
Quantity | Item
------------------|-----------------
1 | [IWR6843AOPEVM](http://www.ti.com/tool/IWR6843AOPEVM)
1 | OPTIONAL: [Industrial mmWave Carrier Board](http://www.ti.com/tool/MMWAVEICBOOST) for CCS based debugging
[[r! IWR6843 ES2.0 Only
This lab is only compatible with ES2.0 version of IWR6843.
On ISK or ODS, check the device version on your IWR6843 using the on-chip device markings as shown below
Before starting this lab, please follow the directions described in the [ROS Setup Guide with TI mmWave](../../common/docs/Turtlebot_HWSW_setup.html).
1. If line 4 reads `678A`, you have an ES2 device. In this case, this lab is compatible with your EVM.
2. If line 4 reads `60 GHZi`, you have an older ES1 device. In this case, the lab is NOT compatible with your EVM. ES2 IWR6843ISK/IWR6843ISK-ODS boards are orderable from the EVM link above.
<img src="images/iwr6843_silicon_revision.png" width="300"/>
On AOP, the EVM must be Rev F or later. This can be distinguished by the shape of the EVM if it is as shown above.
]]
[[r! AoP ES2.0 EVM only
The IWR6843 AoP version of this lab is only compatible with ES2.0 silicon and the corresponding EVM. Please ensure your EVM is the same as in the below image.
<img src="images/iwr6843aopevm1.png" width="300"/>
]]
### Additional Hardware Requirements
Quantity | Item | Details
---------|--------------------------|-----------------
1 | Robot | [TurtleBot2](https://www.turtlebot.com/turtlebot2/) with plate and standoff kit
1 | Computer (preferably laptop) | Running Linux Ubuntu 16.04. Used for remote operation and visualization
1 | Laptop<span style="color:blue">*</span> | Used on Turtlebot2. Running Linux Ubuntu 16.04.
1 | USB 2.0 printer-style cable (A-Male to B-Male) | Used to connect laptop to Turtlebot2
1 | Micro USB Cable | Used to connect laptop to the mmWave EVM (cable comes with the EVM and should be connected to XDS110 USB port on EVM)
1 | 12V to 5V DC to DC converter | Must be able to output at least 2.5Amps at 5V. Used to allow the EVM to be powered from the Turtlebot2 (this converter is required since the normal 5V output port on the TurtleBot2 cannot supply 2.5Amps)
1 | 2-pin miniFit JR connector/cable | Used to go from Turtlebot2 12V output port to the 12V input on the converter (for example, Molex cable part number 245135-0210 or 245135-0220 can be used by cutting it in half so the connector end goes to the TurtleBot2 12V output port and the cut wire end goes to the 12V input of the converter)
1 | 2.1mm barrel jack connector | Center positive with cable/wire to go from the 5V output on the converter to the EVM
| Misc. small bolts and nuts and brackets | For mounting mmWave sensor and DC converter to TurtleBot platform (not included with EVM or TurtleBot)
[[b *Sitara AM572x processor can be used instead of a laptop for the Turtlebot2
For instructions on how to implement the Sitara based alternative please refer to the [Autonomous robotics reference design with Sitara™ processors and mmWave sensors using ROS](http://www.ti.com/tool/TIDEP-01006).
The reference design demonstrates an embedded robotic system where point-cloud data from the mmWave radar sensing is processed by the Sitara AM57x processor which runs Robot Operating System (ROS) and is the main processor for the overall system control.
]]
### Software
Tool | Version | Download Link
----------------------------|---------------------------|--------
TI mmWave SDK | 3.4.x.x | [Link to Latest mmWave SDK](http://software-dl.ti.com/ra-processors/esd/MMWAVE-SDK/latest/index_FDS.html). To access a previous version of the mmWave SDK scroll to the bottom of the table and click the link under "MMWAVE-SDK previous release". Repeat to continue stepping back to previous versions.
mmWave Industrial Toolbox | Latest | Download and install the toolbox. Go to [Using TI Resource Explorer & the mmWave Industrial Toolbox](../../../../docs/readme.html) for instructions.
Uniflash | Latest | Uniflash tool is used for flashing TI mmWave Radar devices. [Download offline tool](http://www.ti.com/tool/UNIFLASH) or use the [Cloud version](https://dev.ti.com/uniflash/#!/)
Silicon Labs CP210x USB to UART Bridge VCP Drivers | Latest | Only needed for AOP EVM. [https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers)
-----------
### Laptops
Both laptops need to have:
* Linux Ubuntu 16.04 natively installed (Ubuntu 16.04 Virtual Machine running on Windows can be used for remote control laptop if desired)
* ROS Kinetic Kame LTS with specified ROS packages
* TI mmWave ROS Driver
* Additional ROS packages supplied with this lab
Quickstart
===========
The quickstart guide will cover setting up the EVM, flashing firmware, and running the demo.
The guide is broken down into three sections: Remote Control Operation, Mapping Demo, and Autonomous Demo. The Remote Control section
explains how to bring up the sensor and drive the turtlebot remotely. The mapping demo uses the point cloud from the sensor to create a map of the
robot's environment. The robot must be manually operated. Finally, the autonomous demo
## 1. Setup the EVM for Flashing Mode
* For MMWAVEICBOOST + Antenna Module setup: Follow the instructions for [Hardware Setup for Flashing in MMWAVEICBOOST Mode](../../../common/docs/hardware_setup/hw_setup_mmwaveicboost_mode_flashing.html)
* For IWR6843ISK in Standalone/Modular Mode: Follow the instructions for [Hardware Setup of IWR6843ISK for Flashing Mode](../../../common/docs/hardware_setup/hw_setup_isk_ods_modular_mode_flashing.html)
* For AOP in Standalone/Modular Mode: Follow the instructions for [Hardware Setup of IWR6843AOPEVM for Flashing Mode](../../../common/docs/hardware_setup/hw_setup_aop_modular_mode_flashing.html)
## 2. Flash the EVM using Uniflash
Flash the binary listed below using UniFlash. Follow the instructions for [using UniFlash](../../../common/docs/software_setup/using_uniflash_with_mmwave.html)
BIN Name | Board | Location
------------------------------|-----------------|-----------
xwr68xx_mmw_demo.bin | IWR6843ISK | `<INDUSTRIAL_TOOLBOX_INSTALL_DIR>\mmwave_industrial_toolbox_<VER>\out_of_box_demo\`<br>`68xx_mmwave_sdk_dsp\prebuilt_binaries\xwr68xx_mmw_demo.bin`
xwr64xxAOP_mmw_demo.bin | IWR6843AOPEVM | `<INDUSTRIAL_TOOLBOX_INSTALL_DIR>\mmwave_industrial_toolbox_<VER>\out_of_box_demo\`<br>`68xx_aop_mmwave_sdk_hwa\prebuilt_binaries\xwr64xxAOP_mmw_demo.bin`
## 3. Setup the EVM for Functional Mode
* For MMWAVEICBOOST + Antenna Module setup: Follow the instructions for [Hardware Setup of MMWAVEICBOOST + Antenna Module for Functional Mode](../../../common/docs/hardware_setup/hw_setup_mmwaveicboost_mode_functional.html)
* For IWR6843ISK in Standalone/Modular Mode: Follow the instructions for [Hardware Setup of IWR6843ISK for Functional Mode](../../../common/docs/hardware_setup/hw_setup_isk_ods_modular_mode_functional.html)
* For AOP: follow the instructions for [Hardware Setup of IWR6843AOPEVM for Functional Mode](../../../common/docs/hardware_setup/hw_setup_aop_modular_mode_functional.html)
## 4. Verification using online Visualizer
-----------
* Power up the EVM and connect it to the Windows PC with the provided USB cable (make sure that the SOP2 jumper is removed).
* Using Google Chrome, navigate to the following URL: https://dev.ti.com/mmWaveDemoVisualizer
* If prompted, follow the on-screen instructions for installing TI Cloud Agent (this is need the first time on a new PC)
* In the GUI menu, select Options &rarr; Serial Port
* In the serial port window, enter the appropriate port in each of the drop down menus based on your port numbers from the "flash the evm" section
* Click on Configure to connect the GUI to the EVM. The GUI Status bar should show <b>Conected:</b> <img src="images/mmwave_demo_visualizer_connected.png" width="30" height="20"/>
<img src="images/mmwave_demo_visualizer_ports.png" width="600"/>
## 4. Setting up the TurtleBot2
-----------
* The TurtleBot2 is a low-cost, personal robotics platform that is well supported within the ROS
community. There are many existing demos that work out-of-the-box with the TurtleBot2 including
teleoperation (remote control), mapping, and navigation.
* In this guide we will have a look at how to modify these demos to integrate the TI mmWave sensor as the 3-D sensor.
* The TurtleBot2 should be assembled and mmWave EVM mounted as shown in the following pictures to work with this lab. There may be slight variation in mounting depending on EVM option.
* In the example shown, the 12V to 5V converter is mounted underneath the center of the top plate.
* The Turtlebot and EVM is connected to the laptop using USB cables
IWR6843ISK with MMWAVEICBOOST carrier board front view (shown without required laptop):
<img src="images/setup/turtlebot2_front.png" class="img-responsive"/>
IWR6843ISK with MMWAVEICBOOST carrier board side view (shown without required laptop):
<img src="images/setup/turtlebot2_side.png" class="img-responsive"/>
## 5. Installing ROS and the TI mmWave ROS Driver
---------------
* Please follow the instructions in the TI mmWave ROS Driver Setup Guide (available on the **TI Resource Explorer under Labs > TI mmWave ROS Driver**) to install ROS and the TI mmWave ROS Driver on each laptop before continuing.
* ROS must be installed on both the TurtleBot laptop and the Remote Control laptop.
* It is a good idea to test out the installation on each laptop by connecting the TI mmWave EVM and trying out the point cloud visualization.
## 6. Installing the mmWave Mapping and Navigation Demo Packages
---------------
After installing ROS and the TI mmWave ROS Driver, follow the steps below on both laptops for interchangeability.
Install the Required Dependent ROS Packages
1. Install the following ROS packages which are required dependencies to run the demos:
```
$ sudo apt-get install ros-kinetic-navigation
```
```
$ sudo apt-get install ros-kinetic-hector-slam
```
```
$ sudo apt-get install ros-kinetic-octomap-server
```
```
$ sudo apt-get install ros-kinetic-kobuki
```
```
$ sudo apt-get install ros-kinetic-octomap-rviz-plugins
```
```
$ sudo apt-get install ros-kinetic-vision-opencv
```
```
$ sudo apt-get install ros-kinetic-depth-image-proc
```
```
$ sudo apt-get install ros-kinetic-joy
```
2. Download the source code for the specific version of the ROS fake_localization package required
to run the demos:
```
$ mkdir -p ~/catkin_ws/src/navigation/fake_localization
```
```
$ cd ~/catkin_ws/src/navigation/fake_localization
```
```
$ wget https://raw.githubusercontent.com/ros-planning/navigation/1.14.2/fake_localization/fake_localization.cpp
```
```
$ wget https://raw.githubusercontent.com/ros-planning/navigation/1.14.2/fake_localization/CMakeLists.txt
```
```
$ wget https://raw.githubusercontent.com/ros-planning/navigation/1.14.2/fake_localization/package.xml
```
## 7. Download the TurtleBot mmWave Mapping and Navigation Packages
---------------
1. Download the **ti\_mmwave\_ros\_map\_nav\_`<ver>`.tar.gz** Linux archive file from the
<a href="javascript:void(0)" onclick="window.parent.jumpToTirexNodeInCurrentPackage (' AN-1gXp4Kn1RRFC9mOFTZQ ')"> Robotics </a> / Autonomous Robotics with ROS for mmWave folder and copy it to your catkin `<workspace_dir>/src` directory.
[[y! Note
Downloading and extracting the TurtleBot mmWave Mapping and Navigation Packages should be done on both laptops
]]
a) Point your web browser to the mmwave sensor software package: https://dev.ti.com/tirex/#/?link=Software
b) Click on “mmWave Sensors” and then click on “Industrial Toolbox”
c) Click on the link for “Labs”
d) Click on the “Autonomous Robotics with ROS for mmWave” lab in the table in the center
e) Click on the “Download All” button on the right side as shown in the following
image and accept the user license agreement when prompted. Choose to save the
downloaded zip file if prompted or save it to disk first and then open it by doubleclicking
it from the downloaded location.
<img src="images/setup_sw/download_lab.png" class="img-responsive"/>
f) Navigate into the folder structure of the opened zip file to the path shown in the
following figure. (Note that the path may start with mmwave\_sensors/industrial\_toolbox\_<ver> depending on package version.)
<img src="images/setup_sw/ros_pkg_source.png" class="img-responsive"/>
g) Open a new file browser window and navigate to your catkin `<workspace_dir>/src`
directory as shown in the right window in the following screenshot. Copy the
**ti\_mmwave\_ros\_map\_nav\_`<ver>`.tar.gz** file to your `<workspace_dir>/src` directory
by dragging it from the source (left) window to the destination (right) window.
<img src="images/setup_sw/ros_pkg_dest.png" class="img-responsive"/>
h) You should now see the **ti\_mmwave\_ros\_map\_nav\_`<ver>`.tar.gz** file in your
`<workspace_dir>/src` directory as shown in the following screenshot.
<img src="images/setup_sw/ros_pkg_in_src.png" class="img-responsive"/>
2. Extract the turtlebot, navigation, and turtlebot\_mmwave\_launchers folders (as well as a
custom mmWave chirp config file which gets placed in the ti_mmwave_rospkg/cfg
directory) from the archive (.tar.gz) file using the following command executed from the
`<workspace_dir>/src` directory. Change <ver> to match the actual filename.
```
$ tar xzf ti_mmwave_ros_map_nav_<ver>.tar.gz
```
3. Go back to your catkin `<workspace_dir>` directory and build the workspace:
```
$ cd <workspace_dir>
```
```
$ catkin_make
```
If all of the installation steps were followed and both ROS environment scripts were sourced
the driver should build successfully and you should see [100%] on the lines at the end of the
build output.
## 8. Networking
---------------
ROS is a distributed system, meaning that it can communicate over a local network with other ROS
components. For this demo, both laptops mentioned above must be on the exact same network and
must be able to ping (icmp) each other by IP address. The Remote Control laptop must also be able to
ssh (tcp/ip) into the TurtleBot laptop by IP address. You may need to install ssh on the laptops using the
following command:
```
$ sudo apt-get install ssh
```
For more information regarding ROSs networking visit the link: <http://wiki.ros.org/ROS/NetworkSetup>
Additionally a ROS system may only have one “roscore” across all machines. In order for machines to
recognize this “roscore” they must have an environment variable defined which specifies the IP address
of the “roscore” machine.
###On the TurtleBot machine
Edit your **~/.bashrc** file to include the following lines at the bottom:
```
export ROS_MASTER_URI=http://localhost:11311
export ROS_IP=<IP_OF_THIS_MACHINE>
```
You can check your IP by running `$ ifconfig` on the command line. Note that the line
exporting the ROS_IP environment variable may not be required if your network is setup where
each machine can contact/ping the other by hostname. You must close and re-open the shell
for the updated **~/.bashrc** file to take effect.
###On the Remote machine
Edit your **~/.bashrc** file to include the following lines at the bottom:
```
export ROS_MASTER_URI=http://<IP_OF_TURTLEBOT_MACHINE>:11311
export ROS_IP=<IP_OF_THIS_MACHINE>
```
You can check your IP by running `$ ifconfig` on the command line. Note that if your network
is setup where each machine can contact/ping the other by hostname then you can use
<NAME_OF_TURTLEBOT_MACHINE> instead of <IP_OF_TURTLEBOT_MACHINE> in the first line
and the line exporting the ROS_IP environment variable may not be required. You must close
and re-open the shell for the updated **~/.bashrc** file to take effect.
## 9. Remote Control Demo (TurtleBot Bring-up and Teleoperation)
---------------
Remote Control Operation
===========
These steps must take place from the remote machine, “ssh-ing” into the TurtleBot laptop when
necessary.
##TurtleBot Bring-up
To start the TurtleBot, open a terminal window on the remote machine, ssh into the TurtleBot laptop
and run the following command.
and run the following command. The `<device>` tag noted below can be one of the following: `6843ISK` or `6843AOP`.
* For IWR6843ISK:
* For setups running a single sensor:
```
$ roslaunch turtlebot_bringup minimal.launch mmwave_device:=6843ISK
$ roslaunch turtlebot_bringup minimal_single_sensor.launch mmwave_device:=<device>
```
* For IWR6843AOP:
* For setups running four sensors:
```
$ roslaunch turtlebot_bringup minimal.launch mmwave_device:=6843AOP
$ roslaunch turtlebot_bringup minimal_quad_sensor.launch mmwave_device:=<device>
```
If the EVM was not in a good state the roslaunch command will fail. Try resetting the EVM by pressing
the NRST button on the EVM and then run the desired roslaunch command again.
@@ -366,10 +78,10 @@ teleoperation (remote control) of the TurtleBot:
Follow the instructions shown in the window to control the TurtleBot. You can exit out of the remote
control application by pressing `CTRL-C`.
## 10. Mapping Demo
---------------
Mapping Demo
===========
The Mapping Demo is an example of how to use TIs mmWave Radar EVMs within the ROS framework
on a robot to build a map.
on a robot to build a map. This feature is only supported with single sensor setups.
* The demo runs the octomap_server package in ROS. There are several filters that have been brought up
for use: Pass Through filters for all the point cloud fields, and a Statistical Outlier Removal filter for
@@ -450,41 +162,45 @@ You should see the saved map displayed in Rviz. Note that the other topics in Rv
warning/error since they are not active.
## 11. Navigation Demo
---------------
Navigation Demo
===========
The TurtleBot navigation demo runs on the nodes mentioned in the image below.
<img src="images/setup_sw/ros_nodes.png" class="img-responsive"/>
Here are the steps to run the navigation demo.
Here are the steps to run the navigation demo:
1. Close all previous terminal windows if any were open
2. Open a new terminal window on the remote machine, ssh into the TurtleBot laptop and bring up the
TurtleBot and mmWave EVM with the following command.
* For IWR6843ISK:
TurtleBot and mmWave EVM with the following command.The `<device>` tag noted below can be one of the following: `6843ISK` or `6843AOP`.
* For setups running a single sensor:
```
$ roslaunch turtlebot_bringup minimal.launch mmwave_device:=6843ISK
$ roslaunch turtlebot_bringup minimal_single_sensor.launch mmwave_device:=<device>
```
* For IWR6843AOP:
* For setups running four sensors:
```
$ roslaunch turtlebot_bringup minimal.launch mmwave_device:=6843AOP
```
$ roslaunch turtlebot_bringup minimal_quad_sensor.launch mmwave_device:=<device>
```
If the EVM was not in a good state the roslaunch command will fail. Try resetting the EVM by pressing the NRST button on the EVM and then run the desired roslaunch command again.
If the EVM was not in a good state the roslaunch command will fail. Try resetting the EVM by
pressing the NRST button on the EVM and then run the desired roslaunch command again.
The configuration files are included in the ti_mmwave_ros_map_nav_v1p4.tar.gz package ...\ti_mmwave_ros_map_nav_v1p4\ti_mmwave_rospkg\cfg. To change the parameter, edit and save the file using a text editor. For example, to update the demo to run using the IWR6843ISK-ODS and configuration file used with the ODS point cloud demo
- Edit the "6843ISK_3d.cfg" configuration file to one that works with the ODS point cloud demo.
- Flash the IWR6843ISK-ODS with the ODS point cloud binary.
- Run the demo as documented for 6843ISK EVM.
3. To bring up the move_base and fake_localization nodes and load a prebuilt map using the
octomap_server, open a new terminal window on the remote machine, ssh into the TurtleBot
laptop and run the following command:
* For single sensor operation:
```
$ roslaunch turtlebot_mmwave_launchers radar_navigation.launch
$ roslaunch turtlebot_mmwave_launchers radar_navigation_single.launch
```
* For quad sensor operation:
```
$ roslaunch turtlebot_mmwave_launchers radar_navigation_quad.launch
```
**Note 1**: By default, this launch file loads a specific prebuilt map file containing a map of a simple

Binary file not shown.

View File

@@ -0,0 +1,311 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>ROS Setup for mmWave User's Guide - Version 1.0 </title>
</head>
<!-- START PRE -->
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/fonts/ubuntu-regular-woff.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/fonts/glyphicons-halflings-regular.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/themes/united2.min.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/themes/bootstrap-responsive.min.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/strapdown.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/styles/link.css"/>
<!-- END PRE -->
<xmp style="display:none;" class="col-xs-6">
Hardware and Software Setup for ROS with TI mmWave
===========
# Requirements
### Prerequisite
[[y! Run Out of Box Demo
Before continuing with this lab, users should first run the out of box demo.
This will enable users to gain familiarity with the sensor's capabilities as well as the various tools used across all labs in the mmWave Industrial Toolbox.
]]
### Required and Supported mmWave Evaluation Modules (EVM)
#### ISK EVM
Quantity | Item
------------------|-----------------
1 or 4 | Antenna Module Board: [IWR6843ISK](http://www.ti.com/tool/IWR6843ISK)
OR
#### AOP EVM
Quantity | Item
------------------|-----------------
1 or 4 | [IWR6843AOPEVM](http://www.ti.com/tool/IWR6843AOPEVM)
[[r! IWR6843 ES2.0 Only
This lab is only compatible with ES2.0 version of IWR6843.
On ISK or ODS, check the device version on your IWR6843 using the on-chip device markings as shown below
1. If line 4 reads `678A`, you have an ES2 device. In this case, this lab is compatible with your EVM.
2. If line 4 reads `60 GHZi`, you have an older ES1 device. In this case, the lab is NOT compatible with your EVM. ES2 IWR6843ISK/IWR6843ISK-ODS boards are orderable from the EVM link above.
<img src="images/iwr6843_silicon_revision.png" width="300"/>
]]
[[r! AoP ES2.0 EVM only
The IWR6843 AoP version of this lab is only compatible with ES2.0 silicon and the corresponding EVM. Please ensure your EVM is the same as in the below image.
<img src="images/iwr6843aopevm1.png" width="300"/>
]]
### Additional Hardware Requirements
Quantity | Item | Details
---------|--------------------------|-----------------
1 | Robot | [TurtleBot2](https://www.turtlebot.com/turtlebot2/) with plate and standoff kit
1 | Local Laptop | Running Linux Ubuntu 16.04. Used for remote operation and visualization
1 | Remote Laptop | Used on Turtlebot2. Running Linux Ubuntu 16.04.
1 | USB 2.0 printer-style cable (A-Male to B-Male) | Used to connect laptop to Turtlebot2
4 | Micro USB Cable | Used to connect laptop to the mmWave EVM (cable comes with the EVM and should be connected to XDS110 USB port on EVM)
1 | 12V to 5V DC to DC converter | Must be able to output at least 4 Amps at 5V. Used to allow the EVM to be powered from the Turtlebot2 (this converter is required since the normal 5V output port on the TurtleBot2 cannot supply 2.5Amps)
1 | USB Splitter with Power Adapter | The remote laptop will likely not have 5 USB ports (4 ports for radar and 1 for turtlebot), so a splitter is necessary.
1 | 2-pin miniFit JR connector/cable | Used to go from Turtlebot2 12V output port to the 12V input on the converter (for example, Molex cable part number 245135-0210 or 245135-0220 can be used by cutting it in half so the connector end goes to the TurtleBot2 12V output port and the cut wire end goes to the 12V input of the converter)
| Misc. bolts, nuts, and brackets | For mounting mmWave sensor and DC converter to TurtleBot platform (not included with EVM or TurtleBot)
### Software
Tool | Version | Download Link
----------------------------|---------------------------|--------
TI mmWave SDK | 3.5.x.x | [Link to Latest mmWave SDK](http://software-dl.ti.com/ra-processors/esd/MMWAVE-SDK/latest/index_FDS.html). To access a previous version of the mmWave SDK scroll to the bottom of the table and click the link under "MMWAVE-SDK previous release". Repeat to continue stepping back to previous versions.
mmWave Industrial Toolbox | Latest | Download and install the toolbox. Go to [Using TI Resource Explorer & the mmWave Industrial Toolbox](../../../../docs/readme.html) for instructions.
Uniflash | Latest | Uniflash tool is used for flashing TI mmWave Radar devices. [Download offline tool](http://www.ti.com/tool/UNIFLASH) or use the [Cloud version](https://dev.ti.com/uniflash/#!/)
-----------
### Laptops
Both laptops need to have:
* Linux Ubuntu 16.04 natively installed (Ubuntu 16.04 Virtual Machine running on Windows can be used for remote control laptop if desired)
* ROS Kinetic Kame LTS with specified ROS packages
* TI mmWave ROS Driver supplied with this lab
* Additional ROS packages supplied with this lab
Setup for ROS Labs
===========
This section of the guide will cover how to setup the hardware and software for ROS Labs.
## 1. Flash Evaluation Modules with Out of Box demo
---------------
Before continuing with this lab, users should first run the Out of Box Demo for all four EVMs. Verify with the
[mmWave Demo Visualizer](https://dev.ti.com/mmWaveDemoVisualizer) that the sensor(s) are working as expected.
## 2. Setting up the TurtleBot2
---------------
* The TurtleBot2 is a low-cost, personal robotics platform that is well supported within the ROS
community. There are many existing demos that work out-of-the-box with the TurtleBot2 including
teleoperation (remote control), mapping, and navigation.
* The TurtleBot2 should be assembled and four mmWave EVM mounted as shown in the following pictures to work with this lab. There may be slight variation in mounting depending on EVM revision.
* In the example shown, the brackets to mount the mmWave EVMs were 3D printed.
* It is essential for this demo to mount the mmWave EVMs every 90 degrees around the robot, equidistant from the center of the robot.
* In the example shown, the 12V to 5V converter is mounted underneath the center of the top plate, and the USB splitter is placed under the top plate.
* The Turtlebot and the four EVMs are connected to the laptop using the USB splitter.
1x IWR6843ISK mounted on the front of the Turtlebot2 with an optional MMWAVEICBOOST:
<img src="images/setup/Turtlebot2_front.png" class="img-responsive"/>
4x IWR6843ISK mounted around the TurtleBot2 top view (shown without required laptop):
<img src="images/setup/Turtlebot2_quad_top.jpg" class="img-responsive"/>
4x IWR6843ISK mounted around the TurtleBot2 side view (shown without required laptop):
<img src="images/setup/Turtlebot2_quad_iso.jpg" class="img-responsive"/>
## 3. Installing ROS and the TI mmWave ROS Driver
---------------
* Please follow the instructions in the TI mmWave ROS Driver Setup Guide (available on the **TI Resource Explorer under Labs > TI mmWave ROS Driver**) to install ROS and the TI mmWave ROS Driver on each laptop before continuing.
* ROS must be installed on both the TurtleBot laptop and the Remote Control laptop.
* It is a good idea to test out the installation on each laptop by connecting the TI mmWave EVM and trying out the point cloud visualization.
## 4. Installing the ROS Mapping and Navigation Demo Packages
---------------
After installing ROS and the TI mmWave ROS Driver, follow the steps below on both laptops for interchangeability.
Install the Required Dependent ROS Packages
[[r! This demo is only supported with ROS Kinetic.
Other versions of ROS are not supported due to limitations with the Turtlebot packages.
]]
1. Install the following ROS packages which are required dependencies to run the demos:
```
$ sudo apt-get install ros-kinetic-navigation
```
```
$ sudo apt-get install ros-kinetic-hector-slam
```
```
$ sudo apt-get install ros-kinetic-octomap-server
```
```
$ sudo apt-get install ros-kinetic-kobuki
```
```
$ sudo apt-get install ros-kinetic-octomap-rviz-plugins
```
```
$ sudo apt-get install ros-kinetic-vision-opencv
```
```
$ sudo apt-get install ros-kinetic-depth-image-proc
```
```
$ sudo apt-get install ros-kinetic-joy
```
## 5. Networking
---------------
ROS is a distributed system, meaning that it can communicate over a local network with other ROS
components. For this demo, both laptops mentioned above must be on the exact same network and
must be able to ping (icmp) each other by IP address. The Remote Control laptop must also be able to
ssh (tcp/ip) into the TurtleBot laptop by IP address. You may need to install ssh on the laptops using the
following command:
```
$ sudo apt-get install ssh
```
If you are not familiar with how to use ssh, please follow this guide: <https://help.ubuntu.com/community/SSH/OpenSSH/ConnectingTo>
For more information regarding ROSs networking visit the link: <http://wiki.ros.org/ROS/NetworkSetup>
Additionally a ROS system may only have one “roscore” across all machines. In order for machines to
recognize this “roscore” they must have an environment variable defined which specifies the IP address
of the “roscore” machine.
###On the TurtleBot machine
Edit your **~/.bashrc** file to include the following lines at the bottom:
```
export ROS_MASTER_URI=http://localhost:11311
export ROS_IP=<IP_OF_THIS_MACHINE>
```
You can check your IP by running `$ ifconfig` on the command line. Note that the line
exporting the ROS_IP environment variable may not be required if your network is setup where
each machine can contact/ping the other by hostname. You must close and re-open the shell
for the updated **~/.bashrc** file to take effect.
###On the Remote machine
Edit your **~/.bashrc** file to include the following lines at the bottom:
```
export ROS_MASTER_URI=http://<IP_OF_TURTLEBOT_MACHINE>:11311
export ROS_IP=<IP_OF_THIS_MACHINE>
```
You can check your IP by running `$ ifconfig` on the command line. Note that if your network
is setup where each machine can contact/ping the other by hostname then you can use
<NAME_OF_TURTLEBOT_MACHINE> instead of <IP_OF_TURTLEBOT_MACHINE> in the first line
and the line exporting the ROS_IP environment variable may not be required. You must close
and re-open the shell for the updated **~/.bashrc** file to take effect.
## 6. Download the TurtleBot mmWave ROS Packages
---------------
<!-- GIT -->
1. The packages for all ROS labs are held on git.ti.com. To download the packages, first ensure that git is installed on your computer.
```
sudo apt-get install git
```
2. Next, download the repository to the user's home directory. Skip this step if the git repository has already been cloned.
```
cd ~ && git clone git.ti.com/
```
3. Change directory to the autonomous_robotics_ros folder. The safety bubble lab is included in the same folder.
```
cd mmwave_ti_ros/autonomous_robotics_ros/
```
3. Build the lab.
```
catkin_make
```
4. Source the setup.bash file
```
source devel/setup.bash
```
## 7. Setup Symbolic Links
---------------
This section is necessary for users who use multiple sensors. Users with a single sensor can skip this step.
When the standalone sensors are plugged into the laptop, the device appears in Ubuntu 16.04 as /dev/ttyUSBx
(Command Port) and /dev/ttyUSBy (Data Port). These names are then used in the launch files to communicate
with the sensor. When using multiple sensors and hardcoding these ttyUSB names, the devices must then be plugged
into the laptop in a specific order. Furthermore, other devices such as the Turtlebot2 may also appear as
/dev/ttyUSBx. Therefore, creating a symbolic link will be extremely useful. Below
are the steps to setting up symbolic links.
[[r! Only works with standalone EVMs
The following steps will not work with the ICBOOST.
]]
1. In a terminal on the remote laptop, create a file named '99-usb-serial.rules' in the directory /etc/udev/rules.d/ with super user:
```
$ sudo nano /etc/udev/rules.d/99-usb-serial.rules
```
2. Type or paste the following:
```
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea70", SYMLINK+="mmWave_%s{serial}_%E{ID_USB_INTERFACE_NUM}"
```
3. Close and save the file by hitting 'Ctrl+x', then pressing 'y', and finally pressing 'Enter'.
4. Plug in the north sensor to the remote laptop and type the following in the command line:
```
$ ls -l /dev/ | grep mmWave
```
5. Two symolic links should appear. An example would be "mmWave_00CE0FCA_00", typically the command port,
and "mmWave_00CE0FCA_01", typically the data port.
6. Open a file browser to <catkin_ws>/src/ti_mmwave_rospkg/launch/.
7. In the file bubble_sensor_north.launch, change the command_port and data_port to the previously noted symbolic link.
8. Repeat steps 4-7 plugging in each sensor and changing the command_port and data_port fields in the corresponding direction launch files: bubble_sensor_east.launch, bubble_sensor_west.launch, and bubble_sensor_south.launch.
9. Note that these launch files also create a static transform. If the position or angle of the sensors on the robot is different, the arguments in the static transform must be changed. Find more information on static transforms here: [http://wiki.ros.org/tf#static_transform_publisher](http://wiki.ros.org/tf#static_transform_publisher)
This completes the guide on how to get the software and hardware setup for ROS labs. Please return to the respective ROS Lab User's guide to execute the lab.
* [Autonomous Robotics Lab](../../autonomous_robotics_ros/docs/Autonomous_Robotics_with_ROS_for_mmWave_user_guide.html).
* [Safety Bubble Lab](../../safety_bubble/docs/Safety_Bubble_with_ROS_for_mmWave_user_guide.html).
</xmp>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/highlight/styles/zenburn.css"/>
<script src="../../../../.metadata/.html/scripts/strapdown/vendor/jquery-1.11.2.min.js"></script>
<script src="../../../../.metadata/.html/scripts/strapdown/vendor/bootstrap.min.js"></script>
<script src="../../../../.metadata/.html/scripts/highlight/highlight.pack.js"></script>
<script src="../../../../.metadata/.html/scripts/strapdown/v/0.2/strapdown.js"></script>
<script src="../../../../.metadata/.html/scripts/toolbox.js"></script>
<script src="../../../../.metadata/.html/scripts/toolbox_fixes.js"></script>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

View File

@@ -27,8 +27,8 @@ The TI mmWave ROS driver integrates the mmWave out-of-box demo with Robot OS (RO
Features
========
- Compatible with TI mmWave SDK v3.4.0.3 out-of-box demo when using IWR6843AOPEVM
- Compatible with TI mmWave SDK v3.4.0.3 out-of-box demo when using IWR6843 ES2.0 EVM
- Compatible with TI mmWave SDK v3.5 out-of-box demo when using IWR6843AOPEVM
- Compatible with TI mmWave SDK v3.5 out-of-box demo when using IWR6843 ES2.0 EVM
- Offers the out-of-box demo Command Line Interface (CLI) as a ROS Service
- Reads Radar data from the mmWave EVM and publishes it as a ROS PointCloud2 Message
- Outputs the {X,Y,Z} coordinate and intensity (snr) of each detected point in the ROS PointCloud2 Message
@@ -41,6 +41,12 @@ The following is a list of known limitations for this release that were known at
- Currently tested for the IWR6843 EVM and IWR6843AOPEVM only
- The mmWave EVM must be configured to only send the "detected objects¨ data. The other possible output data types such as "log magnitude range¨, "noise profile¨, heat maps, etc. are not currently supported by the ROS driver. Also, the Doppler/velocity field is not currently output in the ROS PointCloud2 Message.
Changes in Version 2.1
========================
The following is a list of changes compared to the previous release.
- Added command 'calibData 0 0 0' to all cfg files to support TI mmWave SDK 3.5
- Changed instructions to download source from git.ti.com
Changes in Version 2.0
========================
The following is a list of changes compared to the previous release.

View File

@@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8" />
<title>TI mmWave ROS Driver User's Guide - Version 2.0</title>
<title>TI mmWave ROS Driver User's Guide - Version 2.1</title>
</head>
<!-- START PRE -->
@@ -120,85 +120,41 @@ xwr64xxAOP_mmw_demo.bin | IWR6843AOPEVM | `<INDUSTRIAL_TOOLBOX_INSTALL_DIR>\m
### Building the TI mmWave ROS driver
1. Follow the instructions on the following webpage to create a new ROS workspace:
http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment
1. The packages for all ROS labs are held on git.ti.com. To download the packages, first ensure that git is installed on your computer.
[[d **NOTE:**
For convenience, the commands to source the required ROS environment setup scripts (“source /opt/ros/kinetic/setup.bash” and “source `<workspace_dir>/devel/setup.bash`”) can be placed at the end of your ~/.bashrc file so they are executed automatically every time you open a new Terminal/shell. Otherwise, you will need to source them each time you open a new Terminal/shell. The following commands can be used to add the “source” commands to the end of your ~/.bashrc file. In the second command below make sure to change “`<workspace_dir>`” to your actual workspace directory.
]]
```
sudo apt-get install git
```
[[y **Caution:**
Copying the commands from a web browser sometimes adds extra newline characters that will cause the commands to fail when pasted into Linux.Open the doc in a stand-alone PDF reader (i.e. Adobe Acrobat, etc.) if this occurs while you copy and paste commands directly into Linux.
]]
2. Next, clone the git repository from git.ti.com.
```
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
```
```
$ echo "source <workspace_dir>/devel/setup.bash" >> ~/.bashrc
```
```
git clone git.ti.com/mmwave_ti_ros/mmwave_ti_ros.git
```
After you run these commands to add the scripts to your ~/.bashrc file, you must close and re-open your Terminal/shell for them to take effect.
Please note that the script in the devel directory is specific to the workspace and you would need to change your ~/.bashrc file and re-open your shell in order to work in a different workspace.
3. Change directory to the ROS Driver lab. This is the workspace directory.
Alternatively you can copy and paste the commands to your ~/.bashrc file using an editor. for example the command shown below should open ~/.bashrc using gedit text editor
```
gedit ~/.bashrc
```
```
cd mmwave_ti_ros/ros_driver/
```
2. Install the ROS serial package:
3. Build the lab.
```
catkin_make
```
a) Use GIT to download (clone) the ROS serial driver into your <`workspace_dir>/src` directory:
```
$ cd <workspace_dir>/src
```
```
$ git clone https://github.com/wjwwood/serial.git
```
b) More documentation on this library can be found at: http://wjwwood.io/serial/
3. Download the TI mmWave ROS Driver (ti_mmwave_rospkg) and copy it to your `<workspace_dir>/src` directory:
a) Point your web browser to the following link:
http://dev.ti.com/tirex/#/?link=Software
Click on “mmWave Sensors” and then click on “Industrial Toolbox"
b) Click on the link for “Labs”
c) Click on the “ROS Point Cloud Visualizer” lab in the table in the center
d) Click on the “Download All” button on the right side as shown in the following image and accept the user license agreement when prompted. Choose to open the downloaded zip file if prompted or save it to disk first and then open it by double-clicking it from the downloaded location.
<img src="images/Ros_TIREX.png" class="img-responsive"/>
e) Navigate into the folder structure of the opened zip file to the path shown in the following figure and then double-click on the `ti_mmwave_rospkg_<ver>`.zip file to open it. (Note that the path may start with `mmwave_training_<ver>` as shown or `mmwave_sensors/industrial_toolbox_<ver>` depending on package version)
<img src="images/Ros_Folder_Content.png" class="img-responsive"/>
f) After opening the `ti_mmave_rospkg_<ver>.zip` file, you should see the ti_mmwave_rospkg folder as shown in the left window in following screenshot. Open a new file browser and navigate to your `<workspace_dir>`/src directory as shown in the right window in the screenshot. Copy the ti_mmwave_rospkg folder to your `<workspace_dir>/src` directory by dragging it from the source (left) window to the destination (right) window.
<img src="images/Copy_paste.png" class="img-responsive"/>
g) You should now see the ti_mmwave_rospkg folder in your `<workspace_dir>/src` directory as shown in the following screenshot.
<img src="images/ti_mmWave_rospkg_folder.png" class="img-responsive"/>
4. Build your project:
In the Terminal/shell, go to your `<workspace_dir>` directory and build the driver:
```
$ cd <workspace_dir>
```
```
$ catkin_make
```
4. Source the setup.bash file
```
source devel/setup.bash
```
If all of the installation steps were followed and both ROS environment scripts were sourced, the driver should build successfully and you should see something similar to the following at the end of the output. Your output may look slightly different but it should still show “[100%]”.
If all of the installation steps were followed and both ROS environment scripts were sourced, the driver should build successfully and you should see something similar to the following at the end of the output. Your output may look slightly different but it should still show “[100%]”.
[[g! build Successful
[100%] Linking CXX executable /home/username/catkin_ws/devel/lib/ti_mmwave_rospkg/ti_mmwave_rospkg
[100%] Built target ti_mmwave_rospkg Scanning dependencies of target ti_mmwave_rospkg_generate_messages
[100%] Built target ti_mmwave_rospkg_generate_messages
]]
[[g! build Successful
[100%] Linking CXX executable /home/username/catkin_ws/devel/lib/ti_mmwave_rospkg/ti_mmwave_rospkg
[100%] Built target ti_mmwave_rospkg Scanning dependencies of target ti_mmwave_rospkg_generate_messages
[100%] Built target ti_mmwave_rospkg_generate_messages
]]
## Running the driver

View File

@@ -36,4 +36,5 @@ measureRangeBiasAndRxChanPhase 0 1.5 0.2
CQRxSatMonitor 0 3 5 123 0
CQSigImgMonitor 0 119 4
analogMonitor 1 1
calibData 0 0 0
sensorStart

View File

@@ -37,4 +37,5 @@ measureRangeBiasAndRxChanPhase 0 1.5 0.2
CQRxSatMonitor 0 3 5 123 0
CQSigImgMonitor 0 119 4
analogMonitor 1 1
calibData 0 0 0
sensorStart

View File

@@ -47,4 +47,5 @@ analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 8.92
cfarFovCfg -1 1 -1 1.00
calibData 0 0 0
sensorStart

View File

@@ -46,4 +46,5 @@ analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 8.92
cfarFovCfg -1 1 -6.48 6.48
calibData 0 0 0
sensorStart

View File

@@ -47,4 +47,5 @@ analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 8.92
cfarFovCfg -1 1 -1 1.00
calibData 0 0 0
sensorStart

View File

@@ -46,5 +46,6 @@ analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 8.92
cfarFovCfg -1 1 -1 1.00
calibData 0 0 0
sensorStart

View File

@@ -47,4 +47,5 @@ analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 8.40
cfarFovCfg -1 1 -5.02 5.02
calibData 0 0 0
sensorStart

View File

@@ -0,0 +1,53 @@
% ***************************************************************
% Created for SDK ver:03.02
% Created using Visualizer ver:3.2.0.1
% Frequency:60
% Platform:xWR68xx
% Scene Classifier:best_range_res
% Azimuth Resolution(deg):15 + Elevation
% Range Resolution(m):0.047
% Maximum unambiguous Range(m):9.04
% Maximum Radial Velocity(m/s):5.09
% Radial velocity resolution(m/s):0.64
% Frame Duration(msec):33.333
% Range Detection Threshold (dB):15
% Doppler Detection Threshold (dB):15
% Range Peak Grouping:enabled
% Doppler Peak Grouping:enabled
% Static clutter removal:disabled
% Angle of Arrival FoV: Full FoV
% Range FoV: Full FoV
% Doppler FoV: Full FoV
% ***************************************************************
sensorStop
flushCfg
dfeDataOutputMode 1
channelCfg 15 7 0
adcCfg 2 1
adcbufCfg -1 0 1 1 1
profileCfg 0 60 41 7 40 0 0 100 1 240 7500 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 4
chirpCfg 2 2 0 0 0 0 0 2
frameCfg 0 2 16 0 33.333 1 0
lowPower 0 0
guiMonitor -1 1 0 0 0 0 0
cfarCfg -1 0 2 8 4 3 0 15 0
cfarCfg -1 1 0 4 2 3 1 15 1
multiObjBeamForming -1 1 0.5
clutterRemoval -1 1
calibDcRangeSig -1 0 -5 8 256
extendedMaxVelocity -1 0
bpmCfg -1 0 0 1
lvdsStreamCfg -1 1 1 1
compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
measureRangeBiasAndRxChanPhase 0 1.5 0.2
CQRxSatMonitor 0 3 4 99 0
CQSigImgMonitor 0 119 4
analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 9.00
cfarFovCfg -1 1 -5.14 5.14
calibData 0 0 0
sensorStart

View File

@@ -47,4 +47,5 @@ analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 8.92
cfarFovCfg -1 1 -1 1.00
calibData 0 0 0
sensorStart

View File

@@ -48,4 +48,5 @@ analogMonitor 0 0
aoaFovCfg -1 -90 90 -90 90
cfarFovCfg -1 0 0 9.00
cfarFovCfg -1 1 -5.14 5.14
calibData 0 0 0
sensorStart

View File

@@ -0,0 +1,91 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Safety Bubble with ROS for mmWave Release Notes - Version 1.1</title>
</head>
<!-- START PRE -->
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/fonts/ubuntu-regular-woff.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/fonts/glyphicons-halflings-regular.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/themes/united2.min.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/themes/bootstrap-responsive.min.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/strapdown.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/styles/link.css"/>
<!-- END PRE -->
<xmp style="display:none;" class="col-xs-6">
Safety Bubble with ROS for mmWave Release Notes
=============
Overview
========
This lab allows for four TI mmWave sensors and a Turtlebot2 to be used with popular mapping and libraries in the Robot Operating System (ROS) environment, familiar to many robotics engineers.
The lab uses the move_base libraries with TIs mmWave ROS Driver Package software to interface to the TI mmWave sensor. The lab supports use of IWR6843ISK ES2.0 Evaluation Module.
With the TI ROS driver and packages from the ROS community (ros.org) engineers may evaluate robot bubble sensing quickly and easily.
In this lab, the robot will move forward at a defined maximum speed. When an object come within a certain distance
to the robot, the robot will first slow down. If the same object continues to approach the robot, the robot will then stop moving forward.
Once the robot has cleared the object, the robot will speed up again to its maximum speed. It is assumed that the slow zone bubble is larger than the stop zone bubble.
Features
========
* Integrates the TI mmWave ROS driver into the ROS Turtlebot2 platform to allow
the TI mmWave sensor IWR6843ISK EVM to be used as a 3-D sensor
* Allows the driver to be compatible with multiple mmWave sensors.
* Demonstrates mapping using the the TI mmWave sensor with the ROS Octomap
package
* Demonstrates navigation with collision-avoidance using the TI mmWave sensor
with the ROS move_base package
* Creates bubbles around the robot and performs different behavior depending on object distance.
Resolved Incident Reports
=========================
The following are Incident Reports resolved in this release:
* N/A
Known Limitations
============
The following are Known Limitations in this release:
* Currently supported/tested for IWR6843ISK ES2.0 EVM only
* The mmWave EVM must be flashed with:
* The mmWave SDK version 3.5 out-of-box demo firmware for IWR6843ISK ES2.0
* The fake_localization ROS navigation package is used to allow direct setting of
the robots initial pose (position/orientation) and goal pose. Therefore, the
gmapping and amcl ROS navigation packages are not used.
* The robot only moves forward.
* When the robot stops, and after the costmaps are cleared, if an object is still in the stop zone, the robot will suddenly move forward and immediately stop.
Work Arounds for Major Known Issues
===================================
The following are workarounds for each known issue with a major severity that exists in this release:
* N/A
Changes in Version 1.1
========================
The following is a list of changes compared to the previous release.
- Changed instructions to download code from git.ti.com
- Merged source code to Autonomous Robotics Lab.
</xmp>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/highlight/styles/zenburn.css"/>
<script src="../../../../.metadata/.html/scripts/strapdown/vendor/jquery-1.11.2.min.js"></script>
<script src="../../../../.metadata/.html/scripts/strapdown/vendor/bootstrap.min.js"></script>
<script src="../../../../.metadata/.html/scripts/highlight/highlight.pack.js"></script>
<script src="../../../../.metadata/.html/scripts/strapdown/v/0.2/strapdown.js"></script>
<script src="../../../../.metadata/.html/scripts/toolbox.js"></script>
<script src="../../../../.metadata/.html/scripts/toolbox_fixes.js"></script>
</html>

View File

@@ -0,0 +1,158 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Safety Bubble with ROS for mmWave User's Guide - Version 1.1 </title>
</head>
<!-- START PRE -->
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/fonts/ubuntu-regular-woff.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/fonts/glyphicons-halflings-regular.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/themes/united2.min.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/themes/bootstrap-responsive.min.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/strapdown/v/0.2/strapdown.css"/>
<link rel="stylesheet" href="../../../../.metadata/.html/styles/link.css"/>
<!-- END PRE -->
<xmp style="display:none;" class="col-xs-6">
360° Safety Bubble with ROS for mmWave
===========
This lab allows for four TI mmWave sensors and a Turtlebot2 to be used with popular mapping and libraries in the Robot Operating System ([ROS](http://wiki.ros.org/)) environment.
The lab uses the move_base libraries with TIs mmWave ROS Driver Package software to interface to the TI mmWave sensors. The lab supports use of IWR6843ISK ES2.0 Evaluation Module.
With the TI ROS driver and packages from the ROS community (ros.org) engineers may evaluate robot bubble sensing quickly and easily.
In this lab, the robot will move forward at a defined maximum speed. When an object come within a certain distance
to the robot, the robot will first slow down. If the same object continues to approach the robot, the robot will then stop moving forward.
Once the robot has cleared the object, the robot will speed up again to its maximum speed. It is assumed that the slow zone bubble is larger than the stop zone bubble.
Visit this link for an example demonstration: [http://www.ti.com/mmWaveROSsafetybubblevideo](http://www.ti.com/mmWaveROSsafetybubblevideo)
Below is an image depicting how the bubble demonstration functions. Note that the numbers shown in the image are configurable: <img src="images/DemoDesc.PNG" class="img-responsive"/>
To enable a full 360° field of view, four TI mmWave sensors are used. Should users not have access to four sensors, the lab also functions with one sensor. However, a fully surrounding field of view will not be possible.
## Hardware and Software Setup
Before starting the safety bubble demo, please follow the directions described in the [ROS Setup Guide with TI mmWave](../../common/docs/Turtlebot_HWSW_setup.html).
This guide will explain which hardware is necessary, how to setup the hardware, and the software installation process.
## 1. Sensor Bubble Demo
---------------
Here are the steps to run the sensor bubble demo.
1. Close all previous terminal windows if any were open.
1. Open a new terminal and change directory to the autonomous_robotics_ros folder provided in the mmwave_ti_ros git repository.
```
cd mmwave_ti_ros/autonomous_robotics_ros
```
2. SSH into the remote laptop, and run the following. If the EVM was not in a good state the roslaunch command will fail. Try resetting the EVM by
pressing the NRST button on the EVM and then run the desired roslaunch command again. The `<device>` tag noted below can be one of the following: `6843ISK` or `6843AOP`.
```
$ roslaunch ti_mmwave_rospkg bubble_sensor_north.launch config:=3d device:=<device>
```
3. If there are no errors, then the north sensor has been configured correctly. Now stop the process by pressing 'Ctrl+C'. Single sensor users can now continue to the next step. For use with four sensors, repeat step 2 three more times but replacing 'bubble_sensor_north.launch'
with 'bubble_sensor_east.launch', 'bubble_sensor_west.launch', and 'bubble_sensor_south.launch', stopping the process with 'Ctrl+C' after each command. This process ensures that each sensor is configured correctly. Skipping this step is not recommended.
4. Open a new terminal window on the remote machine, ssh into the TurtleBot laptop and bring up the
TurtleBot and mmWave EVM with the command below. The `<device>` tag noted below can be one of the following: `6843ISK` or `6843AOP`.
* For setups running a single sensor:
```
$ roslaunch turtlebot_bringup minimal_single_sensor.launch mmwave_device:=<device>
```
* For setups running four sensors:
```
$ roslaunch turtlebot_bringup minimal_quad_sensor.launch mmwave_device:=<device>
```
5. To bring up the move_base and fake_localization nodes, open a new terminal window on the remote machine, ssh into the TurtleBot
laptop and run the following command.
* For single sensor:
```
$ roslaunch turtlebot_mmwave_launchers radar_navigation_single.launch
```
* For quad sensors use:
```
$ roslaunch turtlebot_mmwave_launchers radar_navigation_quad.launch
```
**Note**: You may see “octree is empty” warnings when there are no objects detected in front of the mmWave sensors.
5. At this point, the point clouds for all sensors and the global costmap should be alive. Open a new terminal window on
the remote machine and run the following command which will open a pre-defined Rviz configuration customized for the navigation demo.
* To show the inflation layer which is used for motion control (the command is all one line):
```
$ rosrun rviz rviz -d mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_mmwave_launchers/launch/bubble_visualization.rviz
```
* To hide the inflation layer and only show the point cloud data:
```
$ rosrun rviz rviz -d mmwave_ti_ros/autonomous_robotics_ros/src/turtlebot_mmwave_launchers/launch/bubble_visualization_2.rviz
```
**Note**: Both options show the point cloud from all four sensors, while each color represents a sensor direction. Specifically, points seen by the north sensor are displayed in purple, east sensor in red, south sensor in blue, and west sensor in orange.
6. Running the following will start the robot moving forward and either slow down or stop for a certain time
depending on whether or not objects are within the slow and stop zones. Both single and quad sensor users can execute:
```
$ roslaunch ti_safety_bubble controller.launch
```
[[r! The robot will now move forward
The robot will stop when an object in front of the north sensor is detected. However, it will continue to move
forward after some time, and then stop again. This process of moving forward and stopping continues until the
program has stopped. Always be ready to terminate the program by pressing Ctrl+C.
]]
# How It Works
---------------
This section will describe how the 360° safety bubble demo works. This lab uses a large portion of the open sourced
[ROS navigation stack](https://http://wiki.ros.org/navigation), and primarily uses the global costmap. The navigation
stack has been setup to input the point cloud from all 4 mmWave sensors into the global and local costmaps.
The navigation stack does not take control and navigate around the obstacles. Instead, by launching controller.launch,
the odomListener node takes the obstacle information from the global costmap and calculates the distance to the robot.
If the distance is within the slow zone threshold, the node then sends a velocity command to slow down the robot. If the
distance is within the stop zone threshold, a stop velocity is published. Information in the global costmap is always saved,
which is not suitable for moving objects as a history of where the objects has previously been will be stored. Thus is the
need to periodically clear the global costmap. This way only the recent obstacle layer history will be used.
## Configurable Parameters
---------------
1. The size, position, and resolution of the global costmap can be adjusted. To do this, edit the file 'global_costmap_params.yaml' in the path 'turtlebot/turtlebot_apps/turtlebot_navigation/param/'.
2. The size of zone bubbles and the time to clear costmaps are configurable. Zone bubbles are defined as radius from the center of the robot. Edit the parameters "slow_radius", "stop_radius", and "clear_costmap_period_secs" in controller.launch in the path 'ti_safety_bubble/launch/'.
Need More Help?
===========
* Fort Turtlebot2 issues and questions: <http://wiki.ros.org/Robots/TurtleBot#Robots.2BAC8-TurtleBot.2BAC8-kinetic.TurtleBot2>
* For ROS related questions: <https://answers.ros.org/questions/>
* Additional resources in the documentation of the mmWave SDK (note hyperlinks will only work if the mmWave SDK has been installed on PC):
* [mmWave SDK Module Doc located at `<mmwave_sdk_install_dir>/docs/mmwave_sdk_module_documentation.html`](file:///C:/ti/mmwave_sdk_03_04_00_03/docs/mmwave_sdk_module_documentation.html)
* [mmWave SDK User's Guide located at `<mmwave_sdk_install_dir>/docs/mmwave_sdk_user_guide.pdf`](file:///C:/ti/mmwave_sdk_03_04_00_03/docs/mmwave_sdk_user_guide.pdf)
* [mmWave SDK Release Notes located at `<mmwave_sdk_install_dir>/docs/mmwave_sdk_release_notes.pdf`](file:///C:/ti/mmwave_sdk_03_04_00_03/docs/mmwave_sdk_release_notes.pdf)
* Find answers to common questions on [mmWave E2E FAQ](https://e2e.ti.com/support/sensors/f/1023/t/595725)
* Search for your issue or post a new question on the [mmWave E2E forum](https://e2e.ti.com/support/sensor/mmwave_sensors/f/1023)
</xmp>
<link rel="stylesheet" href="../../../../.metadata/.html/scripts/highlight/styles/zenburn.css"/>
<script src="../../../../.metadata/.html/scripts/strapdown/vendor/jquery-1.11.2.min.js"></script>
<script src="../../../../.metadata/.html/scripts/strapdown/vendor/bootstrap.min.js"></script>
<script src="../../../../.metadata/.html/scripts/highlight/highlight.pack.js"></script>
<script src="../../../../.metadata/.html/scripts/strapdown/v/0.2/strapdown.js"></script>
<script src="../../../../.metadata/.html/scripts/toolbox.js"></script>
<script src="../../../../.metadata/.html/scripts/toolbox_fixes.js"></script>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.