Demos
CoNSeRT has run the following demos so far 🛠️
Prerequisites to run the demos
Laptop
Account
Robot
Each prerequisite point is a link that you can press for more info.
Results
The expected result of this demo is to have our Duckiebot following the yellow and white lines of the Duckietown ignoring everything else (red lines, traffic lights, intersections, other vehicles, ducks, etc.).
Instructions
– Start containers
In order to run this demo, all of the Duckietown ROS nodes need to be up and running. This means that the following Docker images are needed: dt-duckiebot-interface
, dt-car-interface
, and dt-core
. Only the dt-core
needs to start manually as the others start with the robot startup.
If everything starts working we can start the high-level pipeline for the Demo by running the following command :
$ dts duckiebot demo –demo_name lane_following –duckiebot_name DUCKIEBOT_NAME –package_name duckietown_demos
After running the command we should wait until everything starts running correctly and all the containers start successfully.
– Autonomous driving
Now we need to run the keyboard controller by running the following command :
$ dts duckiebot keyboard_control DUCKIEBOT_NAME
Now the Duckiebot controller has popped up on your screen. By pressing a on our keyboard it starts the Lane Following. By pressing s we can stop the Lane Following. We can see the following table with the controlling keys and their functions.
– Visualization of detected lines
This step is optional and the only cause behind it is to see a nice visualization of the line segments that the robot detects. For that, we need to make lane_filter_node
publish all the image topics. In order to do that, we can use the start_gui_tools
to get a shell that is connected to the ROS system of the Duckiebot. To do that, we need to run the following command :
$ dts start_gui_tools DUCKIEBOT_NAME
After that, we set the ROS parameter verbose
to true
in order that the line_detector_node
will publish the image_with_lines
.
$ rosparam set /DUCKIEBOT_NAME/line_detector_node/verbose true
Demonstration
Troubleshooting
In case the dt-duckiebot-interface
and dt-car-interface
don’t run at the duckiebot via portainer run the following commands:
$ dts duckiebot demo –demo_name duckiebot-interface –duckiebot_name DUCKIEBOT_NAME –package_name duckiebot_interface –image duckietown/dt-duckiebot-interface:daffy-arm32v7
$ dts duckiebot demo –demo_name car-interface –duckiebot_name DUCKIEBOT_NAME –package_name car_interface –image duckietown/dt-car-interface:daffy-arm32v7
For more troubleshooting concerning this demo, you can visit directly the official website of Duckietown or get in contact with their official Slack channel.
Results
The expected result of this demo is to have our Duckiebot following the yellow and white lines of the Duckietown. Red lines and intersections are neglected as in the Lane Following (LF) demo. Although, in this demo, every time the Duckiebot finds another vehicle on its way, it will start blinking its tail lights in a greenish-yellow color while at the same time it will slow down as it gets closer.
This demo is run by using CV tools and the circuilar pattern to indentify & calculate the distance between the robots.
Instructions
– Start containers
In order to run this demo, all of the Duckietown ROS nodes need to be up and running. This means that the following Docker images are needed: dt-duckiebot-interface
, dt-car-interface
, and dt-core
. Only the dt-core
needs to start manually as the others start with the robot startup.
If everything starts working we can start the high-level pipeline for the Demo by running the following command :
$ dts duckiebot demo –demo_name multi_lane_following –duckiebot_name DUCKIEBOT_NAME –package_name duckietown_demos
After running the command we should wait until everything starts running correctly and all the containers start successfully.
– Autonomous driving
Now we need to run the keyboard controller by running the following command :
$ dts duckiebot keyboard_control DUCKIEBOT_NAME
Now the Duckiebot controller has popped up on your screen. By pressing a on our keyboard it starts the Lane Following. By pressing s we can stop the Lane Following. We can see the following table with the controlling keys and their functions.
– Visualization of detected lines
This step is optional and the only cause behind it is to see a nice visualization of the line segments that the robot detects. For that, we need to make lane_filter_node
publish all the image topics. In order to do that, we can use the start_gui_tools
to get a shell that is connected to the ROS system of the Duckiebot. To do that, we need to run the following command :
$ dts start_gui_tools DUCKIEBOT_NAME
After that, we set the ROS parameter verbose
to true
in order that the line_detector_node
will publish the image_with_lines
.
$ rosparam set /DUCKIEBOT_NAME/line_detector_node/verbose true
Demonstration
Extras
This demo can be developed way more using other solutions as well. For example :
- – By changing the ROS parameters in order to see a different stopping behavior.
- – Implementation of a new way of detecting the other vehicle.
- – Using other tools except for vehicle recognition (not CV tools and circular pattern recognition).
Troubleshooting
In case the dt-duckiebot-interface
and dt-car-interface
don’t run at the duckiebot via portainer run the following commands:
$ dts duckiebot demo –demo_name duckiebot-interface –duckiebot_name DUCKIEBOT_NAME –package_name duckiebot_interface –image duckietown/dt-duckiebot-interface:daffy-arm32v7
$ dts duckiebot demo –demo_name car-interface –duckiebot_name DUCKIEBOT_NAME –package_name car_interface –image duckietown/dt-car-interface:daffy-arm32v7
For more troubleshooting concerning this demo, you can visit directly the official website of Duckietown or get in contact with their official Slack channel.
Documentation for Lane Following with vehicle avoidance demo
Results
The expected result of this demo is to have our Duckiebot following all the lines of the Duckietown. Red lines and intersections are taken into consideration in this demo. The robot stops at every red line. In order to take control of the robot and stop the demo, we just have to press the stop button using the virtual joystick.
Instructions
– Start containers
In order to run this demo, all of the Duckietown ROS nodes need to be up and running. This means that the following Docker images are needed: dt-duckiebot-interface
, dt-car-interface
, and dt-core
. Only the dt-core
needs to start manually as the others start with the robot startup.
If everything starts working we can start the high-level pipeline for the Demo by running the following command :
$ dts duckiebot demo –demo_name indefinitea_navigation –duckiebot_name DUCKIEBOT_NAME
After running the command we should wait until everything starts running correctly and all the containers start successfully.
– Autonomous driving
Now we need to run the keyboard controller by running the following command :
$ dts duckiebot keyboard_control DUCKIEBOT_NAME
Now the Duckiebot controller has popped up on your screen. By pressing a on our keyboard it starts the Lane Following. By pressing s we can stop the Lane Following. We can see the following table with the controlling keys and their functions.
– Visualization of detected lines
This step is optional and the only cause behind it is to see a nice visualization of the line segments that the robot detects. For that, we need to make lane_filter_node
publish all the image topics. In order to do that, we can use the start_gui_tools
to get a shell that is connected to the ROS system of the Duckiebot. To do that, we need to run the following command :
$ dts start_gui_tools DUCKIEBOT_NAME
After that, we set the ROS parameter verbose
to true
in order that the line_detector_node
will publish the image_with_lines
.
$ rosparam set /DUCKIEBOT_NAME/line_detector_node/verbose true
Demonstration
Extras
This demo can be developed way more using other solutions as well. For example :
- – By changing the ROS parameters in order to see a different stopping behavior.
Troubleshooting
In case the dt-duckiebot-interface
and dt-car-interface
don’t run at the duckiebot via portainer run the following commands:
$ dts duckiebot demo –demo_name duckiebot-interface –duckiebot_name DUCKIEBOT_NAME –package_name duckiebot_interface –image duckietown/dt-duckiebot-interface:daffy-arm32v7
$ dts duckiebot demo –demo_name car-interface –duckiebot_name DUCKIEBOT_NAME –package_name car_interface –image duckietown/dt-car-interface:daffy-arm32v7
For more troubleshooting concerning this demo, you can visit directly the official website of Duckietown or get in contact with their official Slack channel.