The TI-D3 mobile robot has following hardware components:
HW Component | Part |
---|---|
Main Processor | TDA4VM |
Main Processor Board | SK-TDA4VM |
FPD-Link Interface Board | TDA4 Fusion1 Rev C board |
Camera and Radar Fusion Sensor Kit | FS-6843AOP-IMX390 |
Motor Controller | TMS320F280039C, BOOSTXL-DRV8323RS |
DLP Projector | DLP3021LEQ1EVM |
Download the prebuilt SD card image from this link. This pre-built SD card has a couple of post-release patches (listed below) applied on top of Processor SDK Linux for Edge AI 8.4:
- V4L2 fix for IMX390 camera
- XR USB serial driver for D3's IWR6843AOP radar sensor
Flash the downloaded image to a SD card using the balenaEtcher tool, referring to the following section of Edge AI documentation: "Preparing SD card image".
On a SSH terminal for the TDA4, clone the project repository and run the initial setup script:
cd /opt
git clone https://github.com/TexasInstruments/ti-d3-mobile-robot-demos.git
bash /opt/ti-d3-mobile-robot-demos/init_setup.sh
The setup script performs:
- Install the mmWave radar driver ROS node
- Install ROS nodes from D3 Engineering's git repositories
- Update DTBO overlay to use IMX390 cameras
- Install LDC binary files for IMX390 cameras
The folder structure for the TI-D3 mobile robot project is as follows:
/opt/ti-d3-mobile-robot-demos/ # Project folder
+ README.md
+ docs/
+ docker/
+ scripts/
+ nodes/ # Pass to 'catkin_make --source ...'
+ ti_detect_go/
+ ti_dlp_command/
+ tid3_robot_demos/
+ radar_driver
+ ti_mmwave_tracker_rospkg/
+ serial/
+ d3_nodes
+ d3_fusion/
+ d3_gamepad/
+ d3_motorctl/
The TI-D3 mobile robot demos require Robotics SDK 8.4. Referring to the following sections of the SDK documentation, please build the Robotics SDK Docker image, and build the ROS packages provided in the SDK on the TDA4 and also on the Ubuntu PC. This should be done after running init_setup.sh
since there are patches that should be applied ahead.
Build the Docker container for the project:
/opt/ti-d3-mobile-robot-demos/docker/docker_build.sh
You can check if the Docker image is successfully built:
root@tda4vm-sk:/opt# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
j7-ros-noetic 8.4_tid3 249c4a3befa9 1 days ago 3.4GB
j7-ros-noetic 8.4 43dcdd403859 1 days ago 3.39GB
ubuntu 20.04 08f5c0d9d654 2 months ago 65.5MB
Run the Docker container for the project:
/opt/ti-d3-mobile-robot-demos/docker/docker_run.sh
Please note that we will use a separate ROS workspace, $HOME/j7ros_home/tid3_ws
, for the project. We assume that Robotics SDK has been already built under $HOME/j7ros_home/ros_ws
.
$HOME/j7ros_home/
+ ros_ws # Exiting Robotic SDK workspace. Assume already ROS apps built following the SDK doc
+ tid3_ws # TI-D3 Mobile Robot project workspace
Build the ROS packages inside the project Docker container:
cd ~/j7ros_home/tid3_ws
# this is important to use the packages from Robotics SDK
source ~/j7ros_home/ros_ws/devel/setup.bash
catkin_make --source /opt/ti-d3-mobile-robot-demos/nodes
source devel/setup.bash
A Ubuntu PC is required for visualization of ROS topics published from the TDA4 target. We have tested only with native x86_64 Ubuntu PCs, and have not tested with any other Ubuntu systems: including Ubuntu virtual machines and Docker Desktop on Mac or Windows.
Clone the project repository and run the initial setup script:
mkdir -p ~/j7ros_home/tid3_ws/src
cd ~/j7ros_home/tid3_ws/src
git clone https://github.com/TexasInstruments/ti-d3-mobile-robot-demos.git
bash ~/j7ros_home/tid3_ws/src/ti-d3-mobile-robot-demos/init_setup.sh
The project is installed under $HOME/j7ros_home/tid3_ws/src
folder.
Build the Docker container for the project:
~/j7ros_home/tid3_ws/src/ti-d3-mobile-robot-demos/docker/docker_build_pc.sh
In a similar way as in TDA4, we have two ROS workspaces:
$HOME/j7ros_home/
+ ros_ws # Robotic SDK workspace. Assume ROS apps have been already built following the SDK doc
+ tid3_ws # TI-D3 Mobile Robot workspace
Before running the project Docker image, for ROS network settings please update J7_IP_ADDR
and PC_IP_ADDR
in $HOME/j7ros_home/setup_env_pc.sh
.
source ~/j7ros_home/setup_env_pc.sh
~/j7ros_home/tid3_ws/src/ti-d3-mobile-robot-demos/docker/docker_run_pc.sh
# if the Ubuntu PC uses a Nvidia GPU driver, please use below
GPUS=y ~/j7ros_home/tid3_ws/src/ti-d3-mobile-robot-demos/docker/docker_run_pc.sh
Build the ROS packages inside the project Docker container:
cd ~/j7ros_home/tid3_ws
# this is important to use the packages from Robotics SDK
source ~/j7ros_home/ros_ws/devel/setup.bash
catkin_make
source devel/setup.bash
TDA4: Run the Docker container for the project:
/opt/ti-d3-mobile-robot-demos/docker/docker_run.sh
In the project Docker container:
source devel/setup.bash
roslaunch tid3_robot_demos fusion_detect_go.launch
PC:
Make sure J7_IP_ADDR
and PC_IP_ADDR
are set correctly in $HOME/j7ros_home/setup_env_pc.sh
.
source ~/j7ros_home/setup_env_pc.sh
Run the project Docker image:
~/j7ros_home/tid3_ws/src/ti-d3-mobile-robot-demos/docker/docker_run_pc.sh
# if the Ubuntu PC uses a Nvidia GPU driver, please use below
GPUS=y ~/j7ros_home/tid3_ws/src/ti-d3-mobile-robot-demos/docker/docker_run_pc.sh
In the project Docker container:
source devel/setup.bash
roslaunch tid3_robot_demos fusion_rviz.launch
TDA4: In the project Docker container:
source devel/setup.bash
roslaunch d3_fusion drive.launch
In this demo, several TI technologies are coming together to showcase smarter, cost-effective and safety-certifiable robots of tomorrow. The ROS2-based application running on the TDA4VM processor demonstrates vision and radar sensor-fusion processing for 360-degree obstacle-detection and avoidance using 4x IWR6843AOP mmWave radar sensors and a 4x IMX390 vision camera. The TDA4VM board connects to a DLP-based HMI module for the robot to communicate with its surroundings via projecting signs such as LEFT/RIGHT/FORWARD/Scanning on the floor.
To find out more, please check D3 Engineering's landing page: https://www.d3engineering.com/solutions/robotic-inventory-scanning-using-sensor-fusion/
Source code: https://github.com/D3Engineering/edge-ai-ros-inventory-demo