Exercise 1 – AC


This topic contains 18 replies, has 5 voices, and was last updated by  Jon 3 years, 7 months ago.

Viewing 15 posts - 1 through 15 (of 19 total)
  • Author
  • #27602
    Liam Paull

    Hi all – the link for the instructions is here: http://liampaull.ca/courses/duckietown/exercises/ac.html

    Let’s discuss here.


    I re-flashed my SD card with ‘dts init_sd_card’ but now I can’t ssh to my duckiebot. The contents of my ~/.ssh/DT18_key_00.pub are:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFiaiFeU0Pc3ZjiGbjJOIx28ghcWPoem8jU1OSeJnbTkKT79vrzjIbYjkBg7uBlXb6kLnbHLWHUnPlLk2IUQTxHHvakubEJkJxePdN6XO+q1sKpEvz+1GL60iBKhRljCZ9h/CcJ78kkyNQkexHT15ZDMhOnUd8c9zxwUHxSjzPSOH5ns8bxjU3oSjmzDEojPnQJmY6Evhf5DVcKXenxkzs4XgDEo+ldKo37i30iUoFCL30OsXCP2tPcn1j39qjL7vnaUBO9WqY8eOssOHAX7/K1dNN1lDvNCKspq/2f05Ss8LopSpe6hOiMnPB0RlotJbZn+784kV1B4nJpqLj+EQr andrea@dorothy

    The ‘andrea@dorothy’ token at the end of the file contents seems odd.

    Any ideas?

    Liam Paull

    I will look into it asap



    Hello guys,

    I am getting a few errors.

    1) When I try to make Mr Quackers move I can get the virtual keyboard to start but the arrows do not make the duckiebot move. The docker container seem to be existent and I am using Ubuntu. The manual says that it shouldn’t work with MAC. So I am assuming it should work with Ubuntu.

    2) When I try to do live stream of the camera I get this error:

    QXcbConnection: Could not connect to display

    When I try to run this command
    container $ rqt_image_view

    3) I also get the message that I need to update the duckietown shell to get the newest version, and when I do
    DTS update
    it gives me another error

    the following untracked working tree files would be overwritten by merger: keyboard_control/installed.flag
    Please move or remove them before you merge.

    4) Finally when I run this command to run docker container for live camera streaming:

    $ docker -H Duckiebot name.local run -it –name ros-picam –network=host –device /dev/vchiq -v /data:/data duckietown/rpi-duckiebot-ros-picam:master18

    I got this error: Error response from daemon: client version 1.38 is too new. Maximum supported API version is 1.37.

    My work around is that I SSH into mrquackers and ran
    $ docker run -it –name ros-picam –network=host –device /dev/vchiq -v /data:/data duckietown/rpi-duckiebot-ros-picam:master18

    which seem to work and created the container.

    Hopefully someone came across the errors and solved them so that I can try to calibrate Mr Quackers.

    PS. I can get images from the camera 🙂



    Liam Paull

    Hi Jon,

    For the shell do the following

    $ sudo pip uninstall duckietown-shell
    $ rm $/.dt-shell
    $ pip install –user –no-cache-dir -U duckietown-shell

    for the others can you put here as much as possible of the output so we can see the errors that are happening?

    p.s. I will be in the lab on Monday all day to help with things

    Liam Paull

    Also – please make sure that you are “pulling” all of the docker containers before you run them.



    I managed to install duckietown version .39, but it still tells me I need to update.

    I will come Monday afternoon to try and solve the other issues with you.




    I figured out why I couldn’t log into my duckiebot after re-flashing. The username was set to ‘orlandom’ instead of ‘duckie’ as shown in the output of init_sd_card:

    —- Configuration passed: —

    This is weird as I had not specified a username when calling init_sd_card and by default it should be ‘duckie’. I looked at https://github.com/duckietown/duckietown-shell-commands/blob/master/init_sd_card/command.py and saw that it’s passing an environment variable $USERNAME to the shell script init_sd_card.sh, which is executed via a subprocess call.

    Since I already have an environment variable $USERNAME (set to ‘orlandom’), the subprocess is using that one instead of ‘duckie’. According to the definition of the function ‘call’ in the ‘subprocess’ module, the environment variable should have been overwritten, but in my case it was not.

    Anyway, if I have time, I will dig deeper. At least now I can log into my duckiebot with username ‘orlandom’!



    when I try to run the joystick demo (as from http://docs.duckietown.org/DT18/opmanual_duckiebot/out/rc_control.html 8.1.2)

    I get the following error:

    docker: Error response from daemon: linux runtime spec devices: error gathering device information while adding custom device "/dev/input/js0": no such file or directory

    May be related, but when I try to control through keyboard it doesn’t work. It launches the tool and the GUI reacts to me pressing the arrows (and quit), but nothing happens.
    All of this is from Ubuntu 16.04 (running on mac)



    I wanted to play with Mr Quackers at home but I can’t run the joystick container. On porter, the joystick container has the created status. When I try to start the container I get the following error:

    linux runtime spec devices: error gathering device information while adding custom device “/dev/input/js0”: no such file or directory

    I can still live stream.


    Liam Paull

    This is fixed in the docs the command to run should be:
    docker -H Duckiebot name.local run -dit --privileged --name joystick --network=host -v /data:/data duckietown/rpi-duckiebot-joystick-demo:master18



    It did fix it! Also allows me to control keyboard and calibrate wheels.

    Thanks 🙂




    When I run the keyboard_control from my ubuntu laptop, nothing happens to my duckiebot when I press on arrowkeys. On portainer, the joystick demo container stops when I launch the keyboard_control command.

    Also, my Picam containers crash with an I/O error, does that mean my camera is not well connected?

    Thank you!

    Liam Paull

    Hi Laurent,

    There’s a bug in one recent version of the SD card flashing script that the I2C and camera are not “enabled”, which I feel is likely what’s happening to you.

    SSH into your robot and type

    sudo raspi-config

    That will take you into a GUI -> go to “Interfacing Options”
    First choose “Camera” and move “No” to “Yes” , then do the same with the I2C.

    Go back and “Finish” – then it will tell you to reboot so do that and you should be good to go.




    Thank you for the reply Liam!

    Editing the rpi config worked for the keyboard demo: my bot can move!

    The picam containerS are still stopping once I try to get a still at port 8081 or using the gui utils. The error changed though, instead of an I/O error, this is what I read on the container:

    [INFO] [1539269176.827261]: [/excalibot/camera_node] ~res_h = 480 
    mmal: mmal_vc_port_enable: failed to enable port vc.null_sink:in:0(OPQV): ENOSPC
    mmal: mmal_port_enable: failed to enable connected port (vc.null_sink:in:0(OPQV))0x349f720 (ENOSPC)
    mmal: mmal_connection_enable: output port couldn't be enabled
    Traceback (most recent call last):
      File "/home/software/catkin_ws/src/05-teleop/pi_camera/src/camera_node_sequence.py", line 156, in <module>
        camera_node = CameraNode()
      File "/home/software/catkin_ws/src/05-teleop/pi_camera/src/camera_node_sequence.py", line 32, in _init_
        self.camera = PiCamera()
      File "/usr/local/lib/python2.7/dist-packages/picamera/camera.py", line 433, in _init_
      File "/usr/local/lib/python2.7/dist-packages/picamera/camera.py", line 513, in _init_preview
        self, self._camera.outputs[self.CAMERA_PREVIEW_PORT])
      File "/usr/local/lib/python2.7/dist-packages/picamera/renderers.py", line 558, in _init_
      File "/usr/local/lib/python2.7/dist-packages/picamera/mmalobj.py", line 2212, in enable
        prefix="Failed to enable connection")
      File "/usr/local/lib/python2.7/dist-packages/picamera/exc.py", line 184, in mmal_check
        raise PiCameraMMALError(status, prefix)
    picamera.exc.PiCameraMMALError: Failed to enable connection: Out of resources
    ================================================================================REQUIRED process [excalibot/camera_node-1] has died!
    process has died [pid 96, exit code 1, cmd /home/software/catkin_ws/src/05-teleop/pi_camera/src/camera_node_sequence.py __name:=camera_node __log:=/root/.ros/log/72e31584-cd58-11e8-bc20-b827eb883820/excalibot-camera_node-1.log].
    log file: /root/.ros/log/72e31584-cd58-11e8-bc20-b827eb883820/excalibot-camera_node-1*.log
    Initiating shutdown!
    [excalibot/raw_cam_info_reader_node-4] killing on exit
    [excalibot/cam_info_reader_node-3] killing on exit
    [excalibot/decoder_node-2] killing on exit
    [excalibot/camera_node-1] killing on exit
    [INFO] [1539269177.627882]: [/excalibot/raw_cam_info_reader_node] Shutdown.
    [INFO] [1539269177.646157]: [/excalibot/cam_info_reader_node] Shutdown.
    shutting down processing monitor...
    ... shutting down processing monitor complete
Viewing 15 posts - 1 through 15 (of 19 total)

You must be logged in to reply to this topic.