灵遨底盘驱动安装

news2024/11/15 9:40:36

文章目录

  • ROS Packages
  • 灵遨科技ROS包的安装
    • 安装ROS依赖包
    • 导入lingao_ros包到工作空间
    • 工作空间的环境source (可选)
  • 通讯接口设置
  • ROS Package 基本用法
  • 使用测试

ROS Packages

lingao_base: 灵遨底盘驱动软件包,用于ROS的底盘通讯收发
lingao_bringup: 灵遨ROS节点启动文件和配置包
lingao_description: 灵遨机器人URDF模型
lingao_msgs: 灵遨自定义消息
imu_calib: 板载imu校准包

灵遨科技ROS包的安装

安装ROS依赖包

sudo apt-get install -y \
ros-$ROS_DISTRO-roslint \
ros-$ROS_DISTRO-tf2 \
ros-$ROS_DISTRO-tf2-ros \
ros-$ROS_DISTRO-robot-localization \
ros-$ROS_DISTRO-imu-filter-madgwick \
ros-$ROS_DISTRO-teleop-twist-keyboard

导入lingao_ros包到工作空间

$ mkdir -p ~/lingao_ws/src/
$ cd ~/lingao_ws/src/
$ catkin_init_workspace
$ git clone https://e.coding.net/keaa/lingaoros/lingao_ros.git
$ catkin_make

工作空间的环境source (可选)

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

通讯接口设置

串口驱动可使用我们的udev识别文件或者更改工作包的驱动号从而启动串口通讯

方法一:更改串口号,并且给予串口权限 更改工作包空间串口名,文件所在位置/lingao_ros/lingao_base/launch/lingao_base_driver.launch 将port_name后面串口号/dev/lingao更改为你现在使用的串口号,并且给予串口权限

方法二(推荐):导入lingao设备识别符到系统

$ source ~/lingao_ws/devel/setup.bash
$ roscd lingao_base
$ sudo cp 50-lingao.rules /etc/udev/rules.d/

在这里插入图片描述
PS:主控板上的USB接口上面是通讯,否则无法与nano通信。

ROS Package 基本用法

下面是lingao_bringup的启动包,有下面几种(未全列出

1单独启动底盘驱动包

roslaunch lingao_base lingao_base_driver.launch

所述 lingao_base/launch/lingao_base_driver.launch 有4个参数:

imu_use: 是否发布imu信息(default: false) pub_odom_tf: 是否发布里程计TF转换(default:
false) linear_scale: 线速度计校准比例(default: 1.0) angular_scale:
角速度计校准比例(default: 1.0) 更多配置可参考lingao_base里的README.md

2启动bringup,IMU信息滤波并且和里程计融合,发布TF坐标

roslaunch lingao_bringup bringup.launch

3启动robot节点,基于bringup基础上启动雷达和载入机器人模型

roslaunch lingao_bringup robot.launch

注意: 需在连接通讯端工控启动,选择以上任意一个运行,退出后可运行另外的包

使用测试

首先运行驱动包

1发布 Twist 消息控制小车运动

rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.3, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.0}}'

2使用键盘控制机器人

roslaunch lingao_bringup lingao_teleop_keyboard.launch

现在可通过下面键盘按键移动机器人:
u i o
j k l
m , .

改变速度: q/z : 增加/减少最大速度 10%
w/x : 仅增加/减少 10% 的线速度
e/c : 仅增加/减少 10% 的角速度

安全注意事项:

键盘控制节点默认速度值很高,请确保在开始用键盘控制机器人之前降低速度命令!随时准备好您的遥控器来接管控制。

发布错误的Twist速度消息可能使机器人以最快速度运行,你可以随时准备好您的遥控器来接管控制。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/834913.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++初阶引用

目录 引用引用的特性使用输出型参数作返回值小总结引用的权限引用和指针 引用 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 比如周树人,在外…

毕马威加入IBM量子网络,已搭建完成通信行业量子电路!

​ 毕马威全球量子中心主管Bent Dalager(图片来源:网络) 随着全球企业技术的持续转型,量子计算在开发创新解决方案上越来越重要。为此,毕马威(KPMG)公司加入了IBM量子网络,旨在利用量子计算解决当今最复杂的…

为什么list.sort()比Stream().sorted()更快?

真的更好吗&#xff1f; 先简单写个demo List<Integer> userList new ArrayList<>();Random rand new Random();for (int i 0; i < 10000 ; i) {userList.add(rand.nextInt(1000));}List<Integer> userList2 new ArrayList<>();userList2.add…

Python爬虫遇到重定向问题解决办法汇总

在进行Python爬虫任务时&#xff0c;遇到重定向问题是常见的问题之一。重定向是指在发送请求时&#xff0c;服务器会返回一个新的URL&#xff0c;将请求重新定向到该URL。为了帮助您解决这个问题&#xff0c;本文将提供一些实用的解决办法&#xff0c;并给出相关的代码示例&…

java linq多字段排序时间比较

