睿尔曼超轻量仿人机械臂--Realsense D435手眼标定

2023-05-16

目录

1.环境要求

2.概述

3.开始前准备

4.aruco_ros配置

5.easy_handeye配置

6.启动相关launch文件开始标定


1.环境要求

本教程主要介绍RM机械臂与Realsense D435相机手眼标定的配置及方法,由于不同处理器架构在系统环境及相关功能包的安装配置上存在差异,所以在此不做相关介绍,如果使用我司提供的设备,出厂默认会将系统环境及相关功能包安装配置好或者提供配套的相关系统环境搭建的教程,在此默认系统环境满足以下要求:

  • 系统:Ubuntu 18.04.6
  • ROS:melodic
  • OpenCV库:OpenCV 3.2.0
  • Realsense D435:librealsense sdk(2.50.0)、realsense-ros功能包(2.3.2)
  • Marker标记识别:Aruco功能包
  • 手眼标定:easy_handeye功能包
  • Moveit!
  • RM机械臂ROS功能包(根据不同型号机械臂提供配套的ROS包,使用方法基本相同,提供有配套的使用说明文档,这里以RM75-B机械臂配套的ROS包即rm_75_robot为例)
  • Catkin-tools工具包

2.概述

手眼标定原理参考文章:3D 视觉之手眼标定 (qq.com)

手眼标定分两种情况:

  • Eye-to-hand 眼在手外:标定的是相机坐标系相对于机器人基座坐标系的位姿
  • Eye-in-hand 眼在手上:标定的是相机坐标系相对于机器人工具坐标系的位姿

本教程主要介绍Realse D435相机安装在RM机械臂上即眼在手上的标定方法。

3.开始前准备

3.1 将相机安装固定到机械臂末端

将相机通过转接件固定到机械臂末端,如图所示(这里未安装末端工具,用户如需要可以一并装上):

3.2 接线

  1. 机械臂接上电源
  2. 机械臂外侧网口通过网线连接到主机或交换机上(注意:机械臂默认固定IP为192.168.1.18,所以要确保主机与机械臂在同一局域网内能够连通)
  3. 相机通过Type-C数据线将相机与主机USB3.0接口相连

3.3 测试

主机与机械臂都上电启动后,在主机打开终端,执行以下命令测试主机与机械臂是否连通:

ping 192.168.1.18

 

在终端中执行如下命令打开可视化测试界面(若未检测到相机尝试重新连接USB):

realsense-viewer

相机连接成功后,将左侧【Stereo Module】和【RGB Camera】选择“on”状态,右侧会 显示深度图像和RGB图像画面。鼠标移动到深度图像位置左下方画面会显示实时测量的深度 距离,如图说明相机连接正常:

3.4 打印Marker标签

打印标定需要使用到的Marker标签,可以在aruco_ros包中找到提供好的marker标签进行打印,如图:

也可以从下面的网站下载marker标签并打印出来:

Online ArUco markers generator (chev.me)

注意:

  • Dictionary 一定要选 Original ArUco
  • Marker ID和Marker size自选,在launch文件中做相应的修改(本教程演示使用Marker ID:582,Marker size:50mm)
  • 打印时,要选择原始大小,否则要测量一下打印出来的真实大小

4.aruco_ros配置

4.1 简介

aruco是一种类似二维码的定位标记辅助工具,通过在环境中部署Markers,可以辅助机器人进行定位,弥补单一传感器的缺陷,纠正误差,本教程使用的手眼标定easy_handeye功能包需要借助这个工具进行手眼标定。

4.2 配置aruco_ros的launch文件

在aruco_ros功能包的launch目录下拷贝一份原有的single.launch文件或新建一个launch文件,命名为single_realsense.launch,执行以下命令(本教程默认用户ROS的工作空间为cakin_ws,用户根据实际的环境进入相应路径进行操作):

cd ~/catkin_ws/src/aruco_ros/aruco_ros/launch

