ROS实验笔记之——基于event camera的ASC*特征
Posted gwpscut
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS实验笔记之——基于event camera的ASC*特征相关的知识,希望对你有一定的参考价值。
目录
原理
详细的理论部分就不阐述了,可以参考原文以及这个博客~【事件相机整理】角点检测与跟踪总结_larrydong的博客-CSDN博客
测试
先进入工程编译源码。注意用ros版本的~
运行的节点图如下
然后下载数据集,并且运行
roslaunch arc_star_ros arc_star.launch rosbag_flag:=1 rosbag_path:=/home/kwanwaipang/dataset/shapes_rotation.bag
若直接运行事件相机如下
roslaunch arc_star_ros arc_star_testing.launch
arc
仿真没有问题但是实测就die掉。。。。。
进入launch文件看看
<launch>
<!-- <arg name="rosbag_flag" default='0'/>
<arg name="rosbag_path" default=''/> -->
<!-- camera driver -->
<!-- 如果参数rosbag_flag是等于0,则运行davis driver -->
<!-- <group if="$(eval arg('rosbag_flag')==0)">
<node name="davis_ros_driver" pkg="davis_ros_driver" type="davis_ros_driver" />
<param name="autoexposure_enabled" value="true"/>
<param name="display_method" value="red-blue"/>
<remap from="events" to="/dvs/events" />
<remap from="image" to="/dvs/image_raw" />
</group> -->
<!-- rosbag player-->
<!-- <group if="$(eval arg('rosbag_flag')!=0)">
<node pkg="rosbag" type="play" name="rosbag_player" args="$(arg rosbag_path)"/>
</group> -->
<!-- Publish the calibration -->
<!-- <include file="$(find esvo_time_surface)/launch/rosbag_launcher/hkust/my_calib_info.launch" /> -->
<!-- corner detector -->
<node name="arc_star_ros" pkg="arc_star_ros" type="arc_star_ros" output="screen">
<remap from="events" to="/dvs/events" />
<remap from="corners" to="/dvs/corners" />
</node>
<!-- visualization events-->
<node name="dvs_renderer_events" pkg="dvs_renderer" type="dvs_renderer">
<param name="display_method" value="red-blue"/>
<remap from="events" to="/dvs/events" />
<remap from="image" to="/dvs/image_raw" />
<remap from="camera_info" to="/davis/camera_info" />
<remap from="dvs_rendering" to="dvs_rendering_events" />
</node>
<node name="image_view_events" pkg="image_view" type="image_view">
<remap from="image" to="dvs_rendering_events"/>
</node>
<!-- visualization corners-->
<node name="dvs_renderer_corners" pkg="dvs_renderer" type="dvs_renderer">
<param name="display_method" value="red-blue"/>
<remap from="events" to="/dvs/corners" />
<remap from="image" to="/dvs/image_raw" />
<remap from="camera_info" to="/davis/camera_info" />
<remap from="dvs_rendering" to="dvs_rendering_corners" />
</node>
<node name="image_view_corners" pkg="image_view" type="image_view">
<remap from="image" to="dvs_rendering_corners"/>
</node>
</launch>
也没有什么特别的吖。。。决定录包试试
录制事件相机的数据包
如何优雅的录制ROS的rosbag包?_The_Dream_Runner的博客-CSDN博客_ros录制bag包
<launch>
<node pkg="rosbag" type="record" name="bag_record" args="/davis/camera_info /dvs/events /dvs/image_raw /dvs/imu /dvs_rendering -o /home/kwanwaipang/catkin_ws_dvs/hku_desk "/>
</launch>
roslaunch dvs_renderer davis_testing.launch
roslaunch dvs_renderer davis_recording.launch
先试试0.3倍速吧
rosbag play /home/kwanwaipang/catkin_ws_dvs/hku_desk_2021-10-04-17-25-27.bag -r 0.3
还是不行。。。最终发现是代码里面有点问题,通过debug后终于解决了!效果如下:
arc
实测如下:
arc
参考资料:
Alzugaray Lopez I, Chli M. HASTE: multi-Hypothesis Asynchronous Speeded-up Tracking of Events[C]//31st British Machine Vision Virtual Conference (BMVC 2020). ETH Zurich, Institute of Robotics and Intelligent Systems, 2020: 744.
Alzugaray I, Chli M. Asynchronous corner detection and tracking for event cameras in real time[J]. IEEE Robotics and Automation Letters, 2018, 3(4): 3177-3184.
https://github.com/uzh-rpg/rpg_corner_events (corner detection)
https://github.com/kazuotani14/EventBasedVisualOdometry (evo)
以上是关于ROS实验笔记之——基于event camera的ASC*特征的主要内容,如果未能解决你的问题,请参考以下文章
ROS实验笔记之——基于dv-gui多次标定event与imu的实验记录
ROS仿真笔记之——基于gazebo的event camera仿真(dvs gazebo)
ROS实验笔记之——基于dv-gui的camera与IMU校正(DAVIS346与DVXplorer)