[carla]通过Twist指令控制carla中的车辆

2023-11-12

0.背景

通过carla_ros_bridge_with_example_ego_vehicle.launch可以启动carla-ros-bridge,并在carla中生成一台可以遥控的车.

roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch role_name:="ego_vehicle" town:="town02"

界面如图所示
在这里插入图片描述
我们在使用程序控制车辆时,需要给车辆发送控制指令.那么使用什么控制指令来控制车辆呢?

1.问题

在CARLA 0.9.7之前的版本中,控制车辆运动的消息默认就是geometry_msgs/Twist,包括线速度和角速度信息.

但是在CARLA0.9.8之后,控制车辆运动默认只支持carla_msgs/CarlaEgoVehicleControl,包括油门,刹车和档位等信息.

那么,在0.9.8之后的版本中,我们如何使用geometry_msgs/Twist格式来控制车辆呢?

1.1 消息详细说明

(1)geometry_msgs/Twist格式

linear: 
  x: 0.0
  y: 0.0
  z: 0.0
angular: 
  x: 0.0
  y: 0.0
  z: 0.0

(2)carla_msgs/CarlaEgoVehicleControl格式

header: 
  seq: 20357
  stamp: 
    secs: 0
    nsecs:         0
  frame_id: ''
throttle: 0.0  #油门
steer: 0.0  #转向
brake: 0.0 #刹车
hand_brake: False
reverse: False 
gear: 1 #档位
manual_gear_shift: False

2.解决方法

方法也很简单,从CARLA github中获知:0.9.8中新增了一个能够将twist转换成vehicle control command的节点,如图所示.

这个转换节点就是:carla_twist_to_control.因此,我们只需要另外运行这个节点就可以了.
在这里插入图片描述
carla_twist_to_control节点运行指令:

roslaunch carla_twist_to_control carla_twist_to_control.launch role_name:="ego_vehicle"

3.DIY

关于carla_twist_to_control节点,如果转换让人不够满意,例如单位,范围等,可以在carla_twist_to_control.py中88行进行修改.

例如,我就做了以下修改:将油门throttle直接赋值为twist.linear.x;将twist.angular.z限制在[-0.7~0.7]的范围内.

  if twist.linear.x > 0:
      control.throttle = twist.linear.x
  else:
      control.reverse = True
      control.throttle = twist.linear.x
  if twist.angular.z > 0:
      control.steer= min(twist.angular.z,0.7)
  else:
      control.steer= max(twist.angular.z,-0.7)

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

