Implementing Robotics Applications with ROS 2 and AI on the NVIDIA Jetson Platform

Originally published at: https://developer.nvidia.com/blog/implementing-robotics-applications-with-ros-2-and-ai-on-jetson-platform-2/

Deep learning is being adopted in robotics to accurately navigate indoor environments, detect and follow objects of interest, and maneuver without collisions. However, the increasing complexity of deep learning makes it challenging to accommodate these workloads on embedded systems. While you can make trade-offs between accuracy and deep learning model size, compromising accuracy to meet…

Hi @jwitsoe
Could you extend how to run it on jp44 AGX Jetson within docker container please?
The instruction seems reffering to missed steps:
> sh docker_run.sh

This will initialize docker. Clone this repository using following command and follow build and run instructions for ros2 package from here.

What are the exact steps to follow after executing run docker_sh?
I wasn’t abler to find them in the file https://github.com/NVIDIA-AI-IOT/ros2_trt_pose/blob/main/docker/README.md
Moreover, when trying to sort out the containers iinternals with steps from a separate non dockerized setup it would run into error after

mkdir ros2_ws
ros2_ws/src/
git clone https://github.com/NVIDIA-AI-IOT/ros2_trt_pose.git
rosdep install --from-paths src --ignore-src --rosdistro eloquent -y
colcon build
root@nvidia-desktop:/ros2__ws# colcon build
Starting >>> pose_msgs
Starting >>> ros2_trt_pose
--- stderr: pose_msgs                                                            
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find FastRTPS (missing: FastRTPS_INCLUDE_DIR FastRTPS_LIBRARIES)
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /opt/ros/eloquent/share/fastrtps_cmake_module/cmake/Modules/FindFastRTPS.cmake:95 (find_package_handle_standard_args)
  /opt/ros/eloquent/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_c-extras.cmake:7 (find_package)
  /opt/ros/eloquent/share/rosidl_typesupport_fastrtps_c/cmake/rosidl_typesupport_fastrtps_cConfig.cmake:38 (include)
  /opt/ros/eloquent/share/rosidl_default_generators/cmake/rosidl_default_generators-extras.cmake:21 (find_package)
  /opt/ros/eloquent/share/rosidl_default_generators/cmake/rosidl_default_generatorsConfig.cmake:38 (include)
  CMakeLists.txt:23 (find_package)


---
Failed   <<< pose_msgs [0.82s, exited with code 1]
Aborted  <<< ros2_trt_pose [1.38s]                     

Summary: 0 packages finished [2.37s]
  1 package failed: pose_msgs
  1 package aborted: ros2_trt_pose
  1 package had stderr output: pose_msgs

May I know how to proceed with the docker implementation, please?
ref: the instruction for Docker implementation is abrupt · Issue #2 · NVIDIA-AI-IOT/ros2_trt_pose · GitHub

Hi @jwitsoe
I have run into some errors and would appreciate your inputs in this topic.
I have been working on a Jetbot with 64GB SD Card and while trying to install ROS 2 crystal on the platform I have exhausted the space allocated in Partition 1 (26GB). Can I extend the partition in the free space or try some other method for installing ROS 2?
I have referred the following link to install ROS 2 crystal - Building ROS 2 on Linux — ROS 2 Documentation: Crystal documentation

Partition Description in my system:

Error log:

jetbot@nano-4gb-jp45:~$ colcon build --symlink-install

Traceback (most recent call last):
  File "/usr/bin/colcon", line 33, in <module>
    sys.exit(load_entry_point('colcon-core==0.6.1', 'console_scripts', 'colcon')())
  File "/usr/lib/python3/dist-packages/colcon_core/command.py", line 118, in main
    return _main(command_name=command_name, argv=argv)
  File "/usr/lib/python3/dist-packages/colcon_core/command.py", line 187, in _main
    create_log_path(args.verb_name)
  File "/usr/lib/python3/dist-packages/colcon_core/location.py", line 186, in create_log_path
    os.makedirs(str(path))
  File "/usr/lib/python3.6/os.py", line 210, in makedirs
    makedirs(head, mode, exist_ok)
  File "/usr/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
OSError: [Errno 28] No space left on device: 'log'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 155, in apport_excepthook
    pr.write(f)
  File "/usr/lib/python3/dist-packages/problem_report.py", line 402, in write
    file.write(v.replace(b'\n', b'\n '))
OSError: [Errno 28] No space left on device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 155, in apport_excepthook
    pr.write(f)
OSError: [Errno 28] No space left on device

Original exception was:
Traceback (most recent call last):
  File "/usr/bin/colcon", line 33, in <module>
    sys.exit(load_entry_point('colcon-core==0.6.1', 'console_scripts', 'colcon')())
  File "/usr/lib/python3/dist-packages/colcon_core/command.py", line 118, in main
    return _main(command_name=command_name, argv=argv)
  File "/usr/lib/python3/dist-packages/colcon_core/command.py", line 187, in _main
    create_log_path(args.verb_name)
  File "/usr/lib/python3/dist-packages/colcon_core/location.py", line 186, in create_log_path
    os.makedirs(str(path))
  File "/usr/lib/python3.6/os.py", line 210, in makedirs
    makedirs(head, mode, exist_ok)
  File "/usr/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
OSError: [Errno 28] No space left on device: 'log'

Any input would be much appreciated! Thank You.

it says

 No space left on device

maybe you need to address partitioning

1 Like

@prajwal You might want to increase partition space as @Andrey1984 is suggesting.

Thank You for the reply, I extended the partition to the full unallocated space.


The installation works now.