简单网站开发,网络营销推广目标,怎么自己做一个软件,镇江营销型建站公叿文章目录 一、仿真环境二、lio_sam建图1.修改配置文件2.开始建图 三、ndt_matching定位1.新建启动文件2.启动 总结 一、仿真环境
使用现有开源的仿真环境—从零开始搭建一台ROS开源迷你无人车#xff0c;作者已经配置好小车模型以及gazebo环境#xff0c;imu频率已改为200HZ… 文章目录 一、仿真环境二、lio_sam建图1.修改配置文件2.开始建图 三、ndt_matching定位1.新建启动文件2.启动 总结 一、仿真环境
使用现有开源的仿真环境—从零开始搭建一台ROS开源迷你无人车作者已经配置好小车模型以及gazebo环境imu频率已改为200HZ文中也有详细的说明这里就不再介绍。
启动仿真
roslaunch steer_mini_gazebo steer_mini_sim_sensors_VLP16_lio_sam.launch 话题如下
/ackermann_steering_controller/cmd_vel
/ackermann_steering_controller/odom
/clock
/gains/left_rear_joint/parameter_descriptions
/gains/left_rear_joint/parameter_updates
/gains/right_rear_joint/parameter_descriptions
/gains/right_rear_joint/parameter_updates
/gazebo/link_states
/gazebo/model_states
/gazebo/parameter_descriptions
/gazebo/parameter_updates
/gazebo/set_link_state
/gazebo/set_model_state
/imu/data
/joint_states
/rosout
/rosout_agg
/tf
/tf_static
/velodyne_points
控制小车移动打开一个终端录制所有话题也可录制需要的话题会自动在终端所在的文件夹下根据当前时间产生bag文件。
rosbag record -a二、lio_sam建图
lio_sam的安装测试可参考Lego-LOAM和LIO_SAM的使用及地图的处理
1.修改配置文件
在LIO-SAM/config下的params.yaml文件中
修改为自己小车的话题 # TopicspointCloudTopic: /velodyne_points imuTopic: /imu/data odomTopic: /odometry/imu gpsTopic: odometry/gpsz 修改保存路径 # Export settingssavePCD: true savePCDDirectory: /Downloads/ 修改imu到雷达的坐标变换 # Extrinsics: T_lb (lidar - imu)extrinsicTrans: [0.0, 0.0, 0.0]extrinsicRot: [1, 0, 0,0, 1, 0,0, 0, 1]extrinsicRPY: [1, 0, 0,0, 1, 0,0, 0, 1]其它的保持默认即可。
2.开始建图 roslaunch lio_sam run.launch rosbag play your.bag 保存的PCD—GlobalMap.pcd 三、ndt_matching定位
1.新建启动文件
使用Autoware.ai中的ndt_matching定位模块。为了适配前方需要对应仿真的数据进行如下修改
autoware.ai/src/autoware/documentation/autoware_quickstart_examples/config路径 新建headless_setup_steer_mini.yaml 内容如下
tf_x: 0
tf_y: 0
tf_z: 0.115
tf_yaw: 0
tf_pitch: 0
tf_roll: 0localizer: velodyne
use_sim_time: false.autoware/data/tf 路径 新建tf_steer_mini.launch
launch
!-- worldからmapへのtf --
node pkgtf2_ros typestatic_transform_publisher nameworld_to_map args0 0 0 0 0 0 /world /map /
!-- mapからmobilityへのtf --
!-- node pkgtf2_ros typestatic_transform_publisher namemap_to_mobility args0 0 0 0 0 0 /map /mobility /--
node pkgtf2_ros typestatic_transform_publisher namebase_link_to_velodyne args0 0 0.115 0 0 0 /base_link /velodyne /
/launchautoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo路径下 新建my_map_steer_mini.launch内容如下
launchrosparam commandload file$(find autoware_quickstart_examples)/config/headless_setup_steer_mini.yaml /include file$(env HOME)/.autoware/data/tf/tf_steer_mini.launch/node pkgmap_file typepoints_map_loader namepoints_map_loader argsnoupdate $(env HOME)/.autoware/data/map/pointcloud_map/GlobalMap.pcd//launchautoware.ai/src/autoware/core_perception/lidar_localizer/launch路径下 新建ndt_matching_steer_mini.launch内容如下
launcharg namemethod_type default0 / !-- pcl_generic0, pcl_anh1, pcl_anh_gpu2, pcl_openmp3 --arg nameuse_gnss default0 /arg nameuse_odom defaulttrue /arg nameuse_imu defaulttrue /arg nameimu_upside_down defaultfalse /arg nameimu_topic default/imu/data /arg namequeue_size default1 /arg nameoffset defaultlinear /arg nameget_height defaultfalse /arg nameuse_local_transform defaultfalse /arg namesync defaultfalse /arg nameoutput_log_data defaultfalse /arg namegnss_reinit_fitness default500.0 /node pkglidar_localizer typendt_matching namendt_matching outputlogparam namemethod_type value$(arg method_type) /param nameuse_gnss value$(arg use_gnss) /param nameuse_odom value$(arg use_odom) /param nameuse_imu value$(arg use_imu) /param nameimu_upside_down value$(arg imu_upside_down) /param nameimu_topic value$(arg imu_topic) /param namequeue_size value$(arg queue_size) /param nameoffset value$(arg offset) /param nameget_height value$(arg get_height) /param nameuse_local_transform value$(arg use_local_transform) /param nameoutput_log_data value$(arg output_log_data) /param namegnss_reinit_fitness value$(arg gnss_reinit_fitness) /remap from/points_raw to/sync_drivers/points_raw if$(arg sync) //node/launch同时修改ndt_matching.cpp中的里程计接收话题 // ros::Subscriber odom_sub nh.subscribe(/vehicle/odom, _queue_size * 10, odom_callback); //defaultros::Subscriber odom_sub nh.subscribe(/ackermann_steering_controller/odom, _queue_size * 10, odom_callback);autoware.ai/src/autoware/core_perception/points_downsampler/launch路径下 新建points_downsample_steer_mini.launch
launcharg namesync defaultfalse /arg namenode_name defaultvoxel_grid_filter /arg namepoints_topic default/velodyne_points /arg nameoutput_log defaultfalse /arg namemeasurement_range default200 /node pkgpoints_downsampler name$(arg node_name) type$(arg node_name)param namepoints_topic value$(arg points_topic) /remap from/points_raw to/sync_drivers/points_raw if$(arg sync) /param nameoutput_log value$(arg output_log) /param namemeasurement_range value$(arg measurement_range) //node
/launchautoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/rosbag_demo路径下 新建my_localization_steer_mini.launch
launch!-- setting path parameter --arg nameget_height valuetrue /!-- Setup include file$(find runtime_manager)/launch_files/setup_tf.launcharg namex value1.2 /arg namey value0.0 /arg namez value2.0 /arg nameyaw value0.0 /arg namepitch value0.0 /arg nameroll value0.0 /arg nameframe_id value/base_link /arg namechild_frame_id value/velodyne /arg nameperiod_in_ms value10//include--!-- include file$(find vehicle_description)/launch/vehicle_model.launch / --!-- points downsampler --include file$(find points_downsampler)/launch/points_downsample_steer_mini.launch /!-- nmea2tfpose --!-- include file$(find gnss_localizer)/launch/nmea2tfpose.launch/ --!-- ndt_matching --include file$(find lidar_localizer)/launch/ndt_matching_steer_mini.launcharg nameget_height value$(arg get_height) //include/launch2.启动
roslaunch autoware_quickstart_examples my_map_steer_mini.launch
roslaunch autoware_quickstart_examples my_localization_steer_mini.launch
rviz
给定初始位姿(必须)
rosbag play your.bag
效果图 总结
以上实现了仿真场景下使用lio_sam建图以及ndt_matching定位的过程仅仅作为测试使用存在仿真场景较小没有在机器人模型中添加gps数据的问题整体上达到定位的要求。