Week 4

To-do

These were the tasks received from the previous meeting

  • Attempt to fix the FastDDS issue
  • Mount RoboticsAcademy to the Docker Image and try to figure out the changes that can be reflected
  • Explore the breaking changes when migrating from ROS1 to ROS2

Approach

Task 1

The details of the fix required in this task is described in this issue and in my Week 3 Blog. Clearly there is a problem while cloning the FAST-DDS repository. Using my mentor’s valuable advice, I looked up the issue on the repository and found another similar issue. This comment suggested that the pointer to arithmetic conversion error has been solved in the release version 2.0.2. Therefore, I decided to give running the version 2.0.2 of FastDDS a shot.

I made the following changes in the Dockerfile-foxy.base:

# Fast-DDS (Fast-RTPS 2.0.2)
RUN git clone --recursive https://github.com/eProsima/Fast-DDS.git -b v2.0.2 /tmp/FastRTPS-2.0.2 \
	&& cd /tmp/FastRTPS-2.0.2 \
	&& mkdir build && cd build \
	&& cmake -DTHIRDPARTY=ON -DSECURITY=ON .. \
	&& cmake --build . --target install -- -j $(nproc) \
	&& rm -rf /tmp/*

This step completed successfully after retrying build.

Task 2

I used the following command to mount the GitHub cloned RoboticsAcademy folder to the one with the same name present in the Docker container.

docker run -it \
       --rm \
       -v /tmp/.X11-unix:/tmp/.X11-unix \
       -v /home/pratik/RoboticsAcademy:/RoboticsAcademy \
       --name foxy_radi_container \
       -p 8000:8000 -p 2303:2303 -p 1905:1905 -p 8765:8765 -p 6080:6080 -p 1108:1108 -p 6081:6081 -p 1831:1831 -p 7681:7681 \
       jderobot/robotics-academy:4.2.0 ./start.sh

Initially, the Amazon Exercise produced by the RoboticsAcademy Page is shown as follows:

Changed

However, since I had mounted my own system’s RoboticsAcademy folder, I changed a tiny bit of code to see if the changes are shown in the web browser. I navigated to exercises/templates/exercises/amazon_single/exercise.html and changed the lines 7 through 11 to this piece of code.

<iframe id="iframeGzweb" style="display:none;" src="" width="100%" height="100%" ></iframe>
</div>
<div class="split b">
    <iframe id="console" style="display:none;" src="" width="100%" height="50%"></iframe>
    <iframe id="iframeRvizweb" style="display:none;" src="" width="100%" height="50%" ></iframe>

Here, I tried to replace the Gazebo Web Client’s position with that of Rviz2. This produced the following effect:

Original

This clearly shows and proves that the changes made in the local directory are reflected in the docker container once they are saved and the local directory is mounted to the analogous directory of the Docker container.

Task 3

Refer #musings