Skip to content

Nvidia Jetson sensor package installation for robot vehicle ver.1 project.

Notifications You must be signed in to change notification settings

cocobird231/RV1-jetson_sensors-install

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jetson Sensors Installation

Web version: https://hackmd.io/@cocobird231/BkmIsPa5n

Updated: 2024/04/26

The package installer for sensor depends on NVIDIA Jetson.

System requirements:

  • OS: Ubuntu 18.04 or higher (64-bit recommend)
  • RAM: 4G or higher

Now supported sensor types:

  • ZED stereo camera (the ZED and ZED X were tested)
    • The ZED SDK 4.1 will be automatically downloaded and installed.

Usage

For Newly Install (No jetson_sensors Under Home Path)

Run the pre-install script get-jetson-sensors-install.sh to grab git controlled directory (renamed as jetson_sensors). Make sure Jetson is connected to the internet before installation start.

curl -fsSL ftp://61.220.23.239/rv-12/get-jetson-sensors-install.sh | bash

The new directory jetson_sensors will be created under $HOME.

Module Installation

:::warning The static_ip option not support yet. Always set to dhcp or ignore it. :::

  1. Run the script install.sh under jetson_sensors to install package for selected module.
    . ~/jetson_sensors/install.sh
    Select a number for module installation
  2. Determine the network interface and IP for program to execute.
  3. Reboot while installation finished. The program will be running at startup automatically.
  • The installation will automatically detect version and install ROS2, then create ROS2 workspace under $HOME/ros2_ws.
  • The packages will be built and installed under $HOME/ros2_ws.

:::warning Effects After Installation

  • Files Creation:
    • Under $HOME/jetson_sensors
      • run.sh.tmp
      • .modulename (selected module pack name)
      • .moduleinterface (interface setting)
      • .modulename (IP setting)
      • ros2_startup.desktop.tmp (may be deleted)
      • common.yaml (linked to module package under ROS2 workspace)
      • service.json (linked to module package under ROS2 workspace)
    • Under $HOME/ros2_ws
      • build
      • install
      • log
      • src
    • Under System Environment
      • /etc/xdg/autostart/ros2_startup.desktop (startup file)
  • Dependencies Installation
    • Determined by install_dependencies.sh :::

Module Update

  1. Run the script install.sh under jetson_sensors directory and enter u for update process.
    . install.sh
    
    # Enter 'u' for update process
  2. The update process will update codePack under jetson_sensors by pulling repositories from git server.
  3. After pulling, the module package will start rebuilding if module package had been installed before.

Module Removal

  1. Run the script install.sh under jetson_sensors directory and enter r for package remove process.
    . install.sh
    
    # Enter 'r' for update process

The files which describes under Effects After Installation section will be removed except the files installed from install_dependencies.sh.

Parameters Setting for ROS2

Settings may be varient in different sensors, but there are some common parameters need to be changed:

  1. Device node name (under generic_prop tag)
  2. Device ID (under generic_prop tag)
  3. Topic name (may be one or more)
  4. Publish interval (Need to be float, e.g. not 1 but 1.0)

Modify the settings under $HOME/jetson_sensors/common.yaml and reboot device.


One Line Command

:::success The install.sh now supported parser installation. (2023/07/25) ::: The package installation, updating and removal functions can be done by adding some arguments while running install.sh.

Overall arguments

. install.sh [[-i|--install] <package_name>] [--interface <network_interface>] [--ip [<static_ip>|dhcp]] [-rm|--remove] [-u|--update] [-p|--preserve]
  • Command explanation
    • -i|--install: install specific package from codePack to ROS2 workspace.
    • -rm|--remove: remove installed packages and environment settings.
    • -u|--update: update codePack without install packages.
    • -p|--preserve: preserve common.yaml file during installation.
    • --interface: determine the network interface during installation.
    • --ip: determine the network ip during installation.
  • Variable explanation
    • package_name: real package name under codePack. If variable set to auto, the process will automatically detect current installed module settings, then install the packages.
    • network_interface: the network interface to detect network or internet connection, e.g. eth0 or wlan0.
    • static_ip: the format should be like ip/mask, e.g. 192.168.1.10/16.

:::info

  • For Commands

The three commands -i, -u and -rm can be work independently. The priority order of the three commands from high to low are: -rm > -u > -i. That is, if three commands exists at the same time, the process will be:

  1. Remove installed packages, ROS2 workspace and environment settings.
  2. Update codePack without install any packages.
  3. Install packages from codePack to ROS2 workspace.

The flag -p tells the installer to keep old common.yaml file. If -p set but -i not set, the -p will be ignored. If -p set but the common.yaml file not found, the preservation will be ignored.

The --interface determines the network interface for network detection or internet detection while installed program startup. The --interface will be ignored if -i not set. The --interface is not necessary and will be set to default eth0.

The --ip currently not support and will always set to dhcp. The --ip is not necessary and will be set to default dhcp. :::

:::warning

  • For Variables

The default value of the variables describes as following:

  • package_name: NONE
  • network_interface: eth0
  • static_ip: NONE

The package_name is necessary if -i set. The valid name of package_name were shown under codePack. If the package had installed before, set package_name to auto is valid for process to auto detect the package name.

If package_name set to auto, the process will ignored --interface and --ip settings.

The network_interface is necessary if --interface set. The network_interface do not have any valid check mechanism, be careful of the mistyping.

The static_ip is necessary if --ip not set to dhcp. The static_ip currently not support. :::

Examples

  • Install package
    . install.sh -i <package_name> [--interface <network_interface>] [--ip [<static_ip> | dhcp]]
    
  • Update codePack
    . install.sh -u
    
  • Update codePack then install package
    . install.sh -i <package_name> [--interface <network_interface>] [--ip [<static_ip> | dhcp]] -u
    
  • Update current package while preserve common.yaml
    . install.sh -u -i auto -p
    
  • Remove current package
    . install.sh -rm
  • Remove current package, update codePack and install package
    . install.sh -rm -u -i <package_name> [--interface <network_interface>] [--ip [<static_ip> | dhcp]]
    

About

Nvidia Jetson sensor package installation for robot vehicle ver.1 project.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages