The Autonomous Plug-In HYbrid Vehicle research platform (APIHYV) finally arrives home

Image preview

Driverless vehicle research on campus recently got a big boost thanks to a National Science Foundation grant. This new Chrysler minivan from Rochester Hills-based Dataspeed is loaded with a full suite of sensors needed for road-legal, fully autonomous driving, including advanced optical cameras and a LIDAR system for creating 360-degree maps of the surrounding environment. Assistant Professor of Electrical and Computer Engineering Jaerock Kwon (far left) and his graduate students (from left) Aws Khalil, Elahe Delavari and Feeza Khan Khanzada are among the researchers who will be using the new AV in their research. (Photo by Max Parham) https://lnkd.in/eNGxBR6K

https://www.linkedin.com/posts/department-of-electrical-and-computer-engineering-university-of-michigan-dearborn_driverless-vehicle-research-on-campus-recently-activity-7180936476258414592-ONNU?utm_source=share&utm_medium=member_desktop

A New Project: ML for Agricultural Vehicles

A project titled “Development of Machine Learning Algorithms for Electric Autonomous Agricultural Vehicles” has been awarded. This project is sponsored by WApplE Cloud Co., Ltd. It will start on January 1, 2024, and end on June 30, 2024.

Campus Grant awarded

The proposal, “RID: Open-Source Autonomous Ground Vehicular Robotics Platform,” has been awarded for Research Initiation & Development (RID – FY24 Fall Cycle). 1/15/2024 – 1/14/2025.

I am looking for a graduate student who will work on this project during this summer. Please contact me if you are interested in joining this project.


Project Abstract:

The new industry of highly automated mobile robots, including autonomous vehicles, is in high demand for skilled engineers. Engineers for the industry require interdisciplinary knowledge and skillsets, including basic programming skills, electric circuitry, robotic kinematics, machine learning, and Artificial Intelligence (AI). Academia has been trying to respond to the high demand, and there have been efforts to integrate the interdisciplinary knowledge of highly automated intelligent systems, including autonomous vehicles, into their curricula. The integration of the new skillsets or restructuring of the existing curricula is, however, a very challenging task. Some efforts have been made by introducing a small-scale (1/24th, 1/16th, or 1/10th) vehicle to teach the relevant knowledge and skillsets and train researchers and engineers. The MIT RACECAR, F1TENTH, MuSHR, Go-CHART, Dockiebots of Duckietown, and Donkey Car are part of the efforts. A major limitation of the current approaches is in the following two dimensions: (i) The lack of reproducibility owing to heavy craftsmanship requirements due to extensive modifications of the vehicular platform that include removal and replacement of motors, installation of a new ESC (Electronic Speed Controller), custom Printed Circuit Boards, etc. (ii) The restricted onboard processing capabilities due to the platform size (1/24th scale two-wheel or four-wheel differential driving and 1/10th scale Remote Controlled (RC) car). To overcome these major limitations, this project brings forward an innovative idea of building a 1/4th scaled vehicle without extensive modification and providing full-stack software for AI-based perception, planning, and control.

Install TensorFlow with CUDA, cuDNN in Anaconda Environment

Introduction

Last update: 11/11/2023 – TensorFlow 2.14

Notice:

Prerequisites

NVIDIA Driver: a.k.n. Graphics card driver. 535 is the latest version as I am writing this article.

sudo apt install nvidia-driver-535

Then, reboot your system. Check the driver is properly installed with the following command.

nvidia-smi

Install CUDA (a.k.a CUDA Toolkit) and cuDNN

Assuming an Anaconda environment you use is jaerock. Python 3.10 is chosen to be safe since TensorFlow 2.14 requires 3.9 - 3.11. Also, note that cuDNN 8.6 is recommended according to TensorFlow 2.14 software requirements. No conda package of cuDNN 8.6 was found in the Anaconda default channel. So, 8.9 is used instead.

conda create --name jaerock python=3.10
conda activate jaerock
conda install cudatoolkit=11.8 cudnn=8.9

mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export OLD_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}' > $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh

mkdir -p $CONDA_PREFIX/etc/conda/deactivate.d
echo 'export LD_LIBRARY_PATH=${OLD_LD_LIBRARY_PATH}' >  $CONDA_PREFIX/etc/conda/deactivate.d/env_vars.sh
echo 'unset OLD_LD_LIBRARY_PATH' >> $CONDA_PREFIX/etc/conda/deactivate.d/env_vars.sh

Deactivate the conda environment or just close the current working terminal and re-open it.

conda activate jaerock
pip install tensorflow[and-cuda]

After installing, you can test if the TensorFlow runs with GPUs.

python3 -c "import os; os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'; import tensorflow as tf; print('Num GPUs Available: ', len(tf.config.list_physical_devices('GPU')))"

You will see Num GPUs Available: #

If # is other than 0, you are all set.

1

Gazebo9 Model Server Error

Problem

The version of the default Gazebo9 with ROS Melodic on Ubuntu 18.04 is 9.0.0. This version has an issue connecting to the API server for Gazebo models. The error messages below indicate that Gazebo cannot connect to the server.

[Err] [REST.cc:205] Error in REST request

libcurl: (51) SSL: no alternative certificate subject name matches target host name 'api.ignitionfuel.org'

Solution

Gazebo Install

NOTE: People say that the server name inside ~/.ignioin/fuel/config.yaml must be changed. But this is not true. You don’t need to change this file. Just keep the original.

Upgrade your Gazebo 9.0.0 to the latest Gazebo 9. As of today when I write this article, 9.19.0 is the latest version of Gazebo 9.

sudo apt update
sudo apt install gazebo9

Check your Gazebo version.

gazebo --verbose
Gazebo multi-robot simulator, version 9.19.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

Gazebo multi-robot simulator, version 9.19.0
Copyright (C) 2012 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org

[Msg] Waiting for master.
[Msg] Waiting for master.
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Connected to gazebo master @ http://127.0.0.1:11345
[Msg] Publicized address: 10.0.2.15
[Msg] Publicized address: 10.0.2.15
[Msg] Loading world file [/usr/share/gazebo-9/worlds/empty.world]

If you still see 9.0.0, please follow the steps below.

  • Setup your computer to accept software from packages.osrfoundation.org.
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
  • Setup keys
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
  • Install Gazebo9
sudo apt update
sudo apt install gazebo9
sudo apt install libgazebo9-dev

Upgrade libignition-math2

After upgrading Gazebo 9.0.0 to 9.19.0, when you start gazebo, you may see error messages. Then you have to upgrade libignition-math2.

  • Upgrade libignition-math2
sudo apt upgrade libignition-math2

Paper Accepted for IROS 2023

Our work on the adaptive neural ensemble controller has been accepted for the 2023 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2023), which will be held October 1 – 5, 2023, at Huntington Place in Detroit, Michigan, USA. The paper title is “ANEC: Adaptive Neural Ensemble Controller for Mitigating Latency Problems in Vision-based Autonomous Driving.”

VirtualBox sudo error

When you use sudo, you will see the error messages as below.

<em>user-name</em> is not in the sudoers file. This incident will be reported.

The default user does not have the sudo group. Let’s assume that the user name is jaerock. We need to make jaerock have sudo group. To make this change, use usermod command. Only super user can use this command. Thus, switch to super user using su, then you will be asked to enter a password. Use your user password. Then use usermod command to add sudo group to your user account. After this, simply use exit. Then you will be back to your account.

su

usermod -a -G sudo jaerock

exit