touch single_realsense.launch

gedit single_realsense.launch

根据以下内容进行修改或者覆盖为以下内容后保存:

<launch>



    <arg name="markerId"        default="582"/>

    <arg name="markerSize"      default="0.05"/>    <!-- in m -->

    <arg name="eye"             default="left"/>

    <arg name="marker_frame"    default="aruco_marker_frame"/>

    <arg name="ref_frame"       default="camera_color_frame"/>  <!-- leave empty and the pose will be published wrt param parent_name -->

    <arg name="corner_refinement" default="LINES" /> <!-- NONE, HARRIS, LINES, SUBPIX -->





    <node pkg="aruco_ros" type="single" name="aruco_single">

        <remap from="/camera_info" to="/camera/color/camera_info" />

        <remap from="/image" to="/camera/color/image_raw" />

        <param name="image_is_rectified" value="True"/>

        <param name="marker_size"        value="$(arg markerSize)"/>

        <param name="marker_id"          value="$(arg markerId)"/>

        <param name="reference_frame"    value="$(arg ref_frame)"/>   <!-- frame in which the marker pose will be refered -->

        <param name="camera_frame"       value="camera_color_frame"/>

        <param name="marker_frame"       value="$(arg marker_frame)" />

        <param name="corner_refinement"  value="$(arg corner_refinement)" />

    </node>



</launch>

  • markerId:使用的Marker标签的ID,这里在准备时打印的Marker标签ID为582
  • markerSize:Marker标签的实际大小,单位为m,这里在准备时打印的Marker标签实际大小为5厘米即0.05m
  • ref_frame:参考坐标系名称,这里选择Realsense的camera_color_frame作为参考坐标系
  • <remap from="/camera_info" to="/camera/color/camera_info" />:将/camera_info重映射为对应Realsense实际发布的相应的Topic即/camera/color/camera_info
  • <remap from="/image" to="/camera/color/image_raw" />:将/image重映射为对应Realsense实际发布的相应的Topic即/camera/color/image_raw
  • camera_frame:相机坐标系,修改为实际的相机坐标系camera_color_frame

5.easy_handeye配置

5.1 简介

easy_handeye是用于手眼标定的功能包之一,借助它可以实现眼在手上和眼在手外的手眼标定,在这里我们介绍使用easy_handeye完成眼在手上的手眼标定。

5.2 配置easy_handeye标定的launch文件

在easy_handeye功能包的launch目录下新建一个launch文件,命名为eye_in_hand_calibrate.launch,执行以下命令(本教程默认用户ROS的工作空间为cakin_ws,用户根据实际的环境进入相应路径进行操作):

cd ~/catkin_ws/src/easy_handeye/easy_handeye/launch

touch eye_in_hand_calibrate.launch

gedit eye_in_hand_calibrate.launch

编辑输入以下内容并保存:

<?xml version="1.0" ?>

<launch>

    <!-- 生成标定文件的名称 -->

    <arg name="namespace_prefix" default="rm_rs_d435" />

    <!-- RM机械臂MoveIt!配置的move_group为arm,所以修改为arm -->

    <arg name="move_group" default="arm" />



    <!-- start easy_handeye -->

    <include file="$(find easy_handeye)/launch/calibrate.launch" >

        <arg name="namespace_prefix" value="$(arg namespace_prefix)" />

<arg name="move_group" value="$(arg move_group)" />

        <!-- 这里使用眼在手上的方式进行标定,所以此处改成true -->

        <arg name="eye_on_hand" value="true" />



    <!--tracking_base_frame为realsense的相机坐标系-->

        <arg name="tracking_base_frame" value="camera_color_frame" />

    <!--tracking_marker_frame对应aruco_ros包中single_realsense.launch中的marker_frame的值-->

        <arg name="tracking_marker_frame" value="aruco_marker_frame" />

    <!--robot_base_frame为机器人基座坐标系-->

        <arg name="robot_base_frame" value="base_link" />

    <!--robot_effector_frame为工具坐标系,如夹爪,吸盘等,但实际的rm机器人模型未添加夹爪,所以这里设置为末端关节Link7-->

        <arg name="robot_effector_frame" value="Link7" />



        <arg name="freehand_robot_movement" value="false" />

        <arg name="robot_velocity_scaling" value="0.5" />

        <arg name="robot_acceleration_scaling" value="0.2" />

    </include>

