Lab 1 will give you instructions to build, calibrate, and run your Duckiebot. At the end of this lab, you should be able to run ROS code on your robot using your class container.
Please read all instructions in the Duckiebot documentation carefully. Some items are optional and NOT required.
NOTE: Students enrolled in EECE.4560 only need to complete PART I. Students enrolled in EECE.5560 will need to complete PART I and PART II of the lab.
dts init_sd_card --hostname <duckiebot_name> --wifi duckietown:quackquack,<myhomenetwork>:<myhomepassword>
ping <duckiebot_name>.local
(if running this from a VM and it fails, try from your host system as well).
dts fleet discover
ssh <duckiebot_name>
If ssh doesn’t work, then you don’t have your ssh configured correctly. Refer to course slides to set it up properly.
Suggested completion: Feb 10, 2022
$ dts start_gui_tools <duckiebot_name>
When that starts you will have a connection to the ROS instance on the Duckiebot and can use debug tools. Run:
$ rqt_graph
And you should see a graph of all nodes and topics. Save an image of this graph (as legible as you can get it) to turn it in.
$ dts devel build -H <duckiebot_name>.local --pull
This step may take some time to run the first time as it is pulling images and code onto the robot. Be patient and ask on Slack if you need any help. If this step hangs for too long or your Duckiebot crashes, try running this before the above command:
!!!OPTIONAL COMMAND BELOW!!!
$ docker pull duckietown/dt-core:daffy
$ dts devel run -H <duckiebot_name>.local -s -M --cmd bash
The -H flag tells dts to run the container on another system, in this case, the Raspberry Pi or Nvidia Jetson on your robot. The -s flag syncs your code to the robot. We’ll cover this in more detail in Lab 2.
$ source /code/catkin_ws/devel/setup.bash
$ dt-launcher-build
$ roslaunch duckietown_demos lane_following.launch
Wait for the messages to stop (You should see health status change to “STARTED” at the end)
NOTE: you must demonstrate your robot in person to get full credit! If you are unable to schedule a time in person please contact the instructorASAP.