public static void main(String[] args) {//100万条数据List<CrmInvestSaleUserCount> waitAssignUserList new ArrayList<>();for (int i 0; i < 1000000; i) {waitAssignUserList.add(new CrmInvestSaleUserCount().setSales_username("test" i…

小孩学python课程需要多久,儿童学python哪个机构好

本篇文章给大家谈谈小孩学python课程需要多久&#xff0c;以及儿童学python语言能做什么&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 学习儿童python编程越来越受欢迎&#xff0c;原因有很多&#xff0c;对于孩子来说&#xff0c;Python是一种很好的编程语…

深入探究DDD领域建模的方法:从概念到实践

目录 &#xff11;.什么是领域建模&#xff1f; &#xff12;.领域驱动设计的基本原则 &#xff13;.领域建模的核心概念 &#xff14;.DDD领域建模方法 &#xff15;.领域建模中的挑战与解决方案 &#xff16;.DDD领域建模的优势和适用场景 &#xff17;.DDD领域建模的…

【枚举+01 trie树】CF1658 D2

Problem - D2 - Codeforces 题意&#xff1a; 给定一个区间[l, r]和r - l 1个数&#xff0c;问是否存在一个数 x &#xff0c;使得这些数异或上 x 之后为[l, r]的一个排列 思路&#xff1a; 这种有关一个集合和异或操作的&#xff0c;都可以试试字典树 我们将所有数插入到…

C++ 左值和右值

C 左值和右值 左值、右值左值引用、右值引用std::move()std::move()的实现引用折叠 完美转发forward()的实现函数返回值是左值还是右值如何判断一个值是左值还是右值 左值、右值 在C11中所有的值必属于左值、右值两者之一&#xff0c;右值又可以细分为纯右值、将亡值。在C11中…

Python实现蚁群优化算法,求解旅行商问题

文章目录 蚁群算法蚂蚁的基本变量蚂蚁的优化流程蚁群优化验证与可视化 蚁群算法 蚁群算法是Colori A等人在1991年提出的&#xff0c;通过模仿蚂蚁觅食行为&#xff0c;抽象出信息素这一奖惩机制&#xff0c;从而赋予蚂蚁智能Agent的身份&#xff0c;使之得以在最佳路线问题中大…

Windows环境下Node.js二进制版安装教程

文章目录 前言一 下载Node.js二 设置环境变量三 配置全局安装和缓存路径四 设置仓库 前言 新版的Node.js已自带npm&#xff0c;就在Node.js下载完成解压后的文件内&#xff0c;的node_modules包中。 npm的作用&#xff1a;是对Node.js依赖的包进行管理&#xff0c;类似maven。…

使用 CausalPy 进行因果推理

这篇文章通过一个实际的例子简要介绍了因果推理&#xff0c;这个例子来自于《The Brave and True》一书&#xff0c;我们使用 CausalPy 来实现。 因果推理是从观察数据中估计因果效应的过程。对于任何给定的个体&#xff0c;我们只能观察到一种结果。另一种结果对我们来说是隐藏…

蓝牙ble tips2-UUID GATT(service和CHARACTERISTIC) profile相关概念介绍

服务和特性 低功耗蓝牙设备之间通信&#xff0c;都是基于服务和特性。一个蓝牙设备中可以包含若干个服务&#xff0c;一个服务中可以包含若干个特性&#xff0c;每一个服务或者特性都要有一个UUID。蓝牙的数据交互都是基于一个个特性进行的&#xff0c;数据交互的方式有五种&a…

超全面的高精度行星减速机结构、原理、功能以及优势解析

行星减速机是运动控制系统中连接伺服电机和应用负载的一种机械传动组件&#xff0c;具有高减速比、良好的传动特性、结构紧凑、体积小、重量轻、可靠性高、低噪音等优点&#xff0c;广泛用于电机、汽车、机器人及各种工业机械中&#xff0c;以实现高效率和稳定性。 一、什么是…

Ubuntu20.04安装ROS Noetic 版本安装记录

用的是VMWare的20.04的Ubuntu虚拟机&#xff0c;打算安装一下Noetic 版本的ROS学习一下。B站有个视频可以参考一下&#xff1a;在Ubuntu20.04上安装ROS机器人操作系统-Noetic但是基本也是参考中文文档安装&#xff0c;步骤相比网上的教程更权威Ubuntu install of ROS Noetic&am…

LeetCode--HOT100题(20)

目录 题目描述&#xff1a;48. 旋转图像&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;48. 旋转图像&#xff08;中等&#xff09; 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#x…

echarts图表渐变色 + 每个柱子不同颜色设置

echarts柱状图&#xff0c;默认所有柱子都是同一个颜色&#xff0c;显示效果差强人意&#xff0c;本文介绍如果修改成为每个柱子添加不同的颜色&#xff0c;以及如何添加渐变色&#xff0c;丰富图表的显示鲜果。先看效果&#xff1a; 每个柱子颜色不同 每个柱子都有自己的渐变…

【论文阅读】基于 NeRF 的 3D 重建的批判性分析

【论文阅读】基于 NeRF 的 3D 重建的批判性分析 Abstract1. Introduction2. The State of the Art2.1. Photogrammetric-Based Methods2.2. NeRF-Based Methods 3. Analysis and Evaluation Methodology3.1. Proposed Methodology3.2. Metrics3.3. Testing Objects 4. Comparis…

HTML5(H5)的前生今世

目录 概述HTML5与其他HTML的区别CSS3与其他CSS版本的区别总结 概述 HTML5是一种用于构建和呈现网页的最新标准。它是HTML&#xff08;超文本标记语言&#xff09;的第五个版本&#xff0c;于2014年由万维网联盟&#xff08;W3C&#xff09;正式推出。HTML5的前身可以追溯到互联…

[MAUI 项目实战] 手势控制音乐播放器: 动画

吸附动画 还记的上一章节所描述的拖拽物&#xff08;pan&#xff09;和坑&#xff08;pit&#xff09;吗&#xff1f;“”吸附“”这是一个非常拟物的过程&#xff0c;当拖拽物品接近坑区域的边缘时&#xff0c;物体就会由于重力或是引力作用会滑落&#xff0c;吸附在坑里。 …