Week 2 (4th Period)

Week 2 (4th Period)

  • António Morais
  • João Carranca
  • João Pinheiro
  • 4th Period - Weekly Progress
  • April 28, 2024

3D Mapping

→ LIO-SAM

Following last week’s advancements, the algorithm still requires parameters representing the transformation of the LiDAR-IMU system (inertial measurement unit). This transformation was presented in the post from Week 7 (3rd Period). These parameters will serve as input to the LIO-SAM/config/params.yaml file.

# Extrinsics: T_lb (lidar -> imu) - not changed
extrinsicTrans: [0.0, 0.0, 0.0]
extrinsicRot: [-1, 0, 0,
               0, 1, 0,
               0, 0, -1]
extrinsicRPY: [0, -1, 0,
               1, 0, 0,
               0, 0, 1]

To obtain these parameters, a package referenced in issue #335 of the LIO-SAM GitHub repository is utilized. The package is known as LiDAR_IMU_Init , designed to calibrate the temporal offset and extrinsic parameters between LiDARs and IMUs.

The student in charge of mapping explored this package and configured it using Docker once again. Setting up the environment involves first git clone of the GitHub repository and then building the Docker image:

$ cd ~/catkin_ws/src/LiDAR_IMU_Init/docker
$ docker build -t <repo_name>:<tag>

Then enter the command below in the local terminal to enable Docker to communicate with Xserver on the host:

$ xhost +local:docker

With this done one can now run the container of the package with the following command:

$ dockerdocker run --privileged -it \
   --volume=${LiDAR_IMU_Init_repo_root}:/home/catkin_ws/src \
   --volume=/tmp/.X11-unix:/tmp/.X11-unix:rw \
   --net=host \
   --ipc=host \
   --shm-size=1gb \
   --name=${docker container name} \
   --env="DISPLAY=$DISPLAY" \
   ${docker image name} /bin/bash

A terminal inside the container should open up. Now, the package needs to be compiled. Then, it’s necessary to source the environment and run the actual package. The following commands perform all the mentioned steps.

$ catkin_make
$ source devel/setup.bash
$ roslaunch lidar_imu_init <filename>.launch

Similarly to other packages and algorithms used, the team initially checked if the method was working with the authors’ provided datasets. The one tested is called VLP16_IMU.bag and is available for download in the LiDAR_IMU_Init GitHub repository. This dataset is particularly important to test because the LiDAR is the same as the one that the team is using with the Jackal robot and also contains data from an external IMU, mirroring the team’s setup.

alter-text
Figure 1 - Process of running the VLP16_IMU.bag dataset.

From the video above, it appears that the package is functioning properly. During the dataset playback, it successfully detects the degree of excitation of each axis. Additionally, it performs an online refinement to apply the FAST-LIO algorithm, verifying the accuracy of the parameters determined by the synchronization process. This can also be observed by observing the construction of the map.

Further real tests were conducted with the Jackal robot this week. However, the outcomes were inconclusive as no significant results were achieved.

2D Path Planning/Guidance

During this week, the team conducted tests on both nodes of the code in simulation to assess their impact as intended. Specific tests were devised to evaluate the dynamic adjustments of the robot’s height and footprint.

For the footprint adjustments, scenarios were designed to assess situations where the extension of the robot’s arm would affect its path selection. One test involved placing the simulated robot in front of an entry point that was traversable with the arm in a contained state but not when fully extended. The simulation demonstrated that the robot advanced smoothly in the former case but halted in the latter to avoid a collision, validating the effectiveness of the footprint adjustment in practical scenarios.

Similarly, for the height adjustment node, tests were conducted using obstacles that were insignificant at lower heights but became obstacles at higher elevations. The simulation revealed that the robot progressed unhindered at lower heights but stopped to avoid collisions when surpassing the height limit.

Through these tests and others, the team confirmed in the simulated environment that the code achieved the expected results, validating its effectiveness.

3D Localization

During this week, the TIAGo robot’s wrist was not working, which prevented any tests from being conducted.

To avoid unexpected problems, such as both algorithms failing on the real robot when testing became possible, additional research was carried out to find and simulate new algorithms. Although some algorithms looked promising, they were not compatible with the robot or its sensors.

In parallel, an attempt was made to test the HDL and MCL3D algorithms on Jackal robot. However, this idea was abandoned due to configuration problems and sensor differences between Jackal and the robot used.

Related Posts

Week 3 (3rd Period)

Week 3 (3rd Period)

  • António Morais
  • 3rd Period - Weekly Progress

3D Mapping → LIO-SAM On Week 2 the team made progress regarding the LIO-SAM algorithm about testing it with datasets.

Read More
Week 2 (3rd Period)

Week 2 (3rd Period)

  • António Morais
  • 3rd Period - Weekly Progress

3D Mapping → A-LOAM In the context of the Mapping module, our team’s objective was to deploy the A-LOAM algorithm, and subject it to comprehensive testing in a simulated environment.

Read More
Week 4 (3rd Period)

Week 4 (3rd Period)

  • António Morais
  • 3rd Period - Weekly Progress

Website development During the first week since the start of the 2nd semester and along with it, the ElectroCap Challenge, the team focused on launching the current website this is written on.

Read More