Welcome to Hang’s website!

The old website was crashed on my host server. This new website is currently under construction! Stay tuned!

Posted in Uncategorized | Comments Off on Welcome to Hang’s website!

Comparison of ROS1 and ROS2

ROS1 vs ROS2 Architecture
Reference: Exploring the performance of ROS2

ROS2 is well-suited for a variety of applications, including navigation, security, embedded systems, real-time operations, safety-critical tasks, and robotic manipulation.

Data Distribution Service (DDS) for ROS2
(1) An industry-standard communication system, a networking middleware
(2) Data-Centric Publish-Subscribe (DCPS) system
(3) Real-time machine-to-machine (middleware communication)
(4) Uses Real-Time Publish-Subscribe (RTPS) pattern for sending and receiving data, events, and commands among the nodes
(5) DDS allows the user to specify quality of service (QoS) parameters (QoS Profiles)

Data Distribution Service (DDS) Design Goals
(1) Scalability
(2) Real-time
(3) Dependability
(4) High performance
(5) Interoperable data exchange (discovery, serialization, transport)

ROS2 Discovery
(1) DDS replaces the ROS master discovery system
(2) DDS API provides information on node topics, services, etc
(3) Users are prevented from direct access to DDS (hidden behind ROS API)
(4) Fully distributed discovery process (no single point of failure, fault tolerance)

ROS2 Messages
(1) ROS2 maintains the same message definitions as in ROS1
(2) ROS1 *.msg files are converted into *.idl files to be used by DDS transport layer
(3) Experiments show that cost of message conversion is non-significant as compared to cost of serialization

Back to top of the page
Posted in Autonomy | Comments Off on Comparison of ROS1 and ROS2

Comparison of TI and STM32 MCUs


TI Microcontrollers
C2000 real-time: TMS320F28375D, TMS320F28379D, TMS320F28388D, etc
ARM-based: AM243x, AM263x, AM273x, MSP432x, etc

Direct (Direct Register Access): bare-metal programming
Bit Field: register access whole or by bits
DriverLib: high-level and feature-oriented APIs

TI MCUs and MPUs (Copyright to TI)
Frame 1 Image 1 Frame 1 Image 2 Frame 1 Image 3 Frame 1 Image 4


STM32 Microcontrollers
ARM-based: STM32G4x, STM32F4x, STM32F7x, STM32H7x, etc

LL (Low Level driver): bare-metal programming
CMSIS (Common Mcu Software Interface Standard): generic tool interfaces
HAL (Hardware Abstraction Layer): high-level and feature-oriented APIs

STM32 Mainstream and High Performance MCUs (Copyright to STMicroelectronics)

TI STM32
Coding & Debugging Code Composer Studio STM32CubeIDE
PinMux Setting SysConfig STM32CubeMX
Programmer UniFlash, C2Prog STM32CubeProg
Real-time Diagnose RTOS Analyzer, Runtime Object Viewer STM32CubeMonitor
Library Direct, Bit Fields, DriverLib LL, CMSIS, HAL
RTOS TI-RTOS, FreeRTOS FreeRTOS, etc
Debugger XDS100v2, XDS2xx ST-LINK/V2, V3
Peripheral (Sensing & Control) ePWM, eQEP, eCAP, SDFM PWM, Camera Interface
Peripheral (Communication) USB, CAN, CAN-FD, LIN, SSI, FSI, SPI, McBSP, SCI/UART, I2C, Ethernet, EtherCAT@ USB, CAN, CAN-FD, LIN, SAI, SPI, USART/UART, I2C, Ethernet
Peripheral (Other) CLB
Development Board LAUNCHXL-F28379D, TMDSCNCD28388D, MSP-EXP432E401Y, LP-AM243, etc STM32F4DISCOVERY, NUCLEO-F767ZI, STM32F769I-DISCO, etc
Back to top of the page
Posted in Embedded System | Leave a comment