DB21
DB21M
DB21
,DB21M
start_gui_tools
, ROS tools and no-vnc
DB17
DB18
DB19
Modified 2020-08-23 by frank-qcd-qk
This is the description of lane following with vehicle avoidance demo.
Wheels calibration completed.
Camera calibration completed.
Joystick demo has been successfully launched.
Lane Following demo gas veeb successfully completed
Modified 2020-08-23 by frank-qcd-qk
Assumption about Duckietown:
Modified 2020-08-23 by frank-qcd-qk
Modified 2020-08-23 by frank-qcd-qk
Modified 2020-08-23 by frank-qcd-qk
Modified 2020-08-23 by frank-qcd-qk
Running this demo requires almost all of the main Duckietown ROS nodes to be up and running. As these span 3 Docker images (dt-duckiebot-interface
, dt-car-interface
, and dt-core
). The dt-duckiebot-interface
and dt-car-interface
container typically starts with robot startup. You will need to start dt-core
manually.
First, check to make sure that dt-duckiebot-interface
and dt-car-interface
are running on your duckiebot via portainer, if not, do:
laptop $ dts duckiebot demo --demo_name duckiebot-interface --duckiebot_name DUCKIEBOT_NAME --package_name duckiebot_interface --image duckietown/dt-duckiebot-interface:daffy-arm32v7
laptop $ dts duckiebot demo --demo_name car-interface --duckiebot_name DUCKIEBOT_NAME --package_name car_interface --image duckietown/dt-car-interface:daffy-arm32v7
Then, we are ready to start the high-level pipeline for lane following:
laptop $ dts duckiebot demo --demo_name multi_lane_following --duckiebot_name DUCKIEBOT_NAME --package_name duckietown_demos
You have to wait a while for everything to start working. While you wait, you can check in Portainer if all the containers started successfully and in their logs for any possible issues.
Modified 2020-08-23 by frank-qcd-qk
If you have a joystick you can skip this next command, otherwise we need to run the keyboard controller:
laptop $ dts duckiebot keyboard_control DUCKIEBOT_NAME
Controls | Joystick | Keyboard |
---|---|---|
Start Lane Following | R1 | a |
Stop Lane Following | L1 | s |
Start the lane following. The Duckiebot should drive autonomously in the lane. Intersections and red lines are neglected and the Duckiebot will drive across them like it is a normal lane. You can regain control of the bot at any moment by stopping the lane following and using the (virtual) joystick. Resuming the demo is as easy as pressing the corresponding start button.
Et voilà! We are ready to drive around autonomously.
Modified 2020-08-23 by frank-qcd-qk
The expected result for the lane following with vehicle avoidance is that the duckiebot will blink its tail lights yellow (greenish yellow) when it gets close to the vehicle in the way, while slowing down. At a certain distance, the duckiebot will stop completely and blink its tail light red to signal other duckiebots behind that there is a road anomaly.
Modified 2020-08-23 by frank-qcd-qk
This step is not neccessary but provides a nice visualization of the line segments that the Duckiebot detects.
In order to visualize the duckiebot’s vehicle detection you can use the rqt_image_view
image tool and select the vehicle detection output. For more information about rqt_image_view
tools, you can find them here
Modified 2020-08-23 by frank-qcd-qk
Here are some additional things you can try:
Modified 2020-08-23 by frank-qcd-qk
Modified 2020-08-23 by frank-qcd-qk
Generic lane following problems can happen, such as:
For these problems, please refer to the duckiebot lane following tutorial here for troubleshooting instructions
Modified 2020-08-23 by frank-qcd-qk
Sometimes due to processing latency, the duckiebot will not be able to see the vehicle in front in time. This can also sometimes happen in the real world autonomous vehicles. It is an active research area and feel free to propose better solutions! Currently we use CV tools and the circuilar pattern to identify and calculate the distance between duckiebots.
To make sure the problem is not caused by the pipeline, you can also use the rqt_image_view
tool described above to make sure the duckiebot is not failing the circular pattern detection. You will also observe the latency of the image detection through there.