A Digital Twin Prototype of an Automated Guided Vehicle (Turtlebot3) 🐢.
Get docker and docker-compose, set it up nicely, then, in your terminal:
cd ./turtlebot3_docker
docker build -t turtlebot3-noetic .
docker network create ros
docker pull theasp/novnc:latest
docker run -d --rm --net=ros \
--env="DISPLAY_WIDTH=3000" --env="DISPLAY_HEIGHT=1800" --env="RUN_XTERM=no" \
--name=novnc -p=8080:8080 \
theasp/novnc:latest
📺 on localhost:8080/vnc.html .
docker run -d --net=ros -p 11311:11311 --name roscore osrf/ros:noetic-desktop-full roscore
cd ../RemoteDrivingDashboard-master
docker-compose up
(on your localmachine not Dokcer).
docker run -it --net=ros --env="DISPLAY=novnc:0.0" --env="HOST_IP=<machine-ip>" \
--env="ROS_MASTER_URI=http://roscore:11311" --env="TURTLEBOT3_MODEL=waffle_pi" \
turtlebot3-noetic bash
cd /AUC-Thesis-DT/OTA_RemoteDrivingConfigurator-main/Designs/
python3 QtGUI.py
then configure your dashboard through localhost:8080. 🕹
8. Open a new terminal and run a new turtlebot3-noetic image (step 6) then launch the turtlebot3 simulation. 💣
source ~/catkin_ws/devel/setup.sh
roslaunch turtlebot3_gazebo turtlebot3_house.launch
a. Configure Aws for Kinesis Data & Video Streaming check for help then:
bash /AUC-Thesis-DT/RemoteDrivingDashboard-master/cloudconnect.sh
bash /AUC-Thesis-DT/RemoteDrivingDashboard-master/turtlebot3_nodes.sh
or launch each node on its own
python3 ~/catkin_ws/src/actuate/src/actuate.py
python3 ~/catkin_ws/src/sensor_fusion/src/sensor_fusion.py
python3 ~/catkin_ws/src/laser_values/src/scan.py
Replace machine_ip and make sure to source the script with the AMESim env variables (valid only for users who have access to AMESim simcenter).
sudo docker run -it -v $AME:$AME --env="SPLM_LICENSE_SERVER=28000@orw-sddlic1" --env="SC1D_LICENSING_TYPE=ugs" --env="AME=$AME" --net=ros --env="HOST_IP=<machine_ip>" --env="ROS_MASTER_URI=http://roscore:11311" --env="LD_LIBRARY_PATH=$LD_LIBRARY_PATH" turtlebot3-noetic bash
then:
python3 /AUC-Thesis-DT/ROS-master/cloudconnect/Reactive_FMU.py
cd ./Streaming_docker
docker build -t streaming-node .
docker run -it --env"ROS_MASTER_URI=http://roscore:11311" --net=ros streaming-node bash
then
nano /opt/ros/kinetic/share/h264_video_encoder/config/sample_configuration.yaml
Configure AWS (check for help). Then:
roslaunch kinesis_video_streamer sample_application.launch
and have fun. 🎉