Jetson Nano 调用CSI摄像头运行CCMSLAM

2023-05-16

文章目录

  • 1.安装ROS的CSI摄像头软件包
    • 1.1 jetson_csi_cam
    • 1.2 jetson_nano_csi_cam
  • 2.修改Client0_euroc.launch
  • 3.编写启动文件
  • 4.启动

在这里插入图片描述

1.安装ROS的CSI摄像头软件包

TX2推荐安装jetson_csi_cam,而Nano推荐安装jetson_nano_csi_cam

1.1 jetson_csi_cam

注意:与下面的jetson_nano_csi_cam二选一。
参考:https://github.com/peter-moran/jetson_csi_cam

1.1.1安装 GStreamer-1.0

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt-get update
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \
 gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
 gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
 gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev \
 libgstreamer-plugins-base1.0-dev \
 libgstreamer-plugins-good1.0-dev \
 libgstreamer-plugins-bad1.0-dev

查看 GStreamer-1.0 版本

gst-inspect-1.0 --version

1.1.2下载包jetson_csi_camgscam

cd ~/ccmslam_ws/src
git clone https://github.com/peter-moran/jetson_csi_cam.git
git clone https://github.com/ros-drivers/gscam.git

修改gscamMakefile

gedit ~/ccmslam_ws/gscam/Makefile

第一行后面加上-DGSTREAMER_VERSION_1_x=On变成:

EXTRA_CMAKE_FLAGS = -DUSE_ROSBUILD:BOOL=1 -DGSTREAMER_VERSION_1_x=On

保存退出,返回工作空间编译:

cd ../..
catkin_make

如果catkin_make失败,则用

catkin_make_isolated

测试:

roscore
roslaunch jetson_csi_cam jetson_csi_cam.launch

若出现错误:gst_element_make_from_uri: assertion 'gst_uri_is_valid (uri)' failed
解决方法转自:https://github.com/peter-moran/jetson_csi_cam/issues/1
修改jetson_csi_cam.launch

gedit ~/ccmslam_ws/src/jetson_csi_cam/jetson_csi_cam.launch

把关于GSCAM_CONFIG的那一段改为:

<env name="GSCAM_CONFIG" value="nvarguscamerasrc sensor-id=$(arg sensor_id) ! video/x-raw(memory:NVMM),
    width=(int)$(arg width), height=(int)$(arg height), format=(string)I420, framerate=(fraction)$(arg fps)/1 ! 
    nvvidconv flip-method=2 ! video/x-raw, format=(string)BGRx ! videoconvert" />

1.1.3 再运行roslaunch:

roslaunch jetson_csi_cam jetson_csi_cam.launch

如果出现错误:Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvargus
则终端运行:

sudo systemctl restart nvargus-daemon

再运行roslaunch

查看ROS话题:

rostopic list

发现出现了/csi_cam_0/image_raw
查看捕获的图像:

rqt_image_view

如果能正确显示图像,则成功了。


1.2 jetson_nano_csi_cam

注意:与上面的jetson_csi_cam二选一。
参考:https://github.com/rt-net/jetson_nano_csi_cam_ros

1.2.1安装 GStreamer-1.0

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt-get update
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \
 gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
 gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
 gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev \
 libgstreamer-plugins-base1.0-dev \
 libgstreamer-plugins-good1.0-dev \
 libgstreamer-plugins-bad1.0-dev

查看 GStreamer-1.0 版本

gst-inspect-1.0 --version

1.2.2下载包jetson_nano_csi_camgscam

cd ~/ccmslam_ws/src
git clone https://github.com/rt-net/jetson_nano_csi_cam_ros.git 
git clone https://github.com/ros-drivers/gscam.git

修改gscam的Makefile:

gedit ~/ccmslam_ws/gscam/Makefile

第一行后面加上-DGSTREAMER_VERSION_1_x=On变成:

EXTRA_CMAKE_FLAGS = -DUSE_ROSBUILD:BOOL=1 -DGSTREAMER_VERSION_1_x=On

保存退出,返回工作空间编译:

cd ../..
catkin_make

1.2.3 运行roslaunch:

roslaunch jetson_nano_csi_cam jetson_nano_csi_cam.launch

查看ROS话题:

