This is the 'src' directory of the catkin workspace for the Tju Automated Guided Vehicle(TjuAgvCar).
Joystick controlling explanation
-
LT: Enabling motion
-
RT: Disabling motion(for emergency brake)
-
Left stick: Direction and speed controlling
-
A: Starting recording
-
B: Stopping recording
- There may be some delay because of large amount writing/reading of disks. But the timestamp should be 0 if recording is stopped.
- Nvidia Jetson TX1 Developer Kit
- Slamtec RPLIDAR A1
- Intel Realsense R200
- Logitech C925e web camera
- MiniBalance 4WD chassis
- Gowoops 150W DC-DC 10-32V to 12-35V Step Up Boost Converter Module
- usb 3.0 hub
-
Host side
- Ubuntu 16.04.04 x64
- Jetpack 3.2 or Jetpack 3.2.1
-
Jetson side
- Nvidia L4T 28.2(included in Jetpack 3.2 or Jetpack 3.2.1)
- ROS Kinetic Kame arm64
- RPLIDAR ROS Package
- librealsense
- Realsense ROS Package
- ROS Driver for V4L USB Cameras
- Python 3.5.2
- TensorFlow Python3 spec for Jetson TX1
-
SPECIAL THANKS to 西安邮电学院XNMS项目组 for codes to control MiniBalance 4WD chassis
In this part, what we're supposed to do is just flashing the Jetson TX1 with Jetpack 3.2 or 3.2.1 under Ubuntu 16.04. Instructions can be found here.
In this part, we are going to build a custom kernel and some essential modules for our Jetson TX1, in case we're going to use the Intel Realsense R200 and RpLidar A1. In order to do so, we follow instructions provided by JetsonHacks.com, and the github repository is here. Great thanks to JetsonHacks.com!
With this step finished, our kernel shall be ready for the Intel Realsense R200 and RpLidar A1.
In this part, we're going to install ROS on our Jetson TX1. With original instructions provided by JetsonHacks.com we are able to install ROS outside of China. Due to some well-known reason, the above instructions is not usable in China. So I change the source mirror of ROS to 'mirror.umd.edu', instructions can be found here.
- Numpy
- TensorFlow python3 spec for Jetson TX1
- OpenCV 3.4, both C++ and python3 binding
We'd like to use OpenCV3.4 in our codes, so we have to install it first for both C++ and python3. Instructions can be found here.
Actually there may be an error that we still can not import cv2 in python3 codes under ROS, because ROS, in default, will import cv2 for python2.7(all because ROS does not support python3). So we have to remove cv2.so in python2.7's dist-packages using the following command:
sudo mv /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so.bk
And after that, we should tell ROS to use the 'cv2.so' version of our installed opecv3.4, which is /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-aarch64-linux-gnu.so. Using the following to make a symbolic link:
cd /usr/local/lib/python3.5
sudo mkdir site-packages # if site-packages not exists
sudo ln -sf /usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-aarch64-linux-gnu.so /usr/local/lib/python3.5/site-packages/cv2.so
Last step, add the following line to your .bashrc or .zshrc file.
export PYTHONPATH = "/usr/local/lib/python3.5/site-packages:$PYTHONPATH"
With all the above steps we can now import cv2 in our python3 codes.