4 SIR_wkp

尚未进行身份认证

暂无相关简介

等级
TA的排名 17w+

从 EuRoC MAV Dataset 的 .zip 文件生成 .bag 的 python 脚本

EuRoc MAV Dataset 是 VSLAM 和 VIO 常用的一个数据集。每个场景同时保存了 .bag 的 rosbag 文件和 .zip 的压缩文件,但是在国内的网络中下载 .bag 文件异常缓慢,而 .zip 更小,下载要稍快一些。而且 .zip 文件解压后的文件夹中包含了比rosbag 更多的信息,既包括了双目的图像和 imu 信息,还有传感器安装方位和采用外部定位设备获取的姿态和...

2019-12-26 11:57:49

利用 kalibr 标定多个相机(>=1)和 IMU 组合系统

目录1、准备工作1.1 编译 kalibr1.2 制作标定板2、 相机标定2.1 相机话题降频2.2 录制rosbag2.3 相机标定3、相机-IMU标定3.1 准备文件3.2 录制相机+IMU的 rosbag3.3 标定附注:官方链接:Kalibr官方 wiki 中的讲解非常清楚,但是需要花些时间好好消化一下。我在这里做一下流程汇总:1...

2019-12-13 22:41:03

英伟达 Jetson TX2 开发板安装Xsens MTi 驱动

TX2 的 ubuntu 18.04 不能自动将 MTi 的 USB 口识别成串口,必须编译内核模块作为驱动程序。第一步,下载内核源码到 TX2 的 /usr/src 文件夹内核源码的下载链接在英伟达官网,对照自己的系统版本来下载就可以,例如 R32.2.3。下载后的文件名称为 public_sources.tbz2 , 经过两次解压后才是源代码,相关指令包括:cd /usr/...

2019-12-05 00:14:44

英伟达 Jetson TX2 开发板安装英特尔 D435i 深度相机驱动

经过多番折腾,成功安装并且掌握了规律,在这里详细解释一下,大家可以依葫芦画瓢。授人以鱼不如授人以渔。首先,也是最最最重要的一步,就是要重新编译系统内核,使得内核可以识别 D435i 相机。因为 D435i 是采用 USB3.0 接口与 TX2 连接的,USB 能否识别设备取决于内核中是否有对应于设备 ID 的预置代码,在内核编译的时候,需要打补丁,将 D435i 的 USB 信息添加到内...

2019-11-26 13:10:55

碰到的一个小问题:Linux下 gcc、g++ 以及 CMakeLists.txt 包含库文件的顺序问题

原本用C语言写好的测试代码,经过测试无误后,封装成了一个静态库 libXXX.a文件,其中使用了多个线程,在后续编译时需要包含 libthread.so 的动态库。先简单记录一下编译静态库的指令。首先将所有 .c 文件编译为 .o 文件,指令是:gcc -c xxx.c xxx.o然后打包静态库,指令是:ar cr libXXX.a xxx1.o xxx2.o xxx...

2019-09-05 22:22:10

最简版 ros 联机设置

搞了一整天的 ros 联机,所用两台都是 arm 板,其一是 ubuntu14.04 系统,安装了 ros indigo-base;另一是 ubuntu16.04 系统,安装了 ros kinetic-desktop-full。网上教程乱七八糟,试了很多都没啥用。现将配置过程精简如下:第一:完全不需要去更改 /etc/hosts 文件,这里边ipaddress hostname 只是给 ...

2019-08-19 19:39:46

用指令更改 Linux 系统时间

使用嵌入式 Linux 计算机时,每次通电系统时间都会重置,导致代码编译出现问题,出现类似 “clock skew"、"compile incomplete"、"file modified XXXs in the future" 的警告信息。事实上,由于编译器认为目前的文件修改时间在上次文件修改时间之前,并不会真正编译更改后代码,导致更改了代码后编译成功了但是没有产生预期的效果。这里就需要用指...

2019-02-25 19:16:18

从 MAVROS 到 PX4 飞控的数据流向

上一篇分析了 MAVROS 中数据收发的实现方法。当用户发送一个 ros 话题的消息后,对应的 plugin 中的回调函数被处罚,ros 消息被包装成 mavlink 消息,从链路中发送出去。下面以 "/mavros/setpoint_position/local" 话题为例进行分析。一、MAVROS 部分用户代码发送了一个 "/mavros/setpoint_position/loc...

2019-02-21 23:54:09

MAVROS 源码分析

一、安装 MAVROS 利用机载计算机对 PX4 飞控进行 OFFBOARD 控制,需要在机载计算机上安装 ROS 的 MAVROS 包。安装方式可以参考 PX4 开发者网站,有二进制文件安装和源码安装两种方式,选择其中一项即可。 MAVROS 安装链接其中源码安装之后可以获得 MAVROS 的所有源代码。以下是 MAVROS 的官方 wiki 网址:http://wiki.r...

2019-02-21 17:52:53

hikey970 与 PX4 飞控进行 MAVROS 连接