rostopic list

发现出现了/csi_cam_0/image_raw

查看捕获的图像:

rqt_image_view

如果能正确显示图像,则成功了。


2.修改Client0_euroc.launch

gedit ~/ccmslam_ws/src/ccm_slam/cslam/launch/EuRoC/Client0_euroc.launch

将参数cam更改为新相机文件的路径:
即,将

 <param name="~TopicNameCamSub" type="string" value="/cam0/image_raw" />

改为:

 <param name="~TopicNameCamSub" type="string" value="/csi_cam_0/image_raw" />

3.编写启动文件

编写ccm-csi.sh

gnome-terminal -t "cam" -x bash -c "roslaunch jetson_csi_cam jetson_csi_cam.launch;exec bash;"

sleep 3
gnome-terminal -t "server" -x bash -c "roslaunch ccmslam Server.launch;exec bash;"
sleep 3

gnome-terminal -t "agent0" -x bash -c "roslaunch ccmslam Client0_euroc.launch;exec bash;"

sleep 3 
gnome-terminal -t "rviz" -x bash -c "roscd ccmslam ;rviz -d conf/rviz/ccmslam.rviz ;exec bash;"


如果上面用的是jetson_nano_csi_cam包,则:

gnome-terminal -t "cam" -x bash -c "roslaunch jetson_nano_csi_cam jetson_nano_csi_cam.launch;exec bash;"

sleep 3
gnome-terminal -t "server" -x bash -c "roslaunch ccmslam Server.launch;exec bash;"
sleep 3

gnome-terminal -t "agent0" -x bash -c "roslaunch ccmslam Client0_euroc.launch;exec bash;"

sleep 3 
gnome-terminal -t "rviz" -x bash -c "roscd ccmslam ;rviz -d conf/rviz/ccmslam.rviz ;exec bash;"


4.启动

命令行输入:

chmod +x ccm-csi.sh
sh ccm-csi.sh

在这里插入图片描述
在这里插入图片描述
如果出现错误:Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvargus
则终端运行:

sudo systemctl restart nvargus-daemon