</launch>

注意:<arg name="robot_effector_frame" value="Link7" />这里是以RM75即7轴机械臂为例所以为Link7,如果使用的是RM65即6轴机械臂,则应该修改为Link6

5.3 配置发布TF的launch文件

手眼标定完成后需要根据标定的文件发布TF坐标转换才能够将相机识别到物体的坐标转换到相应机械臂的坐标系上,修改easy_handeye功能包的launch目录下的publish.launch文件,执行以下命令(本教程默认用户ROS的工作空间为cakin_ws,用户根据实际的环境进入相应路径进行操作):

cd ~/catkin_ws/src/easy_handeye/easy_handeye/launch

gedit publish.launch

编辑修改对应的内容并保存:

<?xml version="1.0"?>

<launch>

    <!--修改eye_on_hand参数默认为true -->

    <arg name="eye_on_hand" doc="eye-on-hand instead of eye-on-base" default="true" />

    <!--修改namespace_prefix参数,与眼在手上标定launch文件[eye_in_hand_calibrate.launch]中的“namespace_prefix”一致,这样才能找到标定好的YAML文件-->

    <arg name="namespace_prefix" default="rm_rs_d435" />

    <arg if="$(arg eye_on_hand)" name="namespace" value="$(arg namespace_prefix)_eye_on_hand" />

    <arg unless="$(arg eye_on_hand)" name="namespace" value="$(arg namespace_prefix)_eye_on_base" />



    <!--it is possible to override the link names saved in the yaml file in case of name clashes, for example-->

    <arg if="$(arg eye_on_hand)" name="robot_effector_frame" default="" />

    <arg unless="$(arg eye_on_hand)" name="robot_base_frame" default="" />

    <arg name="tracking_base_frame" default="" />

    

    <arg name="inverse" default="false" />

    <arg name="calibration_file" default="" />

    

    <!--publish hand-eye calibration-->

    <group ns="$(arg namespace)">

        <param name="eye_on_hand" value="$(arg eye_on_hand)" />

        <param unless="$(arg eye_on_hand)" name="robot_base_frame" value="$(arg robot_base_frame)" />

        <param if="$(arg eye_on_hand)" name="robot_effector_frame" value="$(arg robot_effector_frame)" />

        <param name="tracking_base_frame" value="$(arg tracking_base_frame)" />

        <param name="inverse" value="$(arg inverse)" />

        <param name="calibration_file" value="$(arg calibration_file)" />

        <node name="$(anon handeye_publisher)" pkg="easy_handeye" type="publish.py" output="screen"/>

    </group>

</launch>

6.启动相关launch文件开始标定

6.1 启动Realsense节点

首先确认相关ROS包都已编译,执行如下命令确保能够编译成功:

cd ~/catkin_ws

catkin build

 确认相机通过Type-C数据线将相机与主机USB3.0接口相连,执行如下命令启动Realsense节点:

cd ~/catkin_ws

source devel/setup.bash

roslaunch realsense2_camera rs_camera.launch

6.2 启动aruco节点识别Marker标签

打开一个新的终端,执行以下命令启动single_realsense.launch:

cd ~/catkin_ws

source devel/setup.bash

roslaunch aruco_ros single_realsense.launch

6.3 启动image_view节点显示图像

打开一个新的终端,执行以下命令启动image_view订阅/aruco_single/result显示图像:

cd ~/catkin_ws

