驱动
安装依赖
sudo apt install ros-$ROS_DISTRO-rgbd-launch ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros
下载驱动
cd catkin_ws/src
git clone https://github.com/orbbec/ros_astra_camera
roscd astra_camera
./scripts/create_udev_rules
cd ~/catkin_ws
catkin_make
lsusb
可以看到相机的ID号,0502为RGB
修改astrapro.launch,将 param name=“product” value=“0x501” 修改为502
<node pkg="astra_camera" type="camera_node" name="$(arg camera)_rgb">
<!-- Parameters used to find the camera -->
<param name="vendor" value="0x2bc5"/>
<param name="product" value="0x502"/>
<param name="serial" value="0"/>
<!-- If the above parameters aren't unique, choose the first match: -->
<param name="index" value="$(arg index)"/>
<!-- Image size and type -->
<param name="width" value="640"/>
<param name="height" value="480"/>
<!-- choose whichever uncompressed format the camera supports: -->
<param name="video_mode" value="mjpeg"/> <!-- or yuyv/nv12/jpeg -->
<param name="frame_rate" value="30"/>
<param name="timestamp_method" value="start"/> <!-- start of frame -->
<param name="camera_info_url" value="file://$(find astra_camera)/camera.yaml"/>
<!-- <param name="auto_exposure" value="3"/> --> <!-- use aperture_priority auto exposure -->
<!-- <param name="auto_white_balance" value="false"/> -->
<remap from="/$(arg camera)/image_raw" to="/$(arg camera)/rgb/image_raw" />
</node>
启动
启动相机
cd catkin_ws
source devel/setup.bash
roslaunch astra_camera astrapro.launch
打开rviz
rviz
添加 camera/depth/image 和 camera/rgb/image_raw
查看点云,添加camera/depth/points
修改Fixed Frame为camera_rgb_frame
标定
若想查看彩色点云图,需要先对相机进行标定,并修改astrapro.launch中info_url地址,该地址取决于标定结果文件的所在位置,我将它们放在了该功能包根目录下
<arg name="rgb_camera_info_url" default="file://$(find astra_camera)/rgb_camera.yaml" />
<arg name="depth_camera_info_url" default="file://$(find astra_camera)/depth_camera.yaml" />
注意:我没有标定深度相机,偷懒采用了RGB标定结果
RGB标定过程如下
启动相机
rosrun uvc_camera uvc_camera_node device:=/dev/video0
开始标定
rosrun camera_calibration cameracalibrator.py image:=/image_raw camera:=/ --size 8x6 --square 0.024
参数:
size: 8x6 是指两个黑色方块相交处的所有的点的行列数 如下图所示
square: 黑色方块的边长,单位m
之后会出现一个窗口
请左右充分平移至X下方的线段变成绿色
然后上下平移至Y下方的线段变成绿色
前后平移至Size下方的线段变成绿色
改变标定板俯仰角至Skew下方的线段变成绿色
等Calibrate按钮可用时,点击等待终端输出计算结果
然后点击Commit,将计算结果保存至~/.ros/camera_info/camera.yaml中,这是默认读取路径
查看彩色点云,添加camera/depth_registered/points
Fixed Frame 依旧选择camera_rgb_frame