求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 
 
目录
Autoware.Auto
安装
系统依赖性和目标环境
使用 ADE 安装
使用 ADE 安装 arm64 系统
没有使用 ADE 安装
SVL 仿真器
使用
自动代客泊车示范
F1Tenth 演示1
F1Tenth 演示2
启动和测试行为计划
启动和测试全局计划
地图创建
初始化 NDT 定位器
运行 EKF 过滤器进行本地化
3D感知堆栈
记录/回放计划
使用rosbag进行本地化演示
Autoware Auto启动场景仿真器
建立
设计
Autoware Auto常见的设计-1
Autoware Auto常见的设计-2
Autoware.Auto 控制器设计
Autoware.Auto 驱动程序设计
Autoware.Auto 设计融合
Autoware.Auto 本地化
Autoware.Auto 的地图
Perception设计
Autoware.Auto 的 设计计划
Autoware.Auto 的 设计跟踪
Autoware.Auto 的 预测
Autoware.Auto 的系统
Autoware.Auto 的工具
Autoware.Auto 提供的指南
 
 
F1Tenth 演示 2
李澎涛,俎涛 翻译(火龙果软件工程)
715 次浏览
5次  

设置车辆

使用库存 F1Tenth 车辆

如果您还没有可以使用的 F1Tenth 车辆,请前往 F1Tenth 构建说明 获取材料清单和详细的构建程序。 您需要完成构建说明中的以下部分:

  • 建造 F1TENTH 赛车
  • 配置 F1TENTH 系统
  • 安装 F1TENTH 软件(配置 VESC 和 Hokuyo 设置),跳过 ROS 工作区设置

建立你自己的

可以使用自定义部件,例如:

  • RC底盘,带伺服和BLDC电机,兼容VESC;
  • VESC,任何配置正确以控制电机和伺服的版本;
  • 激光雷达,只要有ROS2驱动即可;
  • 板载计算机(ARM64 或 X64 Linux with Docker),最好比 Jetson Nano 板更强大; 推荐使用 Jetson Xavier NX 和 AGX。

远程桌面

由于演示中使用了 Rviz,因此您需要在 Jetson 上使用远程桌面解决方案。 此演示使用 No Machine 进行了测试。 您需要在驾驶时将虚拟 HDMI 插入 Jetson 的 HDMI 端口。 如果您还没有,请将您的 Jetson 连接到显示器,继续进行其余的设置。

  1. 在 Jetson (ARM64) 和您的主机上下载并安装 MoMachine。
  2. 确保两台机器在同一个本地网络下。 通过输入 Jetson 的主机名或 IP,从您的主机创建一个新的远程桌面连接。

F1Tenth RecordReplay 轨迹演示

在 Jetson 上准备 Autoware

使用自定义激光雷达

如果您有定制的 LiDAR:

  1. 检查的内容 AutowareAuto/.aderc-jetson-f1tenth 。 如果使用 ADE,您很可能需要在启动容器时修改一些设备安装选项;
  2. 检查的内容 AutowareAuto/autoware.auto.foxy.repos 。 将 URL 添加到您的 LiDAR 的 ROS2 驱动程序(将分支名称放在 下 version );
  3. 将您的激光雷达包作为依赖项添加到 AutowareAuto/src/launch/f1tenth_launch/package.xml ;
  4. 添加您的激光雷达节点 AutowareAuto/src/launch/f1tenth_launch/launch/f1tenth_vehicle_vesc.launch.py ; LaserScan 主题名称应该是 scan , frame_id 应该是 lidar ,节点命名空间应该是 lidar 。

选项 1:使用 ADE 容器安装

使用 ADE 容器将为您提供快速启动和清洁系统。 预计性能会下降,尤其是使用 RVIZ。

  1. 使用 ADE遵循标准 Autoware 安装, 但在执行之前停止 ade start --update --enter 。
    • 下载 ADE 时请注意:您需要检查 ADE 的 GitLab 发布页面以及 wget AArch64 的正确二进制文件,而不是 ADE 网站上列出的 X86_64 的二进制文件。
  2. 启动 ADE 容器: cd adehome/AutowareAuto && ade --rc .aderc-jetson-f1tenth start --update --enter

ADE 容器带有预构建的所有内容。 如果您更喜欢在 ADE 容器中使用自己的构建,请遵循以下步骤:

# 导入外部依赖
ade$ cd AutowareAuto
ade$ vcs 导入。< autoware.auto.foxy.repos
ade$ sudo apt 更新;罗斯德更新;rosdep install --from-paths src --ignore-src --rosdistro ${ROS_DISTRO} -yr
# 构建汽车软件
ade$ colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-up-to f1tenth_launch

选项 2:使用本机构建安装

为了获得最佳性能,请在本地构建 Autoware。 遵循 没有 ADE 的构建说明 。 执行时 colcon build ,使用 --packages-up-to f1tenth_launch 和 --symlink-install 跳过不必要的包并轻松更改参数。 在 Jetson Xavier NX 上构建时间约为 15-30 分钟。

创建地图

