Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
jazzy

Package Summary

Tags No category tags.
Version 2.0.3
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version jazzy
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble or Jazzy
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble, Jazzy
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, Ubuntu 24.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.3 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.2 (2024-10-25)

  • Add changes stating support for Jazzy

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro kilted showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro rolling showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

ess_imu_driver2 package from ess_imu_driver2 repo

ess_imu_driver2

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.0.2
License BSD-3
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/cubicleguy/ess_imu_driver2.git
VCS Type git
VCS Version humble
Last Updated 2024-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

ROS2 package for Epson IMU using C++ wrapper around Linux C driver

Additional Links

Maintainers

  • Raymond Chow

Authors

No additional authors.

README for Epson IMU Driver for ROS2 Node

What is this repository for?

  • This code is a ROS2 package for demonstrating a ROS2 node that configures and publishes IMU messages from a supported Epson IMU.
  • This code provides software communication between Epson IMU and ROS using the either the UART or SPI interface.
  • For the UART connection, this code uses the standard Unix Terminal I/O library (termios) for communicating either direct or by USB-serial converter such as FTDI USB-UART bridge ICs.
  • For the SPI connection, this code uses the Unofficial wiringPi library for accessing GPIO and SPI functions on the Raspberry Pi platform running Ubuntu Linux distro.
  • This ROS2 node demonstration software is a ROS C++ wrapper around the Linux C driver software:
    • src/epson_imu_uart_ros2_node.cpp is for the UART interface
    • src/epson_imu_spi_ros2_node.cpp is for the SPI interface
  • The other source files in src/ are based on the Linux C driver originally released and can be found here: Linux C driver and logger example for EPSON IMU
  • Information about ROS2, and tutorials can be found: ROS.org

What kind of hardware or software will I likely need?

  • Epson IMU Epson IMU models
    • At the time software release:
      • G320PDG0, G320PDGN, G354PDH0, G364PDCA, G364PDC0
      • G365PDC1, G365PDF1, G370PDF1, G370PDS0
      • G330PDG0, G366PDG0, G370PDG0, G370PDT0
      • G570PR20
  • ROS2 Foxy or Humble (via download) ROS.org
  • This software was developed and tested on the following:
  ROS2:        Foxy, Humble
  Description: Ubuntu 20.04 LTS, Ubuntu 22.04 LTS
  Hardware Platform: Core i7 PC, Raspberry Pi 3B+, RaspberryPi 4

For the UART Interface:

  • Epson USB evaluation board or equivalent FTDI USB-Serial interface connecting the Epson IMU to ROS host (tty/serial) See M-G32EV041
  • Alternatively, a direct connection from the Epson IMU to the ROS platform supporting a 3.3V CMOS compatible UART interface See M-G32EV031.

For the SPI Interface:

  • NOTE: This software is intended for an embedded Linux host system with 3.3V I/O compatible SPI interface (SCLK, MISO, MOSI) and 3 GPIOs (CS#, RST#, DRDY).
  • For Raspberry Pi, if not enabled already the SPI interface can be enabled using raspi-config or equivalent.
  • This code uses a separate GPIO to manually control CS# chipselect instead of the chipselect assigned to by the RapsberryPi SPI interface.
    • The chipselect assigned by the HW SPI interface should also work, but has not been thoroughly tested.
  • Epson Breakout evaluation board or some equivalent is required to connect to the 3.3V CMOS compatible pins of the ROS host (SPI & GPIOs) See M-G32EV031

How do I use the driver?

  • This code assumes that the user is familiar with building ROS2 packages using the colcon build process

  • This README is NOT detailed step by step instructions on how to build and install ROS2 software.

  • Please refer to the ROS.org website for more detailed instructions on the ROS package build process. ROS.org

  • NOTE: At a bare minimum, the user must re-build the package with colcon after modifying the CMakeLists.txt to configure any of the following:

    • serial interface type, INTERFACE= (UART or SPI)
    • host platform type, PLATFORM= (RPI or NONE=PC)
  • Changes to IMU settings should be made by editing the .py launch files located in the launch/ folder instead of modifying the src\ source files

How do I use the driver if usleep() is not supported for time delays?

  • NOTE: In the hcl_linux.c or hcl_rpi.c, there are seDelayMS() and seDelayMicroSecs() wrapper functions for time delays in millisecond and microseconds, respectively.
  • On embedded Linux platforms, the user may need to modify and redirect to platform specific delay routines if usleep() is not supported.
  • For example on RaspberryPi, the time delay functions for millisecond and microseconds are redirected to WiringPi library delay() and delayMicroseconds(), respectively.
  • If a hardware delay is not available from a library, then a software delay loop is possible but not preferred.

How do I use the driver with GPIOs to control IMU RESET#, DRDY, EXT pins?

  • When connecting the IMU using the UART interface, the use of GPIO pins for connecting to the IMU RESET# or DRDY is optional, but can be useful on an embedded Linux platforms (such as RapsberryPi).
  • When connecting the IMU using the SPI interface, the use of GPIO pins for connecting to the IMU DRDY is mandatory (RESET# is recommended, EXT is optional).
  • When using the time_correction function for accurate time stamping with an external 3.3V GNSS 1PPS signal, the IMU EXT pin must be connected to the 1PPS.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ess_imu_driver2

2.0.2 (2024-11-29)

  • bugfix - TimeCorrection class for PPS input

2.0.1 (2024-10-01)

  • Update CMakeLists.txt - set macro PLATFORM to NONE

2.0.0 (2024-10-01)

  • port changes from imu_linux_example, remove V340 support
  • auto-detect/initialize IMU model at runtime

1.0.0 (2023-11-29)

  • full package supporting UART and SPI

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ess_imu_driver2 at Robotics Stack Exchange