[carla]通过Twist指令控制carla中的车辆 的相关文章

  • pyqt5按钮点击时传递参数(通过lambda表达式)

    pyqt5中按钮点击事件的响应 常见的是下面的方式 self btn clicked connet self click method 现在想在按钮click的时候能够传递参数 可以借助lambda表达式 self btn clicked
  • CARLA仿真软件(一)【软件简介及Windows下的安装】

    CARLA基本介绍 CARLA是一个开源的自动驾驶模拟器 它是从头开始构建的 用作模块化和灵活的API 以解决自动驾驶问题中涉及的一系列任务 CARLA的主要目标之一是帮助自动驾驶研发民主化 它是一种易于用户使用和定制的工具 为此 模拟器必
  • rs lidar速腾激光雷达使用方法之录包及离线播放

    目录 一 录包packet 1 修改雷达参数配置config 2 录包 二 播放包 1 修改雷达参数配置config 2 编译 运行驱动 3 播放包 一 录包packet 1 修改雷达参数配置config 可以直接录制点云消息 但这种方法会
  • 高斯牛顿法求非线性最小二乘的步骤和c++代码实现

    slam图优化的本质是一个非线性优化问题 Gauss Newton求解步骤 1 线性化误差函数 2 构建线性系统 3 求解线性系统 4 更新解 并不断迭代直至收敛 一个简单的代码实现 一维参数xy 高维变为对应的矩阵即可 include
  • 无人车沿着指定线路自动驾驶与远程控制的实践应用

    有了前面颜色识别跟踪的基础之后 我们就可以设定颜色路径 让无人车沿着指定线路做自动驾驶了 视频 PID控制无人车自动驾驶 有了前几章的知识铺垫 就比较简单了 也是属于颜色识别的一种应用 主要是掌握自动驾驶中的一些基础知识 这样就可以进一步去
  • 检测跟踪分割网络笔记

    模型247 97m GitHub SysCV pcan Prototypical Cross Attention Networks for Multiple Object Tracking and Segmentation NeurIPS
  • ROS 笔记(01)— Ubuntu 20.04 ROS 环境搭建

    ROS 官网 https www ros org ROS 中文官网 http wiki ros org cn 1 系统和 ROS 版本 不同的 ROS 版本所需的 ubuntu 版本不同 每一版 ROS 都有其对应版本的 Ubuntu 切记
  • 简洁直观的飞行器数学模型推导

    运动学方程 动力学方程 值得注意的是 对于非定轴和定轴转动 h r
  • 自动驾驶:轨迹预测综述

    自动驾驶 轨迹预测综述 轨迹预测的定义 轨迹预测的分类 基于物理的方法 Physics based 基于机器学习的方法 Classic Machine Learning based 基于深度学习的方法 Deep Learning based
  • 自动驾驶数据闭环,要么被高估了,要么被低估了?

    在和身边的人沟通自动驾驶的数据闭环时 会碰到两类典型的人 第一类 当你给他讲数据闭环的时候 他的眼神是迷茫的 好像没有引起太多的重视和共鸣 甚至有人会反馈 嗯 这个没什么 我们以前干的差不多 第二类 他会觉得数据闭环 能解决一切问题 而且
  • Ubuntu18.04安装Autoware1.15(解决Openplanner无法绕障的问题:Openplanner2.5)

    文章目录 一 下载Autoware1 15源码 二 安装依赖 三 修改CUDA版本 四 编译以及报错解决 编译 1 报 undefined reference to cv Mat Mat 的错就按照下面方式改相应包 2 遇到OpenCV的C
  • 开环端到端自动驾驶: 从入门到放弃

    作者 木子士心王大可 编辑 汽车人 原文链接 https zhuanlan zhihu com p 669454065 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 端到端自动驾驶 技术交流
  • 未来之路:大模型技术在自动驾驶的应用与影响

    作者 一颗小树x 编辑 汽车人 原文链接 https zhuanlan zhihu com p 666863252 点击下方 卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 大模型 技术交流群 本文只做
  • 6.【自动驾驶与机器人中的SLAM技术】鲁邦核函数的含义和应用

    目录 1 给ICP和NDT配准添加柯西核函数 1 1 代码实现 2 将第1部分的robust loss引入IncNDTLO和LooselyLIO 给出实现和运行效果 3 从概率层面解释NDT残差和协方差矩阵的关系 说明为什么NDT协方差矩阵
  • 实现深度增强学习在自动驾驶领域的应用

    自动驾驶技术作为人工智能领域的热门应用之一 正逐渐改变着我们的出行方式 随着深度学习的快速发展 深度增强学习作为一种结合了深度学习和增强学习的方法 为自动驾驶带来了更高的智能化水平 本文将介绍深度增强学习在自动驾驶领域的应用 并探讨其对未来
  • ASAM CEO Marius Dupuis 到访深信科创

    2023年12月14日 自动化及测量系统标准协会 以下简称 ASAM 首席执行官CEO Marius Dupuis 到访深信科创研发中心 参观深信科创在CARLA社区 Synkrotron OasisSim商业仿真平台建设方面的成果 并与深
  • CARLA实战 | CARLA文档里都没有的渲染关闭方法被我找到?

    一 前言 大家好 我是自动驾驶打工人白夜 最近我在学习CARLA渲染相关的知识 发现很多小伙伴在进行仿真实验的时候 都希望有一种关闭渲染的方法 于是我决定来分享一下CARLA关闭渲染的几种方法 其中有一种方法 CARLA文档中都没有提到过
  • 实现深度增强学习在自动驾驶领域的应用

    自动驾驶技术作为人工智能领域的热门应用之一 正逐渐改变着我们的出行方式 随着深度学习的快速发展 深度增强学习作为一种结合了深度学习和增强学习的方法 为自动驾驶带来了更高的智能化水平 本文将介绍深度增强学习在自动驾驶领域的应用 并探讨其对未来
  • 图神经网络与智能化创作艺术:开启艺术的智能时代

    导言 图神经网络 GNNs 与智能化创作艺术的结合为艺术领域带来了新的可能性 本文深入研究二者的结合方向 包括各自的侧重点 当前研究动态 技术运用 实际场景 未来展望 并提供相关链接 1 图神经网络与智能化创作艺术的结合方向 1 1 图神经
  • 自动驾驶轨迹预测

    目录 神经网络轨迹预测综述 比较新的轨迹预测网络 Uber LaneRCNN 5 Google VectorNet 6 Huawei HOME 7 Waymo TNT 8 Aptive Covernet 9 NEC R2P2 10 商汤 T

