前言:从autoware.ai进阶autoware.universe花了三个月去适配自己的小车(也就0.4m*0.4m大小),中间从头到尾看了很多遍官方的手册资料还有代码,分析一些重要节点代码以及重要的参数设置。目前小车只有一个多线雷达和imu设备,但是最最基础的导航却是足够了
ps: 本人懒,先大致写一下过程,后面有时间再慢慢补
1. sensor 部分
详细请参考例程sample_sensor_kit_launch(复制粘贴把所有sample字眼换成自己的就可以了,需要什么设备组合自己改,自己加)
imu:最终输出给其他部分的话题名称/sensing/imu/imu_data
雷达:无论你有多少个雷达最终合成输出给其他部分的话题名称都是:/sensing/lidar/concatenated/pointcloud,建议frame id转换到base_link下面再输出,不然后面处理修改一堆参数
2. localization定位部分
可以在autoware.launch.xml文件中把launch_perception\launch_planning\launch_control置为false再调试。不用GNSS可以把pose_twist_estimator.launch.xml中gnss_enabled参数置为false。
注意观察命令日志中,是否出现localization*******Autonomous is not available信息,出现的 话证明这一部分是有错的,看看前面的日志,慢慢排查调试参数。
3. vehicle部分
详细请参考例程sample_vehicle_launch (需要修改里面的config参数以及小车模型文件)
修改完成还需要在vehicle_interface.launch.xml里面添加一个节点(就是autoware与自己小车通讯的节点)具体接口话题请参考链接,这里稍微列一下出来。vehicle/external/pacmod_interface也可以参考一下别人里面的通讯配置
Vehicle Interface - Autoware Documentation
来自Autoware的输入#
名字 | 主题 | 类型 | 描述 |
---|---|---|---|
控制命令 | /control/command/control_cmd | autoware _ auto _ control _ msgs/msg/ackermann control命令 | 车辆的目标控制(转向角、速度、...) |
控制模式命令 | /control/control_mode_request | 控制模式命令 | 请求在手动和自动驾驶之间切换 |
档位命令 | /control/command/gear_cmd | autoware _ auto _ vehicle _ msgs/msg/gear command | 车辆的目标档位 |
危险灯指令 | /control/command/hazard_lights_cmd | autoware _ auto _ vehicle _ msgs/msg/hazardlights命令 | 危险灯的目标值 |
转向指示器命令 | /control/command/turn_indicators_cmd | autoware _ auto _ vehicle _ msgs/msg/turnindicators命令 | 转向信号的目标值 |
输出到Autoware#
名字 | 主题 | 类型 | 可选? | 描述 |
---|---|---|---|---|
驱动状态 | /vehicle/status/actuation_status | tier 4 _ vehicle _ msgs/msg/ActuationStatusStamped | 是(带机械输入的车辆) | 车辆报告的当前加速度、制动和转向值 |
控制方式 | /vehicle/status/control_mode | autoware _ auto _ vehicle _ msgs/msg/ControlModeReport | 当前控制模式(手动、自动、...) | |
门状态 | /vehicle/status/door_status | tier4_api_msgs/msg/DoorStatus | 是 | 当前门状态 |
齿轮报告 | /vehicle/status/gear_status | autoware _ auto _ vehicle _ msgs/msg/gear report | 车辆的当前档位 | |
危险灯状态 | /vehicle/status/hazard_lights_status | autoware _ auto _ vehicle _ msgs/msg/HazardLightsReport | 当前危险灯状态 | |
转向状态 | /vehicle/status/steering_status | autoware _ auto _ vehicle _ msgs/msg/steering report | 转向轮胎的当前转向角度 | |
方向盘状态 | /vehicle/status/steering_wheel_status | tier 4 _ vehicle _ msgs/msg/steering wheelstatus stamped | 是 | 当前方向盘角度 |
转向指示灯状态 | /vehicle/status/turn_indicators_status | autoware _ auto _ vehicle _ msgs/msg/turnindicators report | 左右转向指示灯的当前状态 | |
速度状态 | /vehicle/status/velocity_status | autoware _ auto _ vehicle _ msgs/msg/velocity report | 车辆的当前速度(纵向、横向、航向速率) |
4. perception部分
可以将perception.luanch.xml中的use_empty_dynamic_object_publisher置为true,先暂时不管障碍物,后面小车会导航了再调试这一部分
5.control部分
这一部分跟前面的第3步息息相关,注意一下autoware是否有速度输出,以及RVIZ上的operation mode是否能正常控制小车启停等,没有出现Autonomous is not available日志信息时,operation mode的auto模式可按下状态,按下小车是否可以输出速度等等等等等
6.perception部分
可以将perception.luanch.xml中的use_empty_dynamic_object_publisher置为false,调试这部分功能
7.重复测试,换地图测试
注:建图以及高精地图自己想办法弄,autoware.universe没有这一部分功能
6.14:先大概写一下吧,反正是这个步骤。慢慢看官方手册以及代码,安装使用所有东西都在上面了,网上暂时就只有官方手册的资料是可以看一下的。