Coding period week 4

2 minute read

Week 4

Almost a month has passed since the coding period started!. This week I mainly worked on forks of the official Jderobot’s repositories, and addressed some issues.

The challenge for this week was to upgrade Behavior Studio to python3 with ROS Noetic and Focal Fossa.

Thanks to containerization which make the iterations faster, and managed to get most functionalities working inside the container, although I made some refactoring because in this migration not only python2 to python3 was updated, also packages were update like tensorflow 1 to tensorflow 2.

Foo
Behavior Studio displayed inside container through VNC

Week’s 3 issues

Solved the issues mentioned in the week3’s post related to PyQt5 in ubuntu 20.04 and Missing assets for ROS Noetic. I was not sure why some images were not loaded in the GUI, but turns out that after generating the binaries in resources.py from resources.qrc needs to be imported before using the assets. Although it was imported, it was using the relative path so using the absolute path fixed the problem.

I learned more about PyQt5 going through the code to figure out what was missing!.

The other problem I had last week about ROS nodes, was solved by building the latest jderobot-assets for Noetic, once the assets were sourced, Behavior Studio stopped complaining about the master node.

Building Base from source

To get a deep understanding of how base is built from source, I created a docker following Jderobot’s base repository where I noticed some things were missing in the instructions so I made a PR updating it.

Running Behavior Studio within container

I made little guide how to install and run a container with Behavior Studio for noetic.

Each time I make changes in the codebase I am rebuilding the container so others can try the new changes, at the end of the post I listed some links to the containers.

docker run -dit --name behavior-studio-noetic \
	-p 5900:5900 \ # vnc
	-p 8888:8888 \ # jupyter
	uddua/jderobot-behavior-studio:noetic

VNC viewer for chrome or RealVNC can be used to access the GUI through the port 5900.

The current password is jderobot, although it can be changed in the script vnc_startup.sh.

Foo
Jupyter lab for fast programming and testing in VNC container

Issues

Some issues that I already reported to other members of the Behavior Studio’ team is that in order to test brains functionalities in the new upgraded versions, I need some saved models that are available at the moment. Therefore, I am going to test those brains or models once they are available again.

In the following days I should make an Ubuntu 20.04 installation in my local machine in order to test out if the changes I made until now are working correctly as in the containers.

Week Highlights

References