├── celex5_msgs
├── msg
│ ├── ImuVector.msg
│ ├── Event.msg
│ ├── EventVector.msg
│ └── Imu.msg
├── CMakeLists.txt
└── package.xml
├── celex5_calibration
├── src
│ ├── intrinsics_extrinsics
│ │ ├── README.md
│ │ ├── README_zh.md
│ │ ├── pkg_camera_calibration
│ │ │ ├── assets
│ │ │ │ ├── left-0006.png
│ │ │ │ ├── left-0013.png
│ │ │ │ ├── left-0021.png
│ │ │ │ ├── Screenshot from 2020-02-04 23-11-53.png
│ │ │ │ └── Screenshot from 2020-02-04 23-28-25.png
│ │ │ ├── README_zh.md
│ │ │ └── README.md
│ │ └── kalibr
│ │ │ ├── example_result
│ │ │ ├── report-cam-2020-02-12-18-26-45.pdf
│ │ │ ├── camchain-2020-02-12-18-26-45.yaml
│ │ │ └── results-cam-2020-02-12-18-26-45.txt
│ │ │ ├── cfg
│ │ │ └── checkerboard.yaml
│ │ │ ├── store_sync_images_node.cpp
│ │ │ ├── pub_stored_sync_images_node.cpp
│ │ │ ├── pub_stored_sync_images.h
│ │ │ ├── sync_images.h
│ │ │ └── sync_images.cpp
│ ├── registration
│ │ ├── README.md
│ │ ├── event_registration_node.cpp
│ │ └── event_registration.h
│ ├── pattern
│ │ ├── assets
│ │ │ ├── Screenshot from 2020-02-04 22-09-31.png
│ │ │ ├── Screenshot from 2020-02-04 22-11-21.png
│ │ │ ├── Screenshot from 2020-02-04 22-34-03.png
│ │ │ └── Screenshot from 2020-02-04 23-11-53.png
│ │ ├── pattern_generator_node.cpp
│ │ ├── CMakeLists.txt
│ │ ├── README_zh.md
│ │ ├── pattern_generator.h
│ │ └── README.md
│ └── temporal
│ │ ├── temporal_offset_calibration_node.cpp
│ │ ├── temporal_offset_calculate.h
│ │ └── temporal_offset_calculate.cpp
├── assets
│ └── Screenshot from 2020-02-12 21-02-32.png
├── launch
│ ├── store_sync_images_zed_demo.launch
│ ├── temporal_offset_calibration_zed_demo.launch
│ ├── publish_stored_sync_images_zed_demo.launch
│ └── event_registration.launch
├── README_zh.md
├── .gitignore
├── README.md
└── package.xml
├── assets
├── 242069421.jpg
├── Screenshot from 2020-01-22 21-16-52.png
└── Screenshot from 2020-02-12 21-02-32.png
├── celex5_ros
├── scripts
│ ├── celex.rules
│ ├── delete_udev_rules.sh
│ └── create_udev_rules.sh
├── assets
│ ├── Screenshot from 2020-01-22 21-16-52.png
│ ├── Screenshot from 2020-01-22 21-20-36.png
│ ├── Screenshot from 2020-01-22 21-22-20.png
│ └── Screenshot from 2020-01-31 23-57-10.png
├── config
│ ├── celex5_frame_parameters.yaml
│ └── celex5_events_parameters.yaml
├── src
│ ├── sdk
│ │ ├── base
│ │ │ ├── filedirectory.h
│ │ │ ├── dataqueue.h
│ │ │ ├── xthread.h
│ │ │ ├── filedirectory.cpp
│ │ │ ├── xthread.cpp
│ │ │ └── dataqueue.cpp
│ │ ├── eventproc
│ │ │ ├── celex5processeddata.cpp
│ │ │ ├── datarecorder.h
│ │ │ ├── dataprocessthread.h
│ │ │ ├── dataprocessthread.cpp
│ │ │ └── datarecorder.cpp
│ │ ├── cx3driver
│ │ │ ├── cypress.h
│ │ │ ├── bulktransfer.h
│ │ │ ├── celedriver.h
│ │ │ ├── package.h
│ │ │ ├── usbinterface.h
│ │ │ ├── package.cpp
│ │ │ └── cypress.cpp
│ │ ├── configproc
│ │ │ ├── celex5cfgmgr.h
│ │ │ ├── xmlreader.h
│ │ │ ├── tinyxml
│ │ │ │ ├── tinyxmlerror.cpp
│ │ │ │ └── tinystr.cpp
│ │ │ ├── wireincommand.h
│ │ │ ├── wireincommand.cpp
│ │ │ └── celex5cfgmgr.cpp
│ │ ├── include
│ │ │ ├── celex5
│ │ │ │ ├── celex5processeddata.h
│ │ │ │ └── celex5datamanager.h
│ │ │ └── celextypes.h
│ │ └── CMakeLists.txt
│ ├── node
│ │ └── celex5_ros_node.cpp
│ ├── nodelet
│ │ ├── celex5_nodelet.cpp
│ │ └── celex5_nodelet.h
│ ├── bean
│ │ ├── celex5_ros_bean.h
│ │ ├── camera_publisher.h
│ │ ├── camera_publisher.cpp
│ │ ├── celex5_data_forwarder.h
│ │ ├── celex5_ros_bean.cpp
│ │ └── celex5_options.h
│ └── interactive
│ │ ├── celex5_display_controller.h
│ │ ├── celex5_display_pub_factory.h
│ │ └── celex5_ddy_configure.h
├── launch
│ ├── celex5_nodelet.launch
│ ├── celex5_ros_node.launch
│ └── includes
│ │ └── nodelet.launch.xml
├── nodelet_plugins.xml
├── .gitignore
└── package.xml
├── .gitmodules
└── .gitignore
/celex5_msgs/msg/ImuVector.msg:
--------------------------------------------------------------------------------
1 | Header header
2 | uint32 vector_length
3 | Imu[] imus
4 |
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/README.md:
--------------------------------------------------------------------------------
1 | *[中文版本](README_zh.md)*
2 |
3 | # TODO
--------------------------------------------------------------------------------
/assets/242069421.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/assets/242069421.jpg
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/README_zh.md:
--------------------------------------------------------------------------------
1 | *[English Version](README.md)*
2 |
3 | # TODO
--------------------------------------------------------------------------------
/celex5_ros/scripts/celex.rules:
--------------------------------------------------------------------------------
1 | SUBSYSTEMS=="usb", ATTRS{idVendor}=="04b4", ATTRS{idProduct}=="00f1", MODE:="0666"
2 |
--------------------------------------------------------------------------------
/assets/Screenshot from 2020-01-22 21-16-52.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/assets/Screenshot from 2020-01-22 21-16-52.png
--------------------------------------------------------------------------------
/assets/Screenshot from 2020-02-12 21-02-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/assets/Screenshot from 2020-02-12 21-02-32.png
--------------------------------------------------------------------------------
/celex5_calibration/src/registration/README.md:
--------------------------------------------------------------------------------
1 | # Registration between Event Camera and RGB Camera
2 |
3 | This part is not perfect, please do not use it.
--------------------------------------------------------------------------------
/celex5_ros/assets/Screenshot from 2020-01-22 21-16-52.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_ros/assets/Screenshot from 2020-01-22 21-16-52.png
--------------------------------------------------------------------------------
/celex5_ros/assets/Screenshot from 2020-01-22 21-20-36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_ros/assets/Screenshot from 2020-01-22 21-20-36.png
--------------------------------------------------------------------------------
/celex5_ros/assets/Screenshot from 2020-01-22 21-22-20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_ros/assets/Screenshot from 2020-01-22 21-22-20.png
--------------------------------------------------------------------------------
/celex5_ros/assets/Screenshot from 2020-01-31 23-57-10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_ros/assets/Screenshot from 2020-01-31 23-57-10.png
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "celex5_calibration/third_party/matplotlib-cpp"]
2 | path = celex5_calibration/third_party/matplotlib-cpp
3 | url = https://github.com/lava/matplotlib-cpp.git
4 |
--------------------------------------------------------------------------------
/celex5_calibration/assets/Screenshot from 2020-02-12 21-02-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/assets/Screenshot from 2020-02-12 21-02-32.png
--------------------------------------------------------------------------------
/celex5_msgs/msg/Event.msg:
--------------------------------------------------------------------------------
1 | # A CeleX5 event
2 | Header header
3 | uint16 x
4 | uint16 y
5 | uint16 brightness
6 | uint64 off_pixel_timestamp
7 | uint64 in_pixel_timestamp
8 | bool polarity
9 |
10 |
--------------------------------------------------------------------------------
/celex5_calibration/src/pattern/assets/Screenshot from 2020-02-04 22-09-31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/pattern/assets/Screenshot from 2020-02-04 22-09-31.png
--------------------------------------------------------------------------------
/celex5_calibration/src/pattern/assets/Screenshot from 2020-02-04 22-11-21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/pattern/assets/Screenshot from 2020-02-04 22-11-21.png
--------------------------------------------------------------------------------
/celex5_calibration/src/pattern/assets/Screenshot from 2020-02-04 22-34-03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/pattern/assets/Screenshot from 2020-02-04 22-34-03.png
--------------------------------------------------------------------------------
/celex5_calibration/src/pattern/assets/Screenshot from 2020-02-04 23-11-53.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/pattern/assets/Screenshot from 2020-02-04 23-11-53.png
--------------------------------------------------------------------------------
/celex5_msgs/msg/EventVector.msg:
--------------------------------------------------------------------------------
1 | Header header
2 | uint32 vector_length
3 | uint32 height # image height, that is, number of rows
4 | uint32 width # image width, that is, number of columns
5 | Event[] events
6 |
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/left-0006.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/left-0006.png
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/left-0013.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/left-0013.png
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/left-0021.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/left-0021.png
--------------------------------------------------------------------------------
/celex5_msgs/msg/Imu.msg:
--------------------------------------------------------------------------------
1 | # A CeleX5 imu data
2 | Header header
3 | float64 gyro_x
4 | float64 gyro_y
5 | float64 gyro_z
6 | float64 acc_x
7 | float64 acc_y
8 | float64 acc_z
9 | float64 mag_x
10 | float64 mag_y
11 | float64 mag_z
12 |
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/kalibr/example_result/report-cam-2020-02-12-18-26-45.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/intrinsics_extrinsics/kalibr/example_result/report-cam-2020-02-12-18-26-45.pdf
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/Screenshot from 2020-02-04 23-11-53.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/Screenshot from 2020-02-04 23-11-53.png
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/Screenshot from 2020-02-04 23-28-25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kehanXue/CeleX5-ROS/HEAD/celex5_calibration/src/intrinsics_extrinsics/pkg_camera_calibration/assets/Screenshot from 2020-02-04 23-28-25.png
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/kalibr/cfg/checkerboard.yaml:
--------------------------------------------------------------------------------
1 | target_type: 'checkerboard' #gridtype
2 | targetCols: 8 #number of internal chessboard corners
3 | targetRows: 6 #number of internal chessboard corners
4 | rowSpacingMeters: 0.0211 #size of one chessboard square [m]
5 | colSpacingMeters: 0.0211 #size of one chessboard square [m]
6 |
--------------------------------------------------------------------------------
/celex5_ros/config/celex5_frame_parameters.yaml:
--------------------------------------------------------------------------------
1 | image_width: 1280
2 | image_height: 800
3 | camera_name: narrow_stereo
4 | camera_matrix:
5 | rows: 3
6 | cols: 3
7 | data: [1692.632373, 0.000000, 664.459744, 0.000000, 1695.390478, 379.480451, 0.000000, 0.000000, 1.000000]
8 | distortion_model: plumb_bob
9 | distortion_coefficients:
10 | rows: 1
11 | cols: 5
12 | data: [-0.161282, 0.093215, -0.001904, 0.000379, 0.000000]
13 | rectification_matrix:
14 | rows: 3
15 | cols: 3
16 | data: [1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]
17 | projection_matrix:
18 | rows: 3
19 | cols: 4
20 | data: [1655.018311, 0.000000, 665.797738, 0.000000, 0.000000, 1679.957397, 378.563818, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]
21 |
--------------------------------------------------------------------------------
/celex5_ros/config/celex5_events_parameters.yaml:
--------------------------------------------------------------------------------
1 | image_width: 1280
2 | image_height: 800
3 | camera_name: narrow_stereo
4 | camera_matrix:
5 | rows: 3
6 | cols: 3
7 | data: [1687.514919, 0.000000, 676.131784, 0.000000, 1694.799737, 417.348889, 0.000000, 0.000000, 1.000000]
8 | distortion_model: plumb_bob
9 | distortion_coefficients:
10 | rows: 1
11 | cols: 5
12 | data: [-0.089225, -0.433622, 0.003022, -0.001306, 0.000000]
13 | rectification_matrix:
14 | rows: 3
15 | cols: 3
16 | data: [1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000]
17 | projection_matrix:
18 | rows: 3
19 | cols: 4
20 | data: [1647.456299, 0.000000, 677.701102, 0.000000, 0.000000, 1683.463867, 418.507924, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000]
21 |
--------------------------------------------------------------------------------
/celex5_calibration/launch/store_sync_images_zed_demo.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/celex5_calibration/launch/temporal_offset_calibration_zed_demo.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/celex5_ros/src/sdk/base/filedirectory.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2020 CelePixel Technology Co. Ltd. All Rights Reserved
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef FILEDIRECTORY_H
18 | #define FILEDIRECTORY_H
19 |
20 | #include
21 |
22 | class FileDirectory
23 | {
24 | public:
25 | FileDirectory();
26 | ~FileDirectory();
27 |
28 | std::string getApplicationDirPath();
29 | bool isFileExists(std::string filePath);
30 | };
31 |
32 | #endif // FILEDIRECTORY_H
33 |
--------------------------------------------------------------------------------
/celex5_ros/scripts/delete_udev_rules.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # The ROS package for CeleX^TM CeleX5-MIPI Dynamic Vision Sensor.
4 | #
5 | # Copyright (C) 2020 Kehan.Xue
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU General Public License as published by
9 | # the Free Software Foundation, either version 3 of the License, or
10 | # (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 |
20 | echo "sudo rm /etc/udev/rules.d/celex.rules"
21 | sudo rm /etc/udev/rules.d/celex.rules
22 | echo ""
23 | echo "Restarting udev"
24 | echo ""
25 | sudo service udev reload
26 | sudo service udev restart
27 | echo "finish delete"
--------------------------------------------------------------------------------
/celex5_ros/src/sdk/eventproc/celex5processeddata.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2020 CelePixel Technology Co. Ltd. All rights reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #include "../include/celex5/celex5processeddata.h"
18 |
19 | CeleX5ProcessedData::CeleX5ProcessedData()
20 | : m_emSensorMode(CeleX5::Event_Off_Pixel_Timestamp_Mode)
21 | , m_iLoopNum(-1)
22 | , m_uiTemperature(0)
23 | , m_uiFullFrameFPS(0)
24 | , m_iFPNProgressValue(0)
25 | {
26 |
27 | }
28 |
29 | CeleX5ProcessedData::~CeleX5ProcessedData()
30 | {
31 | }
32 |
--------------------------------------------------------------------------------
/celex5_ros/launch/celex5_nodelet.launch:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/celex5_ros/nodelet_plugins.xml:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 |
22 |
23 | This is CeleX5-MIPI nodelet.
24 |
25 |
26 |
--------------------------------------------------------------------------------
/celex5_ros/scripts/create_udev_rules.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # The ROS package for CeleX^TM CeleX5-MIPI Dynamic Vision Sensor.
4 | #
5 | # Copyright (C) 2020 Kehan.Xue
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU General Public License as published by
9 | # the Free Software Foundation, either version 3 of the License, or
10 | # (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 |
20 |
21 | echo "start copy ./celex.rules to /etc/udev/rules.d/"
22 | echo "sudo cp ./celex.rules /etc/udev/rules.d"
23 | sudo cp ./celex.rules /etc/udev/rules.d
24 | echo ""
25 | echo "Restarting udev"
26 | echo ""
27 | sudo service udev reload
28 | sudo service udev restart
29 | echo "finish "
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/kalibr/example_result/camchain-2020-02-12-18-26-45.yaml:
--------------------------------------------------------------------------------
1 | cam0:
2 | cam_overlaps: [1]
3 | camera_model: pinhole
4 | distortion_coeffs: [0.012438996402240377, -0.008230936628112907, 0.0011725811652034135,
5 | -0.0025218463105980094]
6 | distortion_model: radtan
7 | intrinsics: [1437.8958223832353, 1437.3087636208852, 1181.7885268260493, 675.0761478882741]
8 | resolution: [2208, 1242]
9 | rostopic: /frame/raw_image
10 | cam1:
11 | T_cn_cnm1:
12 | - [0.9998723854537899, -0.0077667289193917135, 0.013960326960080705, -0.06014964999015901]
13 | - [0.007148637873527468, 0.9990150840929704, 0.043792222269031116, 0.04751368531016086]
14 | - [-0.01428669953113176, -0.04368683642242523, 0.9989431167688675, 0.012981551551057196]
15 | - [0.0, 0.0, 0.0, 1.0]
16 | cam_overlaps: [0]
17 | camera_model: pinhole
18 | distortion_coeffs: [-0.183142928493062, 0.11613943981794345, 0.0026888739143820445,
19 | -0.0009885339013643046]
20 | distortion_model: radtan
21 | intrinsics: [1707.9980790098505, 1705.2747370661336, 631.895926240894, 413.56095397845604]
22 | resolution: [1280, 800]
23 | rostopic: /events/raw_image
24 |
--------------------------------------------------------------------------------
/celex5_calibration/launch/publish_stored_sync_images_zed_demo.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/celex5_calibration/src/pattern/pattern_generator_node.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * The celex5_calibration ROS package,
3 | * used to calibrate camera parameters for CeleX5-MIPI Event-based Camera.
4 | *
5 | * Copyright (C) 2020 Kehan.Xue
6 | *
7 | * This program is free software: you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation, either version 3 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program. If not, see .
19 | */
20 |
21 | #include
22 |
23 | #include "pattern_generator.h"
24 |
25 | int main(int argc, char **argv) {
26 | ros::init(argc, argv, "pattern_gen_node");
27 | ros::NodeHandle nh("~");
28 |
29 | PatternGenerator pattern_generator;
30 | ros::spin();
31 | }
32 |
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/kalibr/store_sync_images_node.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * The celex5_calibration ROS package,
3 | * used to calibrate camera parameters for CeleX5-MIPI Event-based Camera.
4 | *
5 | * Copyright (C) 2020 Kehan.Xue
6 | *
7 | * This program is free software: you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation, either version 3 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program. If not, see .
19 | */
20 |
21 | #include
22 | #include "sync_images.h"
23 |
24 | int main(int argc, char **argv) {
25 | ros::init(argc, argv, "extrinsics_calibration_node");
26 | ros::NodeHandle nh("~");
27 | SyncImages sync_images(nh);
28 | ros::spin();
29 | }
30 |
--------------------------------------------------------------------------------
/celex5_ros/src/node/celex5_ros_node.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * The ROS package for CeleX^TM CeleX5-MIPI Dynamic Vision Sensor.
3 | *
4 | * Copyright (C) 2020 Kehan.Xue
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | #include
21 |
22 | #include "bean/celex5_ros_bean.h"
23 |
24 | using namespace celex5_ros;
25 |
26 | int main(int argc, char **argv) {
27 |
28 | ros::init(argc, argv, "celex5_ros_node");
29 | ros::NodeHandle nh("~");
30 |
31 | CeleX5ROSBean celex5_ros_bean(nh);
32 | celex5_ros_bean.Run();
33 |
34 | ros::spin();
35 | return 0;
36 | }
37 |
38 |
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/kalibr/pub_stored_sync_images_node.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * The celex5_calibration ROS package,
3 | * used to calibrate camera parameters for CeleX5-MIPI Event-based Camera.
4 | *
5 | * Copyright (C) 2020 Kehan.Xue
6 | *
7 | * This program is free software: you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation, either version 3 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program. If not, see .
19 | */
20 |
21 | #include
22 | #include "pub_stored_sync_images.h"
23 |
24 | int main(int argc, char **argv) {
25 | ros::init(argc, argv, "pub_stored_sync_images_node");
26 | ros::NodeHandle nh("~");
27 | PubStoredSyncImages pub_stored_sync_images(nh);
28 | ros::spin();
29 | }
30 |
--------------------------------------------------------------------------------
/celex5_calibration/src/temporal/temporal_offset_calibration_node.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * The celex5_calibration ROS package,
3 | * used to calibrate camera parameters for CeleX5-MIPI Event-based Camera.
4 | *
5 | * Copyright (C) 2020 Kehan.Xue
6 | *
7 | * This program is free software: you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation, either version 3 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program. If not, see .
19 | */
20 |
21 | #include
22 | #include "temporal_offset_calculate.h"
23 |
24 | int main(int argc, char **argv) {
25 | ros::init(argc, argv, "temporal_offset_calibration_node");
26 | ros::NodeHandle nh("~");
27 | TemporalOffsetCalculate temporal_offset_calculate(nh);
28 | ros::spin();
29 | }
30 |
--------------------------------------------------------------------------------
/celex5_calibration/launch/event_registration.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # BUILD PRODUCTS
2 | *.d
3 | *.o
4 | *.disasm
5 | *.map
6 | *.elf
7 | *.bin
8 | *.hex
9 | *.slo
10 | *.lo
11 | *.obj
12 |
13 | # CMAKE TEMPORARY FILES
14 | CMakeCache.txt
15 | CMakeFiles/
16 | CMakeFiles/*
17 |
18 | # BUILD FOLDERS
19 | bin/
20 | bin/*
21 | build/
22 | build/*
23 | cmake-build-debug/*
24 |
25 | # ROS GENERATED PRODUCTS
26 | msg_gen/
27 | msg_gen/*
28 | srv_gen/
29 | srv_gen/*
30 |
31 | # ROS GENERATED PYTHON
32 | _*.py
33 | _*.pyc
34 |
35 | # ROS BAG FILES
36 | *.bag
37 |
38 | # XCODE BUILD PRODUCTS
39 | *.build/
40 | *.build/*
41 |
42 | # XCODE USER SETTINGS
43 | *.xcuserdatad/
44 | *.xcuserdatad/*
45 | *.pbxuser
46 | *.pbxuser/*
47 |
48 | # QTCREATOR PROJECT
49 | *.includes
50 | *.creator
51 | *.creator.user
52 | *.config
53 | *.files
54 |
55 | # GEANY PROJECTS
56 | *.geany
57 |
58 | # JETBRAINS
59 | *.idea
60 |
61 | # ZEND/ECLIPSE
62 | *.buildpath
63 | *.settings
64 | *.project
65 | *.pydevproject
66 |
67 | # MACOSX SETTINGS
68 | *.DS_Store
69 |
70 | # GENERATED DOCUMENTATION
71 | html_docs/
72 | html_docs/*
73 |
74 | # ANDROID SDK GENERATED JAVA
75 | gen/
76 | gen/*
77 |
78 | # COMPILED DYNAMIC LIBRARIES
79 | *.so
80 | !src/sdk/lib/libCeleX.so
81 | *.dylib
82 | *.dll
83 |
84 | # COMPILED STATIC LIBRARIES
85 | *.lai
86 | *.la
87 | *.a
88 | *.lib
89 |
90 | # EXECUTABLES
91 | *.exe
92 | *.out
93 | *.app
94 |
95 | # Protobuf
96 | *.pb.cc
97 | *.pb.h
--------------------------------------------------------------------------------
/celex5_ros/.gitignore:
--------------------------------------------------------------------------------
1 | # BUILD PRODUCTS
2 | *.d
3 | *.o
4 | *.disasm
5 | *.map
6 | *.elf
7 | *.bin
8 | *.hex
9 | *.slo
10 | *.lo
11 | *.obj
12 |
13 | # CMAKE TEMPORARY FILES
14 | CMakeCache.txt
15 | CMakeFiles/
16 | CMakeFiles/*
17 |
18 | # BUILD FOLDERS
19 | bin/
20 | bin/*
21 | build/
22 | build/*
23 | cmake-build-debug/*
24 |
25 | # ROS GENERATED PRODUCTS
26 | msg_gen/
27 | msg_gen/*
28 | srv_gen/
29 | srv_gen/*
30 |
31 | # ROS GENERATED PYTHON
32 | _*.py
33 | _*.pyc
34 |
35 | # ROS BAG FILES
36 | *.bag
37 |
38 | # XCODE BUILD PRODUCTS
39 | *.build/
40 | *.build/*
41 |
42 | # XCODE USER SETTINGS
43 | *.xcuserdatad/
44 | *.xcuserdatad/*
45 | *.pbxuser
46 | *.pbxuser/*
47 |
48 | # QTCREATOR PROJECT
49 | *.includes
50 | *.creator
51 | *.creator.user
52 | *.config
53 | *.files
54 |
55 | # GEANY PROJECTS
56 | *.geany
57 |
58 | # JETBRAINS
59 | *.idea
60 |
61 | # ZEND/ECLIPSE
62 | *.buildpath
63 | *.settings
64 | *.project
65 | *.pydevproject
66 |
67 | # MACOSX SETTINGS
68 | *.DS_Store
69 |
70 | # GENERATED DOCUMENTATION
71 | html_docs/
72 | html_docs/*
73 |
74 | # ANDROID SDK GENERATED JAVA
75 | gen/
76 | gen/*
77 |
78 | # COMPILED DYNAMIC LIBRARIES
79 | *.so
80 | !src/sdk/lib/libCeleX.so
81 | *.dylib
82 | *.dll
83 |
84 | # COMPILED STATIC LIBRARIES
85 | *.lai
86 | *.la
87 | *.a
88 | *.lib
89 |
90 | # EXECUTABLES
91 | *.exe
92 | *.out
93 | *.app
94 |
95 | # Protobuf
96 | *.pb.cc
97 | *.pb.h
--------------------------------------------------------------------------------
/celex5_ros/src/nodelet/celex5_nodelet.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * The ROS package for CeleX^TM CeleX5-MIPI Dynamic Vision Sensor.
3 | *
4 | * Copyright (C) 2020 Kehan.Xue
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | #include "celex5_nodelet.h"
21 |
22 | using namespace celex5_ros;
23 |
24 | CeleX5Nodelet::CeleX5Nodelet() = default;
25 |
26 | CeleX5Nodelet::~CeleX5Nodelet() = default;
27 |
28 | void CeleX5Nodelet::onInit() {
29 | p_celex5_ros_bean_ = std::make_shared(this->getPrivateNodeHandle());
30 | std::thread thread([&]() {
31 | p_celex5_ros_bean_->Run();
32 | });
33 | thread.detach();
34 | }
35 |
36 | // PLUGINLIB_EXPORT_CLASS(celex5_ros::CeleX5Nodelet, nodelet::Nodelet)
37 |
--------------------------------------------------------------------------------
/celex5_calibration/README_zh.md:
--------------------------------------------------------------------------------
1 | *[English Version](README.md)*
2 |
3 | # celex5_calibration
4 |
5 | > The ROS package used for calibrating CeleX™ CeleX5-MIPI Dynamic Vision Sensor.
6 |
7 |
8 |
9 | 本仓库提供了有关于`celex5_calibration`基于Events数据进行标定相关的工具和教程。包括:
10 |
11 | - 标定板生成(目前仅支持闪烁的棋盘格,其他类型待加入)
12 | - 内参标定
13 | - 与其他相机进行外参标定(使用Kalibr)
14 | - 同步收集与定制发布标定所需的图像数据
15 | - 与传统相机进行时间戳对齐(TODO,目前存在问题)等工具
16 |
17 | ## 使用`celex5_calibration`
18 |
19 | 提供了一系列基于Events数据进行相机参数标定的办法。
20 |
21 | - 标定工具的生成
22 |
23 | 运行:
24 |
25 | ```bash
26 | rosrun celex5_ros pattern_generator_node
27 | # In a new Terminal
28 | rosrun rqt_reconfigure rqt_reconfigure # Open rqt_reconfigure to config
29 | ```
30 |
31 | 更多细节:[链接](src/pattern)
32 |
33 | - 基于ROS中的[camera_calibration](http://wiki.ros.org/camera_calibration/Tutorials)工具包进行的内参标定。(如果要标定与其他相机的外参,ROS中的这个工具仅支持分辨率一样的...)
34 |
35 | 安装:
36 |
37 | ```bash
38 | sudo apt install ros-$ROS_DISTRO-camera-calibration
39 | ```
40 |
41 | CeleX5-MIPI进行基于该方法进行标定的具体过程:[链接](intrinsics_extrinsics/pkg_camera_calibration)
42 |
43 | - 基于[Kalibr](https://github.com/ethz-asl/kalibr)的标定,支持同时进行内参、与传统相机的外参标定。基于Event数据。
44 |
45 | 更多细节:[链接](src/intrinsics_extrinsics/kalibr)
46 |
47 | 同时提供了收集标定数据的一系列工具。
48 |
49 | - 与其他相机进行时间戳的标定。
50 |
51 | *TODO*,目前仍存在问题。[链接](src/temporal)
52 |
53 | ## 仍存在问题
54 |
55 | **celex5_calibration**
56 |
57 | - 关于与其他相机进行时间戳标定的相关功能还未完成。
--------------------------------------------------------------------------------
/celex5_calibration/src/intrinsics_extrinsics/kalibr/example_result/results-cam-2020-02-12-18-26-45.txt:
--------------------------------------------------------------------------------
1 | Calibration results
2 | ====================
3 | Camera-system parameters:
4 | cam0 (/frame/raw_image):
5 | type:
6 | distortion: [ 0.012439 -0.00823094 0.00117258 -0.00252185] +- [ 0.01077275 0.04834577 0.00082696 0.00064423]
7 | projection: [ 1437.89582238 1437.30876362 1181.78852683 675.07614789] +- [ 1.03115059 0.92398811 0.67579547 2.58675142]
8 | reprojection error: [-0.000031, 0.000075] +- [0.245780, 0.262318]
9 |
10 | cam1 (/events/raw_image):
11 | type:
12 | distortion: [-0.18314293 0.11613944 0.00268887 -0.00098853] +- [ 0.01345115 0.08946159 0.00081123 0.00057281]
13 | projection: [ 1707.99807901 1705.27473707 631.89592624 413.56095398] +- [ 0.91874514 0.95629745 0.33481561 2.07229539]
14 | reprojection error: [0.000059, -0.000018] +- [0.683030, 0.681664]
15 |
16 | baseline T_1_0:
17 | q: [ 0.0218757 -0.00706367 -0.00372985 0.99972879] +- [ 0.00298029 0.00068536 0.00018181]
18 | t: [-0.06014965 0.04751369 0.01298155] +- [ 0.00012073 0.00013789 0.000869 ]
19 |
20 |
21 |
22 | Target configuration
23 | ====================
24 |
25 | Type: checkerboard
26 | Rows
27 | Count: 6
28 | Distance: 0.0211 [m]
29 | Cols
30 | Count: 8
31 | Distance: 0.0211 [m]
32 |
--------------------------------------------------------------------------------
/celex5_calibration/.gitignore:
--------------------------------------------------------------------------------
1 | # BUILD PRODUCTS
2 | *.d
3 | *.o
4 | *.disasm
5 | *.map
6 | *.elf
7 | *.bin
8 | *.hex
9 | *.slo
10 | *.lo
11 | *.obj
12 |
13 | # CMAKE TEMPORARY FILES
14 | CMakeCache.txt
15 | CMakeFiles/
16 | CMakeFiles/*
17 |
18 | # BUILD FOLDERS
19 | bin/
20 | bin/*
21 | build/
22 | build/*
23 | cmake-build-debug/*
24 |
25 | # ROS GENERATED PRODUCTS
26 | msg_gen/
27 | msg_gen/*
28 | srv_gen/
29 | srv_gen/*
30 |
31 | # ROS GENERATED PYTHON
32 | _*.py
33 | _*.pyc
34 |
35 | # ROS BAG FILES
36 | *.bag
37 |
38 | # XCODE BUILD PRODUCTS
39 | *.build/
40 | *.build/*
41 |
42 | # XCODE USER SETTINGS
43 | *.xcuserdatad/
44 | *.xcuserdatad/*
45 | *.pbxuser
46 | *.pbxuser/*
47 |
48 | # QTCREATOR PROJECT
49 | *.includes
50 | *.creator
51 | *.creator.user
52 | *.config
53 | *.files
54 |
55 | # GEANY PROJECTS
56 | *.geany
57 |
58 | # JETBRAINS
59 | *.idea
60 |
61 | # ZEND/ECLIPSE
62 | *.buildpath
63 | *.settings
64 | *.project
65 | *.pydevproject
66 |
67 | # MACOSX SETTINGS
68 | *.DS_Store
69 |
70 | # GENERATED DOCUMENTATION
71 | html_docs/
72 | html_docs/*
73 |
74 | # ANDROID SDK GENERATED JAVA
75 | gen/
76 | gen/*
77 |
78 | # COMPILED DYNAMIC LIBRARIES
79 | *.so
80 | !src/sdk/lib/libCeleX.so
81 | *.dylib
82 | *.dll
83 |
84 | # COMPILED STATIC LIBRARIES
85 | *.lai
86 | *.la
87 | *.a
88 | *.lib
89 |
90 | # EXECUTABLES
91 | *.exe
92 | *.out
93 | *.app
94 |
95 | # Protobuf
96 | *.pb.cc
97 | *.pb.h
98 |
99 | output/
100 | output/*
--------------------------------------------------------------------------------
/celex5_calibration/src/registration/event_registration_node.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * The celex5_calibration ROS package,
3 | * used to calibrate camera parameters for CeleX5-MIPI Event-based Camera.
4 | *
5 | * Copyright (C) 2020 Kehan.Xue
6 | *
7 | * This program is free software: you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation, either version 3 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program. If not, see .
19 | */
20 |
21 | #include
22 | #include "event_registration.h"
23 |
24 | int main(int argc, char **argv) {
25 | ros::init(argc, argv, "event_registration_node");
26 | ros::NodeHandle nh("~");
27 |
28 | // TicToc t_start;
29 | // ros::Time start = ros::Time::now();
30 | // for (int i = 0; i < 2280 * 1242; ++i) {
31 | // double b = 1.2 * 3;
32 | // }
33 | // std::cout << (ros::Time::now() - start).toSec() << std::endl;
34 | // std::cout << t_start.toc() << std::endl;
35 | EventRegistration event_registration(nh);
36 | ros::spin();
37 | }
38 |
--------------------------------------------------------------------------------
/celex5_calibration/src/pattern/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | ##
2 | # The celex5_calibration ROS package,
3 | # used to calibrate camera parameters for CeleX5-MIPI Event-based Camera.
4 | #
5 | # Copyright (C) 2020 Kehan.Xue
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU General Public License as published by
9 | # the Free Software Foundation, either version 3 of the License, or
10 | # (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU General Public License
18 | # along with this program. If not, see .
19 |
20 | cmake_minimum_required(VERSION 2.8.3)
21 | project(pattern_generator)
22 |
23 | add_compile_options(-std=c++14)
24 | find_package(catkin REQUIRED COMPONENTS
25 | roscpp
26 | ddynamic_reconfigure)
27 |
28 | find_package(OpenCV 3 REQUIRED)
29 | include_directories(${OpenCV_INCLUDE_DIRS})
30 | include_directories(${catkin_INCLUDE_DIRS})
31 |
32 | add_executable(pattern_generator_node
33 | pattern_generator_node.cpp
34 | pattern_generator.h
35 | pattern_generator.cpp)
36 |
37 | target_link_libraries(pattern_generator_node
38 | ${OpenCV_LIBS}
39 | ${catkin_LIBRARIES})
40 |
--------------------------------------------------------------------------------
/celex5_ros/src/sdk/cx3driver/cypress.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2020 CelePixel Technology Co. Ltd. All rights reserved.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef CYPRESS_H
18 | #define CYPRESS_H
19 |
20 | #include "usbinterface.h"
21 |
22 | typedef enum
23 | {
24 | CTRL_I2C_SET_REG = 0x100,
25 | CTRL_I2C_GET_REG = 0x200,
26 | CTRL_MIPI_SET_REG = 0x300,
27 | CTRL_MIPI_GET_REG = 0x400,
28 | }CONTROL_COMMAND;
29 |
30 | class Cypress : public USBInterface
31 | {
32 | public:
33 | Cypress();
34 | virtual ~Cypress();
35 |
36 | bool openUSB(void);
37 | bool openStream(void);
38 |
39 | void closeUSB(void);
40 | void closeStream(void);
41 |
42 | bool usbSet(uint16_t wId, uint16_t reg, uint16_t value);
43 | bool usbGet(uint16_t wId, uint16_t reg, uint16_t &value);
44 |
45 | bool writeSerialNumber(std::string number);
46 | std::string getSerialNumber();
47 | std::string getFirmwareVersion();
48 | std::string getFirmwareDate();
49 | };
50 |
51 | #endif // CYPRESS_H
52 |
--------------------------------------------------------------------------------
/celex5_ros/src/nodelet/celex5_nodelet.h:
--------------------------------------------------------------------------------
1 | /**
2 | * The ROS package for CeleX^TM CeleX5-MIPI Dynamic Vision Sensor.
3 | *
4 | * Copyright (C) 2020 Kehan.Xue
5 | *
6 | * This program is free software: you can redistribute it and/or modify
7 | * it under the terms of the GNU General Public License as published by
8 | * the Free Software Foundation, either version 3 of the License, or
9 | * (at your option) any later version.
10 | *
11 | * This program is distributed in the hope that it will be useful,
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | * GNU General Public License for more details.
15 | *
16 | * You should have received a copy of the GNU General Public License
17 | * along with this program. If not, see .
18 | */
19 |
20 | #ifndef CELEX5_ROS_SRC_BEAN_CELEX5_NODELET_H_
21 | #define CELEX5_ROS_SRC_BEAN_CELEX5_NODELET_H_
22 |
23 | #include
24 | #include
25 |
26 | #include
27 | #include
28 | #include
29 |
30 | #include "bean/celex5_ros_bean.h"
31 |
32 | namespace celex5_ros {
33 | class CeleX5Nodelet : public nodelet::Nodelet {
34 |
35 | public:
36 | CeleX5Nodelet();
37 | ~CeleX5Nodelet() override;
38 |
39 | private:
40 | void onInit() override;
41 | std::shared_ptr p_celex5_ros_bean_;
42 | };
43 | }
44 | PLUGINLIB_EXPORT_CLASS(celex5_ros::CeleX5Nodelet, nodelet::Nodelet)
45 |
46 | #endif //CELEX5_ROS_SRC_BEAN_CELEX5_NODELET_H_
47 |
--------------------------------------------------------------------------------
/celex5_ros/src/sdk/configproc/celex5cfgmgr.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017-2020 CelePixel Technology Co. Ltd. All Rights Reserved
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #ifndef CELEX5CFGMGR_H
18 | #define CELEX5CFGMGR_H
19 |
20 | #include
21 | #include
22 | #include