树莓派4B(ubuntu mate系统)使用d435i运行vins

树莓派4B(ubuntu mate系统)使用d435i运行vins

提示本文为随手笔记,并不严谨,可参考:博客博客进行配置
树莓派 ubuntu mate 20系统安装ros的步骤可以参考博客来完成

有一个树莓派4B,运行了ubuntu mate20的系统,现在需要基于ros运行realsense的d435i摄像头,并运行vins-fusion实现定位。
已经在台式机ubuntu18运行成功了历程,精度还算可以
参考:

  1. 前提需要

需要安装好ros、完成工作空间的创建,xtdrone代码的下载(方便复制vins代码)

  1. realsense-sdk的安装(非必须)

realsense-sdk的安装非必须,并且树莓派使用常规安装会报错,需要参考其他,我按照该博客完成了一半,后来发现无需也可以运行ros代码
sdk的作用是在电脑端运行官方界面,然后实现建图和定点的作用
但是我们只需要使用到ros代码,所以非必要安装

  1. realsense-ros安装

参考github即可。
安装驱动,maybe这样的叫法

# sudo apt-get install ros-$ROS_DISTRO-realsense2-camera
# 我们使用的是noetic的ros,因此是
sudo apt-get install ros-noetic-realsense2-camera

创建工作空间并编译包,按需复制代码

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src/
# git clone https://github.com/IntelRealSense/realsense-ros.git
# 使用gitee代理
git clone https://gitee.com/olderking/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..
catkin_init_workspace
cd ..
catkin_make clean
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
catkin_make install

添加源,按需

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

运行测试

# 运行
roslaunch realsense2_camera rs_camera.launch

查看数据和图像

rostopic list
rqt_image_view
  1. 安装vins-ros

同样参考github
创建工作空间

    cd ~/catkin_ws/src
    # git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
    # gitee
    git clone https://gitee.com/stancy_sun/vins_fusion.git
    cd ../
    catkin_make
    source ~/catkin_ws/devel/setup.bash
  1. 继续运行,开始泡桐

虽说运行上述两个launch即可,但是需要根据d435i的参考,修改一些内容,参考:博客博客
修改Realsense文件:复制修改~/catkin_ws/src/realsense/realsense2_camera/launch/目录下的rs_camera.launch,重命名为rs_camera_vins.launch,并修改让其发布双目灰度图像数据(实际是一样的数据)。参考第一个博客,有提供修改后的文件
修改VINS文件:目的是提供摄像头参数,并告知是一个imu+假双目的方式,同样参考第一篇博客
运行:

roslaunch realsense2_camera rs_camera_vins.launch 
roslaunch vins vins_rviz.launch 		# 用于启动界面,应该可以不用
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/realsense_d435i/realsense_stereo_imu_config.yaml

  1. 由于运行realsense一直报错,或其他原因,导致vins无法正常工作。【吐槽:奇了怪了,读取图像和imu数据,要多少性能啊,就读取不了】,最后修改realsens_ros中的文件为以下,才勉强运行了一点点,但是巨卡,CPU占用95%以上(包括了px4、realsense和vins)。修改主要为:帧数降低,去除同步和深度对齐,但是一段时间后会显示无imu数据。
<launch>
  <arg name="serial_no"           default=""/>
  <arg name="usb_port_id"         default=""/>
  <arg name="device_type"         default=""/>
  <arg name="json_file_path"      default=""/>
  <arg name="camera"              default="camera"/>
  <arg name="tf_prefix"           default="$(arg camera)"/>
  <arg name="external_manager"    default="false"/>
  <arg name="manager"             default="realsense2_camera_manager"/>

  <arg name="fisheye_width"       default="640"/>
  <arg name="fisheye_height"      default="480"/>
  <arg name="enable_fisheye"      default="false"/>

  <arg name="depth_width"         default="640"/>
  <arg name="depth_height"        default="480"/>
  <arg name="enable_depth"        default="true"/>

  <arg name="infra_width"        default="640"/>
  <arg name="infra_height"       default="480"/>
  <arg name="enable_infra1"       default="true"/>
  <arg name="enable_infra2"       default="true"/>

  <arg name="color_width"         default="640"/>
  <arg name="color_height"        default="480"/>
  <arg name="enable_color"        default="true"/>

  <arg name="fisheye_fps"         default="15"/>
  <arg name="depth_fps"           default="15"/>
  <arg name="infra_fps"           default="15"/>
  <arg name="color_fps"           default="15"/>
  <arg name="gyro_fps"            default="200"/>
  <arg name="accel_fps"           default="250"/>
  <arg name="enable_gyro"         default="true"/>
  <arg name="enable_accel"        default="true"/>

  <arg name="enable_pointcloud"         default="false"/>
  <arg name="pointcloud_texture_stream" default="RS2_STREAM_COLOR"/>
  <arg name="pointcloud_texture_index"  default="0"/>

  <arg name="enable_sync"               default="false"/>
  <arg name="align_depth"               default="false"/>

  <arg name="publish_tf"                default="true"/>
  <arg name="tf_publish_rate"           default="0"/>

  <arg name="filters"                   default=""/>
  <arg name="clip_distance"             default="-2"/>
  <arg name="linear_accel_cov"          default="0.01"/>
  <arg name="initial_reset"             default="false"/>
  <arg name="unite_imu_method"          default="linear_interpolation"/>
  <arg name="topic_odom_in"             default="odom_in"/>
  <arg name="calib_odom_file"           default=""/>
  <arg name="publish_odom_tf"           default="true"/>
  <arg name="allow_no_texture_points"   default="false"/>
  <arg name="emitter_enable"   		default="false"/>



  <group ns="$(arg camera)">
    <include file="$(find realsense2_camera)/launch/includes/nodelet.launch.xml">
      <arg name="tf_prefix"                value="$(arg tf_prefix)"/>
      <arg name="external_manager"         value="$(arg external_manager)"/>
      <arg name="manager"                  value="$(arg manager)"/>
      <arg name="serial_no"                value="$(arg serial_no)"/>
      <arg name="usb_port_id"              value="$(arg usb_port_id)"/>
      <arg name="device_type"              value="$(arg device_type)"/>
      <arg name="json_file_path"           value="$(arg json_file_path)"/>

      <arg name="enable_pointcloud"        value="$(arg enable_pointcloud)"/>
      <arg name="pointcloud_texture_stream" value="$(arg pointcloud_texture_stream)"/>
      <arg name="pointcloud_texture_index"  value="$(arg pointcloud_texture_index)"/>
      <arg name="enable_sync"              value="$(arg enable_sync)"/>
      <arg name="align_depth"              value="$(arg align_depth)"/>

      <arg name="fisheye_width"            value="$(arg fisheye_width)"/>
      <arg name="fisheye_height"           value="$(arg fisheye_height)"/>
      <arg name="enable_fisheye"           value="$(arg enable_fisheye)"/>

      <arg name="depth_width"              value="$(arg depth_width)"/>
      <arg name="depth_height"             value="$(arg depth_height)"/>
      <arg name="enable_depth"             value="$(arg enable_depth)"/>

      <arg name="color_width"              value="$(arg color_width)"/>
      <arg name="color_height"             value="$(arg color_height)"/>
      <arg name="enable_color"             value="$(arg enable_color)"/>

      <arg name="infra_width"              value="$(arg infra_width)"/>
      <arg name="infra_height"             value="$(arg infra_height)"/>
      <arg name="enable_infra1"            value="$(arg enable_infra1)"/>
      <arg name="enable_infra2"            value="$(arg enable_infra2)"/>

      <arg name="fisheye_fps"              value="$(arg fisheye_fps)"/>
      <arg name="depth_fps"                value="$(arg depth_fps)"/>
      <arg name="infra_fps"                value="$(arg infra_fps)"/>
      <arg name="color_fps"                value="$(arg color_fps)"/>
      <arg name="gyro_fps"                 value="$(arg gyro_fps)"/>
      <arg name="accel_fps"                value="$(arg accel_fps)"/>
      <arg name="enable_gyro"              value="$(arg enable_gyro)"/>
      <arg name="enable_accel"             value="$(arg enable_accel)"/>

      <arg name="publish_tf"               value="$(arg publish_tf)"/>
      <arg name="tf_publish_rate"          value="$(arg tf_publish_rate)"/>

      <arg name="filters"                  value="$(arg filters)"/>
      <arg name="clip_distance"            value="$(arg clip_distance)"/>
      <arg name="linear_accel_cov"         value="$(arg linear_accel_cov)"/>
      <arg name="initial_reset"            value="$(arg initial_reset)"/>
      <arg name="unite_imu_method"         value="$(arg unite_imu_method)"/>
      <arg name="topic_odom_in"            value="$(arg topic_odom_in)"/>
      <arg name="calib_odom_file"          value="$(arg calib_odom_file)"/>
      <arg name="publish_odom_tf"          value="$(arg publish_odom_tf)"/>
      <arg name="allow_no_texture_points"  value="$(arg allow_no_texture_points)"/>
    </include>
  </group>
</launch>

### 回答1: 您可以通过以下步骤安装Ubuntu mate系统: 1. 下载Ubuntu mate系统的镜像文件并解压缩。 2. 使用SD卡制作工具将Ubuntu mate系统写入SD卡中。 3. 将SD卡插入树莓派4b中并启动设备。 4. 根据提示进行安装即可。 希望这个回答能够帮到您。 ### 回答2: 安装Ubuntu Mate系统树莓派4B可以按照以下步骤进行: 1. 首先,从Ubuntu Mate官方网站上下载适用于树莓派4B的镜像文件。可以选择64位版本的镜像。 2. 下载完成后,使用一个镜像烧录软件将镜像文件写入一个SD卡上。常用的烧录软件有Etcher和Win32DiskImager等。 3. 在烧录完成后,将SD卡插入到树莓派4B的SD卡槽中。 4. 连接树莓派4B到显示器和键盘。使用HDMI接口将树莓派连接到显示器,并插入键盘到USB接口。 5. 接下来,连接树莓派4B到电源开启它。系统将会自动引导。 6. 在首次引导过程中,您将会被引导设置您的系统语言、键盘布局和网络连接。 7. 完成这些设置后,将进入到Ubuntu Mate桌面环境。您可以使用鼠标和键盘进行操作。 8. 进入桌面后,您可以根据需要进行个性化设置和配置,安装额外的软件和更新系统。 总结一下,安装Ubuntu Mate系统树莓派4B相对简单。只需下载镜像文件,烧录到SD卡上,插入SD卡到树莓派并连接显示器和键盘,然后引导树莓派进行初次设置即可。之后您就可以在Ubuntu Mate桌面环境中使用树莓派4B了。 ### 回答3: 树莓派4b是一款强大的单板计算机,它可以运行多种操作系统,包括Ubuntu Mate。以下是安装Ubuntu Mate系统的步骤: 1. 首先,准备一个SD卡,至少为16GB,推荐使用32GB或64GB的高速SD卡。确保SD卡已经格式化为FAT32文件系统。 2. 下载Ubuntu Mate的镜像文件。在官方网站上可以找到树莓派的专属版本。下载完后,将镜像文件保存在本地。 3. 安装一个专用的SD卡写入工具,如Etcher。打开Etcher并选择刚刚下载的Ubuntu Mate镜像文件。 4. 插入SD卡到计算机的SD卡读卡器中,并在Etcher中选择对应的SD卡。 5. 单击“Flash!”按钮,Etcher将开始将Ubuntu Mate系统写入SD卡。这个过程可能需要几分钟的时间。 6. 写入完成后,将SD卡插入树莓派的SD卡插槽中。 7. 连接显示器、键盘和鼠标到树莓派上,并插入电源。 8. 树莓派启动后,选择Ubuntu Mate作为默认操作系统树莓派将自动安装和配置Ubuntu Mate系统。 9. 根据系统提示,设置用户名和密码。 10. 完成设置后,你将能够访问Ubuntu Mate桌面。享受树莓派Ubuntu Mate带来的强大功能和灵活性! 总之,安装Ubuntu Mate系统非常简单。只需准备好SD卡、下载镜像文件、写入SD卡并启动树莓派,就能够轻松使用树莓派4bUbuntu Mate系统了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值