source devel/setup.bash

rosrun image_view image_view image:=/aruco_single/result

6.4 启动RM机械臂的control和driver节点

打开一个新的终端,执行以下命令启动control节点:

cd ~/catkin_ws

source devel/setup.bash

roslaunch rm_75_control rm_75_control.launch

注意:本教程以RM75机械臂为例,如果使用的是6轴即RM65机械臂,则启动control的命令为:roslaunch rm_control rm_control.launch

再打开一个新的终端,执行以下命令启动driver节点:

cd ~/catkin_ws

source devel/setup.bash

roslaunch rm_75_bringup rm_robot.launch

注意:本教程以RM75机械臂为例,如果使用的是6轴即RM65机械臂,则启动driver的命令为:roslaunch rm_bringup rm_robot.launch

运行成功后在rviz中可以看到机器人模型与真实机械臂的状态保持一致,如图所示:

在rviz的MotionPlanning下的Planning,Goal State选择forward然后点击Plan & Execute,可以看到真实机械臂会按照rviz中MoveIt!规划的路径运动,如图所示:

6.5 启动easy_handeye手眼标定节点

在启动标定程序前,建议先在rviz中通过Moveit或手动调节机械臂到一个合适的姿态,然后将aruco二维码移动至相机视野中心处附近,如图所示(建议参考图中的姿态,避免在标定时有不可达的规划):

 打开一个新的终端,执行以下命令启动手眼标定节点:

cd ~/catkin_ws

source devel/setup.bash

roslaunch easy_handeye eye_in_hand_calibrate.launch

成功运行后,会同时打开三个界面:

界面1

界面2

界面3

标定步骤:

  1. 在界面3中,点击Check starting pose,稍微等待,若检查成功,界面会出现:0/17,Ready to start,如图所示(如果检测失败或者没有出现0/17,则说明当前机械臂的姿态不合适,可能有规划不可达,需要关闭标定节点然后调节机械臂到一个合适姿态并将aruco二维码移动至相机视野中心处附近再重启启动标定节点继续标定):
  2. 界面3中依次点击 Next Pose,Plan,Execute,机械臂会移动至新的位置,若二维码完全的在相机视野范围内,且能检测成功,则进行下一步,若二维码不在相机视野范围内或部分在视野外,检测不到,则再次依次点击 Next Pose,Plan,Execute,直到二维码完全在相机视野范围内,且能检测成功,再进行下一步(一般前4次会依据aruco二维码位置机械臂移动到上下左右位置,二维码都不完全在相机视野范围内,从第五次开始检测成功),如图所示:
  3. 界面2中点击Take Sample,若Samples对话框中出现有效信息,说明第一个点标定成功

  4. 重复执行步骤 2 和步骤 3,直至 17 个点全部标定完毕
  5. 界面2中点击Compute,则Result对话框中会出现结果

  6. 界面2中Save,会将结果保存为一个YAML文件,路径为 ~/.ros/easy_handeye

         标定完成后在每个终端按Ctrl+C即可结束运行节点。

6.6 简单测试

按照6.1至6.4启动Realsense、aruco、image_view、rm_control、rm_driver相关节点,不需要再启动easy_handeye手眼标定节点,然后再打开一个新的终端,执行以下命令发布手眼标定后的TF:

roslaunch easy_handeye publish.launch

 执行以下命令可以查看相机与机械臂基座标系的TF转换:

rosrun tf tf_echo /base_link /camera_color_frame

 执行以下命令如果检测到marker标签,会显示marker在相机坐标系下的位姿:

rostopic echo /aruco_single/pose

标定过程可能会受相关硬件及环境等条件因素的影响,所以标定结果可能存在一定的误差,用户标定完成后可以通过获取物体在相机坐标系下的位姿,然后通过TF转换到机械臂下的位姿进行测试,存在误差可以后续在程序进行补偿计算。

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

