Skip to content

Commit

Permalink
support HAP linenum & custom msg
Browse files Browse the repository at this point in the history
  • Loading branch information
Livox-SDK committed Aug 26, 2022
1 parent 0a2e9bc commit 1180cdd
Show file tree
Hide file tree
Showing 460 changed files with 3,131 additions and 126,189 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.vscode
build
dedicated_sdk/build
/CMakeList.txt
package.xml
8 changes: 1 addition & 7 deletions CMakeLists_ROS1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -90,23 +90,20 @@ set(CMAKE_CXX_EXTENSIONS OFF)
## make sure the livox_sdk_static library is installed
find_library(LIVOX_SDK_LIBRARY liblivox_sdk_static.a /usr/local/lib)
find_library(LIVOX_SDK_VEHICLE_LIBRARY liblivox_sdk_vehicle_static.a /usr/local/lib)
find_library(LIVOX_SDK_DIRECT_LIBRARY liblivox_sdk_direct_static.a /usr/local/lib)
find_library(LIVOX_SDK_COMMON_LIBRARY liblivox_sdk_common_static.a /usr/local/lib)
find_library(LIVOX_LIDAR_SDK_LIBRARY liblivox_lidar_sdk_static.a /usr/local/lib)

include_directories(
./
${CMAKE_CURRENT_SOURCE_DIR}/livox_sdk/sdk_core/include
${CMAKE_CURRENT_SOURCE_DIR}/livox_sdk_vehicle/sdk_core/include
${CMAKE_CURRENT_SOURCE_DIR}/livox_sdk_direct/sdk_core/include
${CMAKE_CURRENT_SOURCE_DIR}/livox_sdk_common/include
)

link_directories(
./
${CMAKE_CURRENT_SOURCE_DIR}/livox_sdk/build/sdk_core
${CMAKE_CURRENT_SOURCE_DIR}/livox_sdk_vehicle/build/sdk_core
${CMAKE_CURRENT_SOURCE_DIR}/livox_sdk_direct/build/sdk_core
)