随机推荐

  • 如何在 Luminar 4 中​使用AI天空更换工具?

    如何在 Luminar 4 中使用AI天空更换工具 如果照片缺少引人入胜的天空 AI天空更换工具可以轻松替换它 该工具设计用于平坦或暴风雨的天空 但通常可以通过改进滑块进行调整以适用于大多数天空 AI天空更换工具利用人工智能的力量自动分析图
  • 【JavaScript】(一)类型转换

    JS支持自动类型转换 其功能非常强大 首先看一段代码 结果如下 由此可见执行减法运算的时候 自动执行算术运算 但是执行加法运算的时候 默认将 作为连接符 它的转换规律如下 对于减号运算符 因为字符串不支持减法运算 所以系统自动将字符串转换成
  • Loongnix单机部署Ceph(LoongArch架构、Ceph N版、手动部署MON、OSD、MGR、Dashboard服务)

    基础环境信息 CPU 龙芯3C5000L 2 内存 128G 硬盘 系统盘 一块512G的NVME的SSD 数据盘 三块16T的HDD 操作系统版本 Loongnix 8 4 Ceph版本 Ceph 14 2 21 Nautilus Cep
  • java中优雅的参数校验方法

    一 引子 要对方法的参数进行校验 最简单暴力的写法是这个样子 public static void utilA String a BigDecimal b if StringUtils isEmpty a System out printl
  • java-FileReader和FileWriter的介绍

    在java中对数据输入输出的操作陈作为流 我们对不同的文件进行操作 或者对操作文件进行输入和输出时所用的流都是不同的 因此在java io的包下存在很多流的类或者接口提供给我们对应的操作 流的原理 输入流 input 将外部的文件通过流读取
  • css3中vh和vw分别是什么意思?

    1vw等于视口宽度 viewport width 的百分之一 也就是说100vw就是视口的宽度 同理 1vh等于视口高度 viewport height 的百分之一 100vh就是视口的高度
  • 位运算高级应用

    位运算的高级应用 位运算符 针对整数的二进制 下面的数据假设为1字节 实际为4字节 12 0000 1100 13 0000 1101 12 13 0000 1100 按位与 相同的位都为1才为1 12 13 0000 1101 按位或 相
  • 了解Linux虚拟化

    了解Linux虚拟化 本章为读者提供了Linux虚拟化中的主流技术及其相对于其他技术的优势的见解 本书共有14章 涵盖了KVM虚拟化的所有重要方面 从KVM内部和高级主题 如软件定义的网络 性能调整和优化 到物理到 虚拟迁移开始 在本章中
  • ubuntu安装ssh

    1 检查自己是否安装了openssh server dpkg l grep ssh 如果输出内容有openssh server 说明已经安装过了 可以跳过下一步 2 安装openssh server 由于ubuntu自带ssh客户端 只需要
  • docker 命令报异常permission denied

    在Linux系统中 新安装docker 输入命令 如 docker images 结果却报异常了 简单理解就是当前用户的连接被拒绝了 解决方案一 使用管理员权限 命令前加sudo 解决方案二 给当前用户加入到docker用户组中 sudo
  • 牛牛的等差数列【线段树】

    题目链接 这里的突破口在于小于等于25且大于等于3的质数连乘在1e8左右 所以 我们可以在操作上 将其看作对1e8去求模 而不是对每个都进行预处理 时间复杂度 也就是说 我们排除这个预处理之后 直接就是降了10倍左右的复杂度 然后 给区间一
  • 涉密服务器虚拟化软件,虚拟化软件解决方案

    1 背景 随着涉密行业信息化建设和IT业务的快速增长 涉密行业传统信息化建设中对于服务器应用面临着如下困境 资源利用率低 传统服务器应用部署模式采用 烟囱式 架构 单个应用独享整个服务器资源 资源利用率低 业务上线周期长 新增业务时 需要重
  • python小游戏 消消乐小游戏设计与实现

    文章目录 0 项目简介 1 游戏介绍 2 实现效果 3 开发工具 3 1 环境配置 3 2 Pygame介绍 4 具体实现 5 最后 0 项目简介 Hi 各位同学好呀 这里是L学长 今天向大家分享一个今年 2022 最新完成的毕业设计项目作
  • codeforces 1215d D. Ticket Game

    题意 有长度为n的串 内容为0 9数字或 Mono先手 填数 Mono希望前n 2个数和 后n 2个数和 Bicarp希望相等 问谁能赢 记录两边的 数量lnum rnum 记录两边和lsum rsum 如果两边lnum rnum时 如果l
  • python文件读写方法手机,Python中文件的读写操作的几种方法

    对文件的操作 步骤为 打开一个文件 gt 读取 写入内容 gt 保存文件 文件读写的3中模式 1 w 写模式 它是不能读的 如果用w模式打开一个已经存在的文件 会清空以前的文件内容 重新写 w 是读写内容 只要沾上w 肯定会清空原来的文件
  • 浅谈 logback的MDC机制

    logback的MDC机制 1 MDC 介绍 MDC Mapped Diagnostic Context 映射调试上下文 即将一些运行时的上下文数据通过logback打印出来 是 一种方便在多线程条件下记录日志的功能 和SiftingApp
  • 后谷歌时代:谁能笑到最后?

    后谷歌时代 谁能笑到最后 自从谷歌把 g cn转向 www google com hk那天起 后谷歌时代已经来临 早在谷歌退出中国市场仅仅是传言时 搜狗 有道 搜搜纷纷叫嚣着抢夺谷歌在中国的市场份额 现在看来 抢夺谷歌中国市场份额的绝非搜狗
  • Cypress vs Playwright——哪个 JavaScript 测试框架更好?

    10 年前 自动化测试人员如果要编写 E2E 测试 主要使用 Selenium 每个有机会使用该解决方案的人都应该会记得设置 编写和调试是多么不愉快 在此过程中还创建了一些更有趣的自动化工具 例如 Webdriver io TestCafe
  • SonarLint(代码质量检测工具+案例+好习惯养成器)

    文章目录 参考文章 一 SonarLint是什么 代码质量检测器 SonarQube 和SonarCloud 二 代码质量问题案例 1 异常应该被记录或重新抛出 但不能同时被记录和重新抛出 2 局部变量不应该声明后立即返回或抛出 3 不使用
  • [carla]通过Twist指令控制carla中的车辆

    0 背景 通过carla ros bridge with example ego vehicle launch可以启动carla ros bridge 并在carla中生成一台可以遥控的车 roslaunch carla ros bridg