睿尔曼超轻量仿人机械臂--Realsense D435手眼标定 的相关文章

  • copy outerHTML、python爬取csdn文章、一键打包个人csdn文章保存到本地

    文章目录 1copy outerHTML复制网站源码法1 1复制源码1 2 遇到的问题 2 python爬取CSDN博客文章 xff08 保存为html xff0c txt xff0c md xff09 2 1 安装依赖2 2 完整代码 3
  • 一、视觉SLAM基础概述

    视觉SLAM主要是以视觉为传感器 xff0c 解决定位与建图的问题 xff0c 其主要可以分为前端 后端 回环检测和建图等四个部分 xff0c 其中各个部分的作用分别为 xff1a xff08 1 xff09 前端 xff1a 前端也称为视
  • HAL库 MPU6050的使用

    HAL库 amp amp MPU6050 HAL库 MPU6050的使用 xff1a 今天在本教程中 xff0c 我们将使用STM32接口MPU6050 xff08 GY 521 xff09 加速度计陀螺仪 同时 xff0c 我将在PC上利
  • HAL库 AB相编码器

    HAL库 AB相编码器 文章涉及Cube MX的配置 Keil代码的编写以及模板存放之BaiDu Pan 用到的软件 xff1a STM32CubeMX amp Keil 5 用到的硬件 xff1a 光电式编码器 F411RE NUCLEO
  • CUBLI 简化 一维模型(有bug)

    CUBLI 简化 一维模型 xff08 有bug xff09 文章目录 CUBLI 简化 一维模型 xff08 有bug xff09 前言一 CUBLI是什么 xff1f 二 制作步骤1 MPU6050 amp amp 编码器操作2 什么是
  • 阻滞增长模型--Logistic模型

    文章目录 写在前面一 思路二 原始数据三 源代码四 结果 写在前面 做了一个作业 xff0c 觉得挺有意思 xff0c 有空就发上来了 阻滞增长模型 Logistic模型的部分推导 思路 xff0c 并给出参考代码 参考书籍 xff1a 数
  • Linux 图形化Git客户端

    Linux用户主要可以通过命令行来管理Git xff0c 不过外面有几种图形化用户界面 xff08 GUI xff09 Git客户软件 xff0c 它们便于用户在Linux桌面上高效 可靠地使用Git xff0c 即便提供不了所有命令行操作
  • .yml文件语法

    项目里用到yml文件作为配置文件 xff0c 了解下其实挺简单 xff0c 它的基本语法如下 大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键 xff0c 只允许使用空格 缩进的空格数目不重要 xff0c 只要相同层级的元素左侧对齐即
  • 嵌入式总线协议(二)——RS232、RS485

    定义 RS232 RS485为电气层 xff08 物理层 xff09 协议 xff0c 依赖于串口 xff08 UART xff09 存在 xff0c 在电气层进行优化处理 xff0c 达到提高抗干扰能力 提高传输速度 增大传输距离的效果
  • 测试TensorFlow的GPU版本安装成功方法

    程序如下 xff1a import tensorflow as tf print 39 GPU 39 tf test is gpu available a 61 tf constant 2 b 61 tf constant 4 print
  • 深度学习数据集下载

    猫狗识别数据集 链接 xff1a https pan baidu com s 1vQcmQts1jIi5 oA6O411aA amp shfl 61 sharepset 提取码 xff1a 5si6 MNIST数据集 链接 xff1a ht
  • PyTorch版本检测及GPU是否安装成功检测

    PyTorch GPU版本安装方法 xff0c 请看anaconda虚拟环境下镜像安装PyTorch 利用jupyter notebook访问虚拟环境 检测程序如下 xff1a span class token keyword import
  • 树莓派 | 摄像头模块的使用方法

    如果觉得本篇文章对您的学习起到帮助作用 xff0c 请 点赞 43 关注 43 评论 xff0c 留下您的足迹 x1f4aa x1f4aa x1f4aa 在此项目中 xff0c 将了解如何使用树莓派摄像头模块进行拍照 xff0c 录制视频等
  • 树莓派小实验 | 制作一个带快门的照相机 & 录像机

    如果觉得本篇文章对您的学习起到帮助作用 xff0c 请 点赞 43 关注 43 评论 xff0c 留下您的足迹 x1f4aa x1f4aa x1f4aa x1f4aa 在此项目中 xff0c 通过连接GPIO引脚的按钮控制拍照 xff0c
  • Jetson Nano 关机、重启命令

    如果觉得本篇文章对您的学习起到帮助作用 xff0c 请 点赞 43 关注 43 评论 xff0c 留下您的足迹 x1f4aa x1f4aa x1f4aa 1 重启命令 xff1a span class token function sudo
  • python保存虚拟环境requirement.txt

    保存 pip freeze span class token operator gt span requirement txt 安装 pip span class token function install span r requirem
  • python虚拟环境移植到另一台电脑

    如果觉得本篇文章对您的学习起到帮助作用 xff0c 请 点赞 43 关注 43 评论 xff0c 留下您的足迹 x1f4aa x1f4aa x1f4aa 本篇文章为python环境打包离线安装移植的所做笔记 xff0c 一是为了日后查找方便
  • python安装jupyter lab和使用插件

    如果觉得本篇文章对您的学习起到帮助作用 xff0c 请 点赞 43 关注 43 评论 xff0c 留下您的足迹 x1f4aa x1f4aa x1f4aa 本篇文章为python安装jupyter lab和使用插件的所做笔记 xff0c 一是
  • Bean的初始化和销毁(java配置方式)

    bean生命周期管理 spring对bean的生命周期的操作提供了支持 xff0c java配置和注解配置分别使用如下方式 xff1a 1 java配置 xff1a 使用 64 Bean 的initMethod和destoyMethod 2
  • UWB使用教程

    前言 本篇文章主要对淘宝商家给的UWB资料进行整理 xff0c 方便大家快速入门 注重UWB定位模块的使用 xff0c 不解释具体的原理 实现功能 xff1a 搭建UWB基站使用上位机配置参数ROS接受UWB的定位信息修改IMU的STM32