Expand Down Expand Up @@ -144,7 +141,7 @@ target_sources(${PROJECT_NAME}_node
src/lds_lidar.cpp
src/lds_hub.cpp
src/lddc.cpp
src/livox_ros_driver.cpp
src/livox_ros_driver2.cpp

src/vehicle_lidar_thread.cpp
src/comm/comm.cpp
Expand All @@ -154,14 +151,12 @@ target_sources(${PROJECT_NAME}_node
src/comm/cache_index.cpp

src/parse_cfg_file/parse_cfg_file.cpp
src/parse_cfg_file/parse_direct_lidar_cfg.cpp
src/parse_cfg_file/parse_industrial_lidar_cfg.cpp
src/parse_cfg_file/parse_vehicle_lidar_cfg.cpp
src/parse_cfg_file/parse_livox_lidar_cfg.cpp

src/call_back/industrial_lidar_callback.cpp
src/call_back/vehicle_lidar_callback.cpp
src/call_back/direct_lidar_callback.cpp
src/call_back/lidar_common_callback.cpp
src/call_back/hub_callback.cpp
src/call_back/livox_lidar_callback.cpp
Expand Down Expand Up @@ -196,7 +191,6 @@ target_include_directories(${PROJECT_NAME}_node
target_link_libraries(${PROJECT_NAME}_node
${LIVOX_SDK_LIBRARY}
${LIVOX_SDK_VEHICLE_LIBRARY}
${LIVOX_SDK_DIRECT_LIBRARY}
${LIVOX_SDK_COMMON_LIBRARY}
${LIVOX_LIDAR_SDK_LIBRARY}
${Boost_LIBRARY}
Expand Down
19 changes: 7 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ Livox ROS Driver 2 of current version support only ROS1 (noetic recommended), an
### 1.1 Prerequisites
* OS: Ubuntu 18.04/20.04
* ROS: Noetic Ninjemys (ROS2 would be supported in the near future)
* SDK: A dedicated Livox SDK (dedicatedly applied to Livox ROS Driver 2)

### 1.2 Install ROS
For ROS Noetic installation, please refer to:
Expand All @@ -18,8 +17,8 @@ For ROS Noetic installation, please refer to:
Desktop-Full installation is recommend.


### 1.3 Install the dedicated Livox SDK
1. Clone Livox ROS Driver 2 source code from GitHub:
## 2. Build & run Livox ROS Driver 2
1. Clone Livox ROS Driver 2 source code:
```shell
git clone https://github.com/Livox-SDK/livox_ros_driver2.git ws_livox/src/livox_ros_driver2
```
Expand All @@ -28,23 +27,19 @@ git clone https://github.com/Livox-SDK/livox_ros_driver2.git ws_livox/src/livox_
cd ws_livox/src/livox_ros_driver2
sudo ./dedicated_sdk/build.sh ROS1
```


## 2. Build & run Livox ROS Driver 2
1. Change directory to the folder 'livox_ros_driver2' (as in the previous step).
2. Build the Livox ROS Driver 2 (take Noetic as example):
3. Build the Livox ROS Driver 2 (take Noetic as example):
```shell
source /opt/ros/noetic/setup.sh
./build.sh ROS1
```
3. In the same terminal (and in the same directory) with the previous step, use the following commands to run Livox ROS Driver 2:
4. Run Livox ROS Driver 2:
```shell
source ../../devel/setup.sh
roslaunch livox_ros_driver2 [launch file]
```
in which,
* livox_ros_driver2: the ROS package name of Livox ROS Driver 2;
* [launch file]: the ROS launch file in the 'launch_ROS1' folder, containing the launch info and config about the target LiDAR(s);
in which,
* livox_ros_driver2: the ROS package name of Livox ROS Driver 2;
* [launch file]: the ROS launch file in the 'launch_ROS1' folder, containing the launch info and config about the target LiDAR(s);

A rviz launch example for HAP LiDAR would be:
```shell
Expand Down
12 changes: 6 additions & 6 deletions cmake/version.cmake
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
#---------------------------------------------------------------------------------------
# Get livox_ros_driver version from include/livox_ros_driver.h
# Get livox_ros_driver2 version from include/livox_ros_driver2.h
#---------------------------------------------------------------------------------------
file(READ "${CMAKE_CURRENT_LIST_DIR}/../src/include/livox_ros_driver.h" LIVOX_ROS_DRIVER_VERSION_FILE)
string(REGEX MATCH "LIVOX_ROS_DRIVER2_VER_MAJOR ([0-9]+)" _ "${LIVOX_ROS_DRIVER_VERSION_FILE}")
file(READ "${CMAKE_CURRENT_LIST_DIR}/../src/include/livox_ros_driver2.h" LIVOX_ROS_DRIVER2_VERSION_FILE)
string(REGEX MATCH "LIVOX_ROS_DRIVER2_VER_MAJOR ([0-9]+)" _ "${LIVOX_ROS_DRIVER2_VERSION_FILE}")
set(ver_major ${CMAKE_MATCH_1})

string(REGEX MATCH "LIVOX_ROS_DRIVER2_VER_MINOR ([0-9]+)" _ "${LIVOX_ROS_DRIVER_VERSION_FILE}")
string(REGEX MATCH "LIVOX_ROS_DRIVER2_VER_MINOR ([0-9]+)" _ "${LIVOX_ROS_DRIVER2_VERSION_FILE}")
set(ver_minor ${CMAKE_MATCH_1})
string(REGEX MATCH "LIVOX_ROS_DRIVER2_VER_PATCH ([0-9]+)" _ "${LIVOX_ROS_DRIVER_VERSION_FILE}")
string(REGEX MATCH "LIVOX_ROS_DRIVER2_VER_PATCH ([0-9]+)" _ "${LIVOX_ROS_DRIVER2_VERSION_FILE}")
set(ver_patch ${CMAKE_MATCH_1})

if (NOT DEFINED ver_major OR NOT DEFINED ver_minor OR NOT DEFINED ver_patch)
message(FATAL_ERROR "Could not extract valid version from include/livox_ros_driver.h")
message(FATAL_ERROR "Could not extract valid version from include/livox_ros_driver2.h")
endif()
set (LIVOX_ROS_DRIVER2_VERSION "${ver_major}.${ver_minor}.${ver_patch}")
14 changes: 6 additions & 8 deletions config_ROS1/HAP_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
"lidar_type": 8
},
"HAP": {
"device_type" : "HAP",
"lidar_ipaddr": "",
"lidar_net_info" : {
"cmd_data_port": 56000,
"push_msg_port": 0,
Expand Down Expand Up @@ -32,12 +30,12 @@
"pattern_mode" : 0,
"blind_spot_set" : 50,
"extrinsic_parameter" : {
"roll": 1.1,
"pitch": 2.2,
"yaw": 3.3,
"x": 4,
"y": 5,
"z": 6
"roll": 0.0,
"pitch": 0.0,
"yaw": 0.0,
"x": 0,
"y": 0,
"z": 0
}
}
]
Expand Down
50 changes: 19 additions & 31 deletions dedicated_sdk/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,38 +17,26 @@ if (UNIX)
endif(UNIX)

add_subdirectory(livox_sdk/sdk_core sdk_core)

add_subdirectory(livox_sdk_vehicle/sdk_core vehicle_sdk_core)

add_subdirectory(livox_lidar_sdk/sdk_core livox_sdk_core)

add_subdirectory(livox_sdk_direct/sdk_core direct_sdk_core)
add_subdirectory(livox_sdk_common)



add_subdirectory(sample/industry_lidar_sample)
add_subdirectory(sample/vehicle_lidar_quick_start)
add_subdirectory(sample/vehicle_lidar_preconfig)
add_subdirectory(sample/parse_lvx_file)
add_subdirectory(sample/record_lvx2_file)
add_subdirectory(sample/record_lvx2_file_industrial)
add_subdirectory(sample/vehicle_lidar_upgrade)
add_subdirectory(sample/industry_lidar_upgrade)
add_subdirectory(sample/obstacle_avoidance_test)
add_subdirectory(sample/direct_custom_lidar)
add_subdirectory(sample/direct_lidar)
add_subdirectory(sample/direct_lidars_upgrade)
add_subdirectory(sample/direct_lidar_update)
add_subdirectory(sample/direct_lidar_reset)

add_subdirectory(sample/vehicle_multi_lidar_upgrade)

add_subdirectory(sample/livox_multi_lidar_upgrade)
add_subdirectory(sample/livox_lidar_quick_start)
add_subdirectory(sample/livox_lidar_view_quick_start)
add_subdirectory(sample/livox_lidar_for_test)
add_subdirectory(sample/livox_lidar_record_lvx2_file)
add_subdirectory(sample/livox_lidar_parse_lvx2_file)


add_subdirectory(sample/industry/industry_lidar_sample)
add_subdirectory(sample/industry/industry_lidar_upgrade)

add_subdirectory(sample/lvx/parse_lvx_file)
add_subdirectory(sample/lvx/record_lvx2_file)
add_subdirectory(sample/lvx/record_lvx2_file_industrial)
add_subdirectory(sample/lvx/obstacle_avoidance_test)

add_subdirectory(sample/vehicle/vehicle_multi_lidar_upgrade)
add_subdirectory(sample/vehicle/vehicle_lidar_upgrade)
add_subdirectory(sample/vehicle/vehicle_lidar_quick_start)
add_subdirectory(sample/vehicle/vehicle_lidar_preconfig)

add_subdirectory(sample/hap/livox_multi_lidar_upgrade)
add_subdirectory(sample/hap/livox_lidar_quick_start)
add_subdirectory(sample/hap/livox_lidar_view_quick_start)
add_subdirectory(sample/hap/livox_lidar_for_test)
add_subdirectory(sample/hap/livox_lidar_record_lvx2_file)
add_subdirectory(sample/hap/livox_lidar_parse_lvx2_file)
1 change: 0 additions & 1 deletion dedicated_sdk/CMakeLists.txt.shared
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ endif(UNIX)

add_subdirectory(livox_sdk/sdk_core sdk_core)
add_subdirectory(livox_sdk_vehicle/sdk_core vehicle_sdk_core)
add_subdirectory(livox_sdk_direct/sdk_core direct_sdk_core)
add_subdirectory(livox_lidar_sdk/sdk_core livox_lidar_sdk_core)

add_subdirectory(livox_sdk_common)
50 changes: 19 additions & 31 deletions dedicated_sdk/CMakeLists.txt.static
Original file line number Diff line number Diff line change
Expand Up @@ -17,38 +17,26 @@ if (UNIX)
endif(UNIX)

add_subdirectory(livox_sdk/sdk_core sdk_core)

add_subdirectory(livox_sdk_vehicle/sdk_core vehicle_sdk_core)

add_subdirectory(livox_lidar_sdk/sdk_core livox_sdk_core)

add_subdirectory(livox_sdk_direct/sdk_core direct_sdk_core)
add_subdirectory(livox_sdk_common)



add_subdirectory(sample/industry_lidar_sample)
add_subdirectory(sample/vehicle_lidar_quick_start)
add_subdirectory(sample/vehicle_lidar_preconfig)
add_subdirectory(sample/parse_lvx_file)
add_subdirectory(sample/record_lvx2_file)
add_subdirectory(sample/record_lvx2_file_industrial)
add_subdirectory(sample/vehicle_lidar_upgrade)
add_subdirectory(sample/industry_lidar_upgrade)
add_subdirectory(sample/obstacle_avoidance_test)
add_subdirectory(sample/direct_custom_lidar)
add_subdirectory(sample/direct_lidar)
add_subdirectory(sample/direct_lidars_upgrade)
add_subdirectory(sample/direct_lidar_update)
add_subdirectory(sample/direct_lidar_reset)

add_subdirectory(sample/vehicle_multi_lidar_upgrade)

add_subdirectory(sample/livox_multi_lidar_upgrade)
add_subdirectory(sample/livox_lidar_quick_start)
add_subdirectory(sample/livox_lidar_view_quick_start)
add_subdirectory(sample/livox_lidar_for_test)
add_subdirectory(sample/livox_lidar_record_lvx2_file)
add_subdirectory(sample/livox_lidar_parse_lvx2_file)


add_subdirectory(sample/industry/industry_lidar_sample)
add_subdirectory(sample/industry/industry_lidar_upgrade)

add_subdirectory(sample/lvx/parse_lvx_file)
add_subdirectory(sample/lvx/record_lvx2_file)
add_subdirectory(sample/lvx/record_lvx2_file_industrial)
add_subdirectory(sample/lvx/obstacle_avoidance_test)

add_subdirectory(sample/vehicle/vehicle_multi_lidar_upgrade)
add_subdirectory(sample/vehicle/vehicle_lidar_upgrade)
add_subdirectory(sample/vehicle/vehicle_lidar_quick_start)
add_subdirectory(sample/vehicle/vehicle_lidar_preconfig)

add_subdirectory(sample/hap/livox_multi_lidar_upgrade)
add_subdirectory(sample/hap/livox_lidar_quick_start)
add_subdirectory(sample/hap/livox_lidar_view_quick_start)
add_subdirectory(sample/hap/livox_lidar_for_test)
add_subdirectory(sample/hap/livox_lidar_record_lvx2_file)
add_subdirectory(sample/hap/livox_lidar_parse_lvx2_file)
7 changes: 2 additions & 5 deletions dedicated_sdk/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ function CheckParams() {
# rm /usr/local/lib/liblivox_sdk_common_static.a
# fi

# if [ -f "/usr/local/lib/liblivox_sdk_direct_static.a"]; then
# rm /usr/local/lib/liblivox_sdk_direct_static.a
# fi
# if [ -f "/usr/local/lib/liblivox_sdk_static.a"]; then
# rm /usr/local/lib/liblivox_sdk_static.a
Expand All @@ -45,15 +43,13 @@ function GenerateCmakeFile() {
cp ./CMakeLists.txt.static ./CMakeLists.txt
cp ./livox_sdk/sdk_core/CMakeLists.txt.static ./livox_sdk/sdk_core/CMakeLists.txt
cp ./livox_sdk_common/CMakeLists.txt.static ./livox_sdk_common/CMakeLists.txt
cp ./livox_sdk_direct/sdk_core/CMakeLists.txt.static ./livox_sdk_direct/sdk_core/CMakeLists.txt
cp ./livox_sdk_vehicle/sdk_core/CMakeLists.txt.static ./livox_sdk_vehicle/sdk_core/CMakeLists.txt
cp ./livox_lidar_sdk/sdk_core/CMakeLists.txt.static ./livox_lidar_sdk/sdk_core/CMakeLists.txt

elif [ ${ROS_VERSION} = ${VERSION_ROS2} ]; then
cp ./CMakeLists.txt.shared ./CMakeLists.txt
cp ./livox_sdk/sdk_core/CMakeLists.txt.shared ./livox_sdk/sdk_core/CMakeLists.txt
cp ./livox_sdk_common/CMakeLists.txt.shared ./livox_sdk_common/CMakeLists.txt
cp ./livox_sdk_direct/sdk_core/CMakeLists.txt.shared ./livox_sdk_direct/sdk_core/CMakeLists.txt
cp ./livox_sdk_vehicle/sdk_core/CMakeLists.txt.shared ./livox_sdk_vehicle/sdk_core/CMakeLists.txt
cp ./livox_lidar_sdk/sdk_core/CMakeLists.txt.shared ./livox_lidar_sdk/sdk_core/CMakeLists.txt
fi
Expand All @@ -63,7 +59,8 @@ function Complier() {
if [ ! -d "./build" ];then
mkdir build
else
echo "文件夹已经存在"
rm build -R
mkdir build
fi

cd ./build
Expand Down
4 changes: 2 additions & 2 deletions dedicated_sdk/livox_lidar_sdk/LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ Livox-SDK
│ │ ├── comm_port.h
│ │ └── protocol.h
│ ├── config.h
│ ├── livox_direct_def.h
│ └─ livox_direct_sdk.h
│ ├── livox_lidar_def.h
│ └─ livox_lidar_api.h
└── src
├── base
│ ├── command_callback.h
Expand Down
16 changes: 11 additions & 5 deletions dedicated_sdk/livox_lidar_sdk/sdk_core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@ cmake_minimum_required(VERSION 3.0)

set(SDK_LIBRARY livox_lidar_sdk_static)


add_library(${SDK_LIBRARY} STATIC "")

set(LIVOX_SDK_MAJOR_VERSION "2")
set(LIVOX_SDK_MINOR_VERSION "3")
set(LIVOX_SDK_PATCH_VERSION "0")
set(LIVOX_SDK_VERSION_STRING "${LIVOX_SDK_MAJOR_VERSION}.${LIVOX_SDK_MINOR_VERSION}.${LIVOX_SDK_PATCH_VERSION}")


target_include_directories(${SDK_LIBRARY}
PUBLIC
include
Expand All @@ -22,7 +20,7 @@ target_include_directories(${SDK_LIBRARY}
PRIVATE
src)

set_target_properties(${SDK_LIBRARY} PROPERTIES PUBLIC_HEADER "include/livox_lidar_def.h;include/livox_lidar_sdk.h")
set_target_properties(${SDK_LIBRARY} PROPERTIES PUBLIC_HEADER "include/livox_lidar_def.h;include/livox_lidar_api.h")

if(WIN32)
set(PLATFORM win)
Expand Down Expand Up @@ -59,7 +57,6 @@ target_sources(${SDK_LIBRARY}
src/device_manager.h
src/device_manager.cpp


src/comm/comm_port.cpp
src/comm/sdk_protocol.h
src/comm/sdk_protocol.cpp
Expand All @@ -76,12 +73,22 @@ target_sources(${SDK_LIBRARY}
src/data_handler/data_handler.cpp

src/command_handler/command_handler.h
src/command_handler/command_impl.h
src/command_handler/command_impl.cpp
src/command_handler/general_command_handler.h
src/command_handler/general_command_handler.cpp
src/command_handler/hap_command_handler.h
src/command_handler/hap_command_handler.cpp
src/command_handler/mid360_command_handler.h
src/command_handler/mid360_command_handler.cpp
src/command_handler/pa_command_handler.h
src/command_handler/pa_command_handler.cpp

src/command_handler/build_request.h
src/command_handler/build_request.cpp

src/command_handler/parse_lidar_state_info.h
src/command_handler/parse_lidar_state_info.cpp

src/base/multiple_io/multiple_io_base.h
src/base/multiple_io/multiple_io_base.cpp
Expand All @@ -97,7 +104,6 @@ target_sources(${SDK_LIBRARY}
src/base/wake_up/wake_up_pipe.h
src/base/wake_up/${PLATFORM}/wake_up_pipe.cpp)


install(TARGETS ${SDK_LIBRARY}
PUBLIC_HEADER DESTINATION include
ARCHIVE DESTINATION lib
Expand Down
Loading

0 comments on commit 1180cdd

Please sign in to comment.