PX4 飞控进行 OFFBOARD 控制必须使用UART接口,是电平 3.3V 的 TTL 串口;而 hikey970 的低速扩展接口中有两个 UART,其中一个连接的是 DEBUG Type-C 的接口,经过测定 电平是 1.8V,而且只能进行输出,无法进行输入,也就是无法通过 COM 口登录到终端;另一个 UART 根本就没有驱动,电平为 0。尝试了好几种 USB-TTL 转换器,均没...

2019-01-23 19:40:25

hikey970烧写Ubuntu系统以及修改分区大小

拿到 hikey970 板子几天时间,基本都在尝试烧录系统和修改分区。这里做一下记录。官方网址: https://www.96boards.org/ ,国内网站:http://smartfire.cn/forum-64-4.html系统镜像文件都是免费下载的。目前提供的镜像文件有 Android、Debian、Lebuntu 以及预装了 tensorflow 的 Debian,是由Le...

2019-01-10 14:14:35

PX4代码中LIDAR-Lite v3激光测距仪PWM驱动

调试了LIDAR-Lite v3激光测距仪PWM驱动,在这里做一下记录。飞控硬件是pixhawk1,PX4软件版本为1.7.3。按照官方教程进行接线和配置,链接为 https://docs.px4.io/en/sensor/lidar_lite.html。PWM的接线方式为:        这里接了 AUX_PWM 的 CH6 来供电,接 CH5 进行 PWM 捕获。而实际...

2019-01-02 18:07:57

PX4代码中LIDAR-Lite v3激光测距仪I2C驱动

调试LIDAR-Lite v3激光测距仪,通读了PX4代码中驱动相关的部分。在这里做一下记录。飞控硬件是pixhawk1,PX4软件版本为1.7.3。按照官方教程进行接线和配置,链接为 https://docs.px4.io/en/sensor/lidar_lite.html。首先,确保在 cmake/configs/nuttx_px4fmu-v2_default.cmake 文件中 ...

2018-12-25 02:09:18

PX4自动任务飞行AUTO_MISSION的实现流程

第一步,进入方式。    与之前分析的POSCTL模式类似,主要有遥控器开关和指令两种模式,实现过程完全相同。    最终都是调用了main_state_transition()函数将新模式写入到internal_state.main_state中。第二步,导航模式和控制模式的选择。    在commander的主循环中,set_nav_state()来设定导航模式。由于自动任务飞行需要使用各种传...

2018-06-22 19:58:20

PX4飞控手动位置控制POSCTL模式的实现流程

第一步,POSCTL模式的进入    1、从遥控器模式开关进入。    首先在PX4IO的主循环中调用了io_publish_raw_rc(),从IO芯片获取遥控器的各通道输入,发布input_rc消息;    然后,在Sensors的主循环中调用rc_poll()函数,获取input_rc消息的内容,按照通道映射和校准信息将遥控器输入值重新计算并写入manual_control_setpoint...

2018-06-13 21:48:32

PX4遥控器控制量和模式开关的实现

    上一篇文章讲到了PX4FMU通过问答的方式从PX4IO获取所需的所有信息。在px4io.cpp文件中的task_main()的任务循环里,可以看到读取和发布IO芯片的函数有:1、io_get_status()——从IO芯片获取状态信息,并发布safety消息;2、io_publish_raw_rc()——从IO芯片获取遥控器所有输入通道的原始数据,并发布input_rc信息;3、io_pu...

2018-06-06 18:21:31

PX4FMU如何从PX4IO芯片读取数据

上一篇文章分析了PX4IO芯片中的数据接收和发送实现方式。得出结论是:PX4IO不会主动向PX4FMU发送任何数据,所有的发送都出于接收到数据之后的回复。那么PX4FMU究竟如何从PX4IO芯片读取数据,实现过程是怎样的,下面就结合代码进行分析。一、文件的位置。    上篇已经讲过,位于Firmware/src/drivers/px4io文件夹,主文件是px4io.cpp,任务入口函数是PX4IO...

2018-06-02 22:14:19

PX4IO的编译过程、代码构架以及与PX4FMU的通讯分析

看到很多教程中讲到PX4飞控的协处理器的作用,包括各类遥控器信号的输入、PWM信号输出、以及与FMU的通讯。但是究竟如何实现的,最近几天自己看代码总算搞懂了,在这里分享一下。一,代码的组成和编译过程。    原始代码的主要代码位于 Firmware/src/modules/px4iofirmware文件夹中。打开CMakeList.txt文件,可以看到包含的文件还有位于其他文件夹中的部分源文件,以...

2018-06-02 17:48:12

Windows环境下,如何为TensorFlow-GPU选择正确的CUDA版本和cuDNN版本

又双叒一次重新安装系统,不得不再次安装Python3和TensorFlow-GPU。其实如果在Python下只安装的是TensorFlow-CPU版本的话,非常简单,直接在命令行内敲:        pip3installtensorflow就行。然而,有英伟达显卡,肯定就要发挥其功能,果断安装GPU版本的TensorFlow。第一步:假设已经安装好了Python3,直接在命令行内敲     ...

2018-05-31 16:57:29
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。