随机推荐

  • 【Tiva_C系列】一、ARM Cortex-M4F 处理器

    ARM Cortex M4F 处理器 0 引言1 Cortex M4处理器和基于Cortex M4的MCU2 Cortex M4F处理器结构3 存储器映射4 处理器模式和软件执行的权限级别5 内核寄存器6 异常和中断处理6 1 优先级6 2
  • Windows11解决无法设置移动热点

    文章目录 前言1 解决办法 前言 今天装了个Win11 xff0c 回头发现移动热点无法打开 xff0c 在网上找了好久 xff0c 才找到解决方案 xff0c 这里分享下解决方案 1 解决办法 打开设备管理器 找到网络适配器 启用这两个设
  • python实现aruco的生成和检测

    OpenCV aruco的生成 import cv2 as cv import numpy as np if name 61 61 39 main 39 Load the predefined dictionary dictionary 6
  • SMPL经典论文

    摘要 模型参数从这些数据中学习 xff1a 休息姿势模板 混合 xff08 blend xff09 权重 与姿势相关的混合形状 与身份相关的混合形状 从顶点到关节位置的回归器与姿势相关的混合形状是姿态旋转矩阵的线性函数 xff0c 这个简单
  • 灰度图片二值化matlab

    rge图片灰度化之后 xff0c 往往存在灰度值比较近的情况 根据自己的需求将灰度值调到两个极端值 xff0c 也叫做阈值处理 本文的阈值是自定义的 xff0c 建立在已经读取到灰度图片灰度值的基础之上 存在获取灰度图片最佳阈值的算法 大津
  • Maven Helper插件下载&Maven导入jar包(依赖管理)

    1 maven Helper插件 1 1搜索 File gt Settings gt Plugins gt 搜索Maven Helper 发现没有 1 2 安装 点击Browse reositories gt 选择maven Helper
  • Ubuntu18.04下基于ROS和PX4的无人机仿真平台的基础配置搭建

    Ubuntu18 04下基于ROS和PX4的无人机仿真平台的基础配置搭建 参考资料 xff1a https www yuque com xtdrone manual cn basic config 1 11 https blog csdn
  • darknet_ros安装的以及在PX4无人机仿真平台的目标检测

    darknet ros的安装以及在PX4无人机仿真平台的目标检测 参考资料 xff1a https github com leggedrobotics darknet ros https gitee com robin shaun XTDr
  • Ubuntu上设置查看SSH Key并在GitHub上添加设置

    这里讲了如何在Ubuntu设置查看SSH key并在GitHub上添加设置 有的时候git clone可能出现错误 xff1a 这需要我们在Ubuntu设置查看SSH key并在GitHub上添加设置 1 在终端上输入 ssh keygen
  • git 添加更新子模块

    添加submodule到仓库 下载父仓库 git clone git 64 gitlab span class hljs preprocessor abc span span class hljs preprocessor com span
  • Docker容器图像界面显示到宿主机屏幕配置方法——挂载方式

    原理简介 可以把docker镜像看做一台没配显示器的电脑 xff0c 程序可以运行 xff0c 但是没地方显示 而linux目前的主流图像界面服务X11又支持 客户端 服务端 xff08 Client Server xff09 的工作模式只
  • JETSON TX2卸载原有的opencv安装opencv3.2

    参考博客 xff1a http blog csdn net u014613745 article details 78310916 http blog csdn net public669 article details 99044895
  • Ubuntu使用ros进行多电脑IP通信

    TUF Gaming是我的笔记本 xff0c master是实验室的主机 xff0c 在同学komorebi fresh xff08 https me csdn net weixin 44270815 xff09 的帮助下把我自己的笔记本和
  • Mavros与无人机

    记录一些mavros与无人机的指令 xff0c 这篇博客只是起备忘录的作用 飞控接口赋权 span class token function sudo span span class token function chmod span 77
  • Ubuntu18.04安装ax200网卡驱动以及更新内核

    Ubuntu18 04安装ax200网卡驱动以及更新内核 参考资料 xff1a https zhangyiming748 github io 2019 12 05 useAX200OnUbuntu 原来的网卡是小螃蟹的8822ce xff0
  • 笔记:QGC使用及姿态环仿真调节方式

    笔记 xff1a QGC使用及姿态环仿真调节方式 打开Gazebo及QGC 进入终端管理员权限 sudo s 在终端打开Gazebo cd Firmware make px4 sitl default gazebo 点击文件夹中的QGC x
  • PIX4飞控调参

    飞控调参
  • nano板载电脑连接无线时断时续

    在无人机上使用nano b01板载电脑 xff0c 在地面站电脑上ssh板载电脑名字及ip地址可进入地面站电脑 通过在两个电脑的 bashrc文件中加入主从节点ip xff0c 实现ros通信 xff0c 想要实现用地面站电脑控制板载电脑
  • 树莓派小车————避障篇

    避障模块的功能就是让小车能够检测到障碍物并且可以正确的避开障碍物 当然避障的方式有很多种 我选择的是超声波结合红外传感器来避障 为什么要用超声波传感器结合红外传感器 xff1f 因为硬件原因 xff0c 没有舵机 xff0c 原本超声波可以
  • 睿尔曼超轻量仿人机械臂--Realsense D435手眼标定

    目录 1 环境要求 2 概述 3 开始前准备 4 aruco ros配置 5 easy handeye配置 6 启动相关launch文件开始标定 1 环境要求 本教程主要介绍RM机械臂与Realsense D435相机手眼标定的配置及方法