# (1号航站楼)
$ ade 输入
ade$ source ~/AutowareAuto/install/setup.bash
ade$ ros2 启动 f1tenth_launch f1tenth_mapping_demo.launch.py​​ with_joy:=True vehicle_interface:=vesc

按下右肩按钮开始驾驶。 在 Rviz 中可视化地图构建过程。

运行以下命令为 AMCL 保存地图:

#(2号航站楼)
$ ade 输入
ade$ mkdir ${HOME}/map
ade$ ros2 运行 nav2_map_server map_saver_cli -f $HOME/map/mymap

或者,通过运行以下命令为 SLAM 保存地图:

#(2号航站楼)
ade$ mkdir ${HOME}/map
ade$ ros2 服务调用 /slam_toolbox/serialize_map slam_toolbox/srv/SerializePoseGraph "{filename: "$HOME/map/mymap"}"

这将为 slam_toolbox 的定位保存一个位姿图。

保存地图后,按 Ctrl+C 终端 1 停止映射节点。

记录和回放轨迹

记录轨迹

# (1号航站楼)
$ ade 输入
ade$ 源 AutowareAuto/install/setup.bash
# 添加 'map:=/path/to/map.yaml' 以选择您的原始地图
ade$ ros2 启动 f1tenth_launch f1tenth_recordreplay_demo.launch.py​​ with_joy:=True vehicle_interface:=vesc map:=$HOME/map/mymap

按下右肩按钮开始驾驶。 在 Rviz 中使用正确的方向设置初始姿势 2D pose estimate

现在开始录制:

#(2号航站楼)
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 action send_goal /planning/recordtrajectory autoware_auto_planning_msgs/action/RecordTrajectory "{record_path: "/tmp/path"}" --feedback

在车辆周围行驶并在终端 2 中使用 Ctrl + C 停止录制。

回放轨迹

# (1号航站楼)
$ ade 输入
ade$ 源 AutowareAuto/install/setup.bash
# 添加 'localization:='slam'' 以使用 slam_toolbox 进行本地化(默认为 amcl)
# 添加 'map:=/path/to/map.yaml' (AMCL) 或 'map:=/path/to/map.posegraph' (SLAM) 以选择您的原始地图
ade$ ros2 启动 f1tenth_launch f1tenth_recordreplay_demo.launch.py​​ with_joy:=True vehicle_interface:=vesc map:=$HOME/map/mymap

按下右肩按钮开始驾驶。

使用 . 在 Rviz 中设置具有正确方向的初始姿势 2D pose estimate 。

再次按下右肩按钮进入自主模式。

现在开始回放:

(2号航站楼)
ade$ source /opt/AutowareAuto/setup.bash
ade$ ros2 action send_goal /planning/replaytrajectory autoware_auto_planning_msgs/action/ReplayTrajectory "{replay_path: "/tmp/path"}" --feedback

要停车,再次按下右肩按钮可切换回手动模式。

循环运行

为了让车辆在循环中连续运行,首先记录一个轨迹,该轨迹在开始位置后面的停止位置结束。 修改 Autoware/src/launch / f1tenth_launch / param/recordreplay_planner.param.yaml 设置 loop_trajectory 为 True . 构建并运行回放。

已知的问题

回放的速度可能与录制的速度不完全相同。 这是由于 Pure Pursuit 算法的限制。 该实现不考虑延迟和外力,这意味着即使没有按下break,在释放加速时它也假定恒定速度。 这导致车辆的速度是错误的。 将来会进行改进。

疑难解答

Rviz中没有地图;激光雷达信息丢失

在构建地图或记录/回放轨迹时,需要按一次 X 按钮才能在 Rviz 中显示地图。

如果您有带有自己的 ROS2 驱动程序的自定义 LiDAR,请确保 LaserScan 's frame_id 是 lidar ,主题名称是 scan ,并且节点命名空间是 lidar 。 如果驱动程序输出 PointCloud2 ,请使用转换节点将其重新发布为 LaserScan .

Terrible Map;Odometry Drifting

请确保轨道周围有足够的障碍物供 LiDAR 使用。 例如,带有几个圆锥体的室外游乐场通常不起作用,而靠近墙壁的室内空间则更可取。

由于未校准的里程计,地图通常很糟糕,尽管轻微的差异是可以接受的。 您可以通过在 Rviz 中为 /vehicle/odom . 检查车辆的轨迹,并寻找翻转的行驶方向和/或翻转的转向方向。 在以下两个文件中更正它们。

您的车辆里程表可能需要重新校准,并将值输入 AutowareAuto/src /launch /f1tenth_launch/param /vesc_to_odom_node.param.yaml 和 AutowareAuto/ src /launch /f1tenth_launch/param /vesc_config.param.yaml 。 有关校准里程计的信息,请参阅 F1Tenth 文档(驾驶 F1TENTH 赛车 -> 校准里程计)。

回放时车辆不移动

按右肩按钮停止手动操纵杆输出。 否则车辆将无法移动。

如果汽车的起始位置离最终轨迹点太近,并且循环功能关闭,则会立即达到重放目标,汽车将无法行驶。

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



715 次浏览
5次
欢迎参加课程:
MBSE(基于模型的系统工程)
系统思维与系统工程
系统工程方法与实践