All software parts are running in a docker container. Either build the image from source or download it from docker hub.
Note, the image does only work on ARM- Architecture!
Building the docker image:
1. Clone this repository
2. On the Jetson Nano go to Ackerbot/ackerbot_real_ws/src/robot_pkg
3. Open Terminal here
4. Close all other Applications (to have enough system memory, when building on Nano)
5. sudo docker build -t dschori/ackerbot:real -f Dockerfile .
To copy the build files and directories to the local file system.
- Build the workspace inside the container with:
catkin build -j2
- Then, copy the build files inside the container to the local file system with:
sudo docker run -d --name ackerbot dschori/ackerbot:real
sudo docker cp ackerbot:/workspace/catkin_ws/build ~/Ackerbot/ackerbot_real_ws/build
sudo docker cp ackerbot:/workspace/catkin_ws/devel ~/Ackerbot/ackerbot_real_ws/devel
sudo docker cp ackerbot:/workspace/catkin_ws/logs ~/Ackerbot/ackerbot_real_ws/logs
sudo docker rm -f ackerbot
sudo docker run -it --rm --privileged --net=host --name ackerbot \
-v ~/Ackerbot/ackerbot_real_ws/src/robot_pkg:/workspace/catkin_ws/src/robot_pkg \
-v ~/Ackerbot/ackerbot_real_ws/build:/workspace/catkin_ws/build \
-v ~/Ackerbot/ackerbot_real_ws/devel:/workspace/catkin_ws/devel \
-v ~/Ackerbot/ackerbot_real_ws/logs:/workspace/catkin_ws/logs \
dschori/ackerbot:real bash
When inside the docker container source the build with: source devel/setup.bash
This starts the Velodyne VLP-16 and the Realsense T265 Sensor
Open a new Terminal and go into the running container:
sudo docker exec -it ackerbot bash
Inside the container type:
source devel/setup.bash
roslaunch robot_pkg sensors.launch
For the TEB navigation as well as the localization of the vehicle Google Cartographer was used as SLAM algorithm.
To improve the mapping and localization process, IMU and Odometry Data from the Realsense T265 is fed into Cartographer.
This File starts the Google Cartographer SLAM process
roslaunch robot_pkg mapping.launch
This File starts the drive controller, one can now drive around. See: Teleop Twist
roslaunch robot_pkg drive.launch
Open RVIZ with the config file and monitor the nodes you want.
This File localizes the robot in a given map based on the laser scans and odometry data of the T265.
In a new Terminal run:
roslaunch robot_pkg localization.launch
This File launches the TEB Navigation packages
In a new Terminal run:
roslaunch robot_pkg teb_navigation.launch
Start RVIZ with the config file and set a "2D Nav Goal"
This File localizes the robot in a given map based on the laser scans and odometry data of the T265.
In a new Terminal run:
roslaunch robot_pkg localization.launch
Open the Inference Notebook to load the trained Agent, set a target and start the navigation.