转载请备注:https://blog.csdn.net/klsjadkls/article/details/116207446

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jetson Nano 调用CSI摄像头运行CCMSLAM 的相关文章

  • freeRTOS 开启关闭调度器、挂起恢复调度器、vTaskStepTick

    1 开启调度器 br vTaskStartScheduler 43 vPortSetupTimerInterrupt 设置systick xff0c 初始化低功耗运行系统补偿时间 br 43 xPortStartScheduler 43 p
  • 通过Flask框架封装Tushare获取的日线股票数据

    概要介绍 概要介绍 xff08 TuShare id 282782 xff09 当我们需要进行量化交易分析 xff0c 或者通过代码进行股票的数据计算 xff0c 研究金融时 xff0c 我们需要获取最基本的股票价格 xff0c 开盘价收盘
  • linux系统安装硬盘分区建议

    笔者使用linux也很长时间了 xff0c 但总有在使用一段时间之后感觉系统分区不是很合理 xff0c 这里就算是给自己总结一下 xff0c 也跟大家一起分享吧 一 常见挂载点的情况说明 一般来说 xff0c 在linux系统中都有最少两个
  • Python3.4简单爬虫实现之抓取糗事百科段子

    网上的python教程大都是2 X版本的 xff0c python2 X和python3 X相比较改动比较大 xff0c 好多库的用法不太一样 xff0c 我安装的是3 4 1 xff0c 就用3 4 1实现一下网页内容抓取 首先是库 xf
  • 关于stm32中串口重定向问题详解(找个时间好好理解下)

    usart这部分代码我也是从网上copy出来的 xff0c 一下是作者的解释 xff1a 简单地说 xff1a 想在mdk 中用printf xff0c 需要同时重定义fputc函数和避免使用semihosting 半主机模式 xff09
  • http解析库http-parser

    一 http parser简介 1 简介 http parser是一个用C编写的HTTP消息解析器 xff0c 可以解析请求和响应 xff0c 被设计用于高性能HTTP应用程序 它不会进行任何系统调用及内存分配 xff0c 它不会缓冲数据
  • centos系统重置root密码,忘记密码修改

    1 开机按下Ecs键 xff0c 进入如下界面 2 根据需要选择系统内核版本并按e键 3 光标移动到 linux 16 开头的行 xff0c 找到 ro 改为 rw init 61 sysroot bin sh xff1b 4 按 Ctrl
  • summary1 如何在Python中创建基本的ROS节点[AI]

    本课程结束时 xff0c 您将能够 xff1a 1 在模拟中 xff0c 使用ROS控制TurtleBot3机器人 2 使用roslaunch和rosrun启动ROS应用程序 3 使用关键ROS命令行工具询问正在运行的ROS应用程序 4 创
  • switch case语句用法

    一般情况下 xff0c 判断语句常用的有if else xff0c 三目运算符 xff0c 还有switch case等 xff0c 根据不同需求使用其判断语句 下面以简单示例展示 xff1a 在输入框中输入数字 xff0c 判断其星期几
  • 四轴飞行器基础

    原文知识来自果壳网 四轴飞行器基础篇 xff0c 进行一些适量增删 基本原理与名词解释 1 遥控器篇 通道 通道就是可以遥控器控制的动作路数 xff0c 比如遥控器只能控制四轴上下飞 xff0c 那么就是1个通道 但四轴在控制过程中需要控制
  • OPENWRT,爱快等软路由推荐

    这种用于路由器的开源固件 操作系统可以让它获得大多数路由器所不具备的功能 xff0c 甚至可以把一台旧PC变成强大的路由器或防火墙设备 软路由提供的一些特性和功能包括带宽监控 VLAN支持 高级无线设置 VPN集成 高级安全等等 在这篇文章
  • freeRTOS 时间管理

    1 相对时间延时 br vTaskDelay gt prvAddCurrentTaskToDelayedList 函数分析之后 xff0c 有步骤解析 br 为什么使用两个延时列表 xff1f br br br 2 绝对时间延时 br Pr
  • 美团笔试题_20220409

    前言 笔试一共五道编程题 xff08 四 43 一 xff09 xff0c 一为专项编程题 xff0c 估计不同岗位有题目不一样 xff0c 使用的是赛码网 xff0c 允许跳出界面使用自己的IDE 在此感谢筱羊冰冰提供的部分题目及题解 题
  • 最简单的socket 与物流网的传感器交换数据

    做个笔记 最简单的socket 要与物流网的传感器交换数据 登录分为用户登录 与 设备登录 1 用户登录 xff08 SSLSOCKET xff09 M login ID xx1 K xx2 n json格式 最简单的SSLSocket 基
  • 如何开发出成功的硬件产品,一个产品由概念的产生到产品的落地量产又需要经历哪些流程呢?

    对于一个硬件产品而言 xff0c 大批量的生产交付才能实现其最大的商业价值 然而 xff0c 不同于软件产品的复制升级 xff0c 硬件产品大批量生产背后所涉及的生产制造 工艺测试 品质功能 可靠性 成本等等一系列问题 xff0c 都是一个
  • 进程切换与线程切换的区别

    一 虚拟内存知识复习 虚拟内存是操作系统为每个进程提供的一种抽象 xff0c 每个进程都有属于自己的 私有的 地址连续的虚拟内存 xff0c 当然我们知道最终进程的数据及代码必然要放到物理内存上 xff0c 那么必须有某种机制能记住虚拟地址
  • eclipse-tomcat解决java.lang.OutOfMemoryError: PermGen space

    在eclipse中使用tomcat启动项目的时候 遇到问题 xff0c 报错 xff1a java lang OutOfMemoryError PermGen space 原因很简单 内存溢出 xff0c 解决方法 1 双击红色部分 2 单
  • JavaWeb项目中加入redis缓存

    关于redis缓存的优缺点不再多做结束 xff0c 请自行上网查询 1 下载 xff1a windows版本资源我已经上传 xff0c 链接 xff1a http download csdn net detail kkkder 963718
  • java 格式化时间

    public static void main String args System out println System currentTimeMillis SimpleDateFormat formatter 61 new Simple
  • linux docker删除镜像

    springcloud参考指南下载 xff1a http download csdn net download kkkder 10035750 之前的没有接触的docker xff0c 找了些文档 xff0c 按部就班的在linux下